Contract-Invocation

如何呼叫從另一個繼承的智能合約中的函式

  • May 28, 2018

嗨,我正在嘗試呼叫該函式transfer,但是在混音中它說我只能呼叫 transferOwnership 方法,這是我的solidity合約

pragma solidity ^0.4.18;

contract Ownable {

address public owner;

function Ownable() public {
   owner = msg.sender;
}

modifier onlyOwner() {
   require(msg.sender == owner);
   _;
}

function transferOwnership(address newOwner) public onlyOwner {
   owner = newOwner;
}

}

contract SimpleTokenCoin is Ownable {

string public constant name = "Vozik coin";

string public constant symbol = "VZC";

uint32 public constant decimals = 18;

uint public totalSupply = 1000000;

mapping (address => uint) balances;

mapping (address => mapping(address => uint)) allowed;

function mint(address _to, uint _value) public onlyOwner {
   assert(totalSupply + _value >= totalSupply && balances[_to] + _value >= balances[_to]);
   balances[_to] += _value;
   totalSupply += _value;
}

function balanceOf(address _owner) public constant returns (uint balance) {
   return balances[_owner];
}

function transfer(address _to, uint _value) public returns (bool success) {
   if(balances[msg.sender] >= _value && balances[_to] + _value >= balances[_to]) {
       balances[msg.sender] -= _value; 
       balances[_to] += _value;
       Transfer(msg.sender, _to, _value);
       return true;
   } 
   return false;
}

function transferFrom(address _from, address _to, uint _value) public returns (bool success) {
   if( allowed[_from][msg.sender] >= _value &&
       balances[_from] >= _value 
       && balances[_to] + _value >= balances[_to]) {
       allowed[_from][msg.sender] -= _value;
       balances[_from] -= _value; 
       balances[_to] += _value;
       Transfer(_from, _to, _value);
       return true;
   } 
   return false;
}

function approve(address _spender, uint _value) public returns (bool success) {
   allowed[msg.sender][_spender] = _value;
   Approval(msg.sender, _spender, _value);
   return true;
}

function allowance(address _owner, address _spender) public constant returns (uint remaining) {
   return allowed[_owner][_spender];
}

event Transfer(address indexed _from, address indexed _to, uint _value);

event Approval(address indexed _owner, address indexed _spender, uint _value);

}

有誰知道我如何呼叫 transferFunction .

這是我的控制台js程式碼

function callContract(ABI, Address) {

  var Contract = eth.contract(ABI).at(Address);
  var getData = Contract.transfer.getData("0x5adf9a54813be6f62820e5907c7ed082898d718a", 10);    //reword

  eth.sendTransaction(
     { to: Address,
       from: eth.coinbase,
       data: getData
     }
  );
}

您選擇了“Ownable”合約,需要選擇“SimpleTokenCoin”合約才能看到“轉賬”功能

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