Solidity

無法使用 Aion Recurring Contract 安排通話

  • October 15, 2021

這是我在 Ropsten Network 上部署的合約。我從這裡拿了程式碼參考。

pragma solidity ^0.4.24;


// interface Aion 
contract Aion { 
   uint256 public serviceFee;
   function ScheduleCall(uint256 blocknumber, address to, uint256 value, uint256 gaslimit, uint256 gasprice, bytes data, bool schedType) public payable returns (uint,address);
}

// Main contract
contract MyContract{
uint256 public sqrtValue;
Aion aion;
uint256 public myData;

constructor(uint256 number) public payable{
   scheduleMyfucntion(number);
   myData = 1;
}

function scheduleMyfucntion(uint256 number) public {
   aion = Aion(0xFcFB45679539667f7ed55FA59A15c8Cad73d9a4E);
   bytes memory data = abi.encodeWithSelector(bytes4(keccak256('myfucntion(uint256)')),number); 
   uint callCost = 200000*1e9 + aion.serviceFee();
   aion.ScheduleCall.value(callCost)( block.timestamp + 10 minutes, address(this), 0, 200000, 1e9, data, true);
}

function myfucntion(uint256 number) public {
   // do your task here and call again the function to schedule
   myData = myData+1;
   scheduleMyfucntion(number);
} 

function getMyData() view public returns (uint256) {
   return myData;
}
function () public payable {}
}

該契約的目的是安排每 10 分鐘一次的通話。

期望: myData 變數應該每 10 分鐘加一。

**實際:**成功部署後看不到任何新事務。也無法看到變數不斷增加。

我部署了契約,它似乎運作良好。唯一的解釋可能是測試網路的伺服器錯過了您的請求。

此外,您的程式碼使用了一個名為number. 我瀏覽了您發布的連結,這似乎只是為了表明您可以將數據與您的請求一起發送,您可以安全地刪除該變數。

希望這可以幫助。

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