Solidity
無法使用 Aion Recurring Contract 安排通話
這是我在 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
. 我瀏覽了您發布的連結,這似乎只是為了表明您可以將數據與您的請求一起發送,您可以安全地刪除該變數。希望這可以幫助。