Solidity

從測試松露的映射中返回一個結構

  • July 28, 2021

我希望將資訊儲存在映射內的每個結構中。

這是我的結構:

struct BurnApply {
   address applicant;
   uint amount;
   string btcAddress;
   uint8 flag; 
   uint password;
}

這些是計數器(映射)和映射:

uint numRequest; //zero initialize value
mapping(uint => BurnApply) burnProcesses;

我想獲取結構內每個請求的值。例如,burnProcesses

$$ 1 $$包含請求編號 1 和所有資訊。我如何呼叫松露中的映射?因為我已經嘗試了幾種方法來實現這一目標,但都沒有成功。這很緊急……這是錯誤:

TypeError: Cannot read property 'call' of undefined

非常感謝你們!

您可以使用測試您的程式碼

const instance= await yourcontract.new();

const result1=await instance.BurnApply.call(i);//set your i

然後

使用訪問結構屬性

console.log(result1[i]); //i=0 ...

這份契約對我有用。要訪問成員,您必須將其聲明為 public(編譯器將自動創建一個 getter)。

pragma solidity ^0.4.18;

contract Foo {
 struct BurnApply {
   address applicant;
   uint amount;
   string btcAddress;
   uint8 flag; 
   uint password;
 }

 mapping(uint => BurnApply) public burnProcesses;
}

現在您可以從 javascript 呼叫

const data = await fooInstance.burnProcesses.call(0);

引用自:https://ethereum.stackexchange.com/questions/34614