赞
踩
在智能合约中转账是
从合约账户转账给其他用户
所以如果合约账户里没钱是不会成功转账的。
1.先给合约转账
部署时转账,添加
payable构造函数
constructor()public payable{
}
使用remix部署
使用web3部署
新建合约
myContract.deploy(options)
调用此函数将合约部署到区块链上。
成功部署后 promise 对象会被解析为新的合约实例
例如
myContract.deploy({
data: '0x12345...',
arguments: [123, 'My String']
})
.send({
from: '0x1234567890123456789012345678901234567891',
gas: 1500000,
value: 100000,
gasPrice: '30000000000000'
}, function(error, transactionHash)
执行转账时给合约转账
//给调用者转一个ether
function withdraw()public payable{
msg.sender.transfer(1 ether);
}
payable表名合约接受以太转账
remix操作
web3操作
sendTransaction
web3.eth.sendTransaction(transactionObject [, callback])
将交易发送到网络
App.contract.function(参数,{from:addr,gas:300000,value:1000000},function(error,result)
pragma solidity >=0.4.21 <0.7.0; contract test{ constructor()public payable{ } function trans2a(address payable a) public payable { //0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB; a.transfer(1 ether); } function withdraw()public payable{ msg.sender.transfer(1 ether); } function tract_balance() public view returns (uint){ return address(this).balance; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。