智能合约 与 外部账号之间转账,智能合约与智能合约之间转账

墨蓝 2023-02-18 10:55 176阅读 0赞

从外部账户向智能合约账户转账以太币

外部账户给部署智能合约时给合约初始转账:

使用remix 测试环境

  1. pragma solidity >=0.4.0 <0.7.0;
  2. contract Test{
  3. uint256 public test1; //保存指定地址的合约的余额
  4. address payable owner; //保存合约的所有者,即为部署合约的外部账户,设置payable 属性
  5. constructor()public payable{ // 合约构造函数
  6. owner = msg.sender; // 设定智能合约的所有者
  7. test1 = 0; // 初始化为0
  8. msg.value; //外部账户在部署时给合约账户转账msg.value以太币
  9. }
  10. function svalue(address payable addr)public payable{
  11. //输入地址,给相应地址转账5 个以太币,这里是的单位是Gwei
  12. addr.transfer(5* 10**18);
  13. }
  14. //输入地址,获取整个地址的余额
  15. function getblance(address payable addr)public payable{
  16. test1 = addr.balance;
  17. }
  18. //设置fallback 函数,为payable属性,如果不设置这个函数,智能合约则不能接受其他合约和账户的转账
  19. fallback() external payable{ }
  20. }

选择账户地址1:0x4658C20652f24a07cB714148600F3c2390f61d6e
部署合约地址1:0xC9c97A300086210df2Fc4373dA6f75cCAF7f12aC
设置VALUE为30以太币,部署结果如下图所示:
在这里插入图片描述
可以看到图中accounts 旁边的余额变成了69.999 以太币,查询当前合约地址账户余额:
在这里插入图片描述
输入查询地址,然后点击变量test1,可见余额为30以太币。

智能合约向外部账户转账

依然是上文的部署合约,我们将转账函数接受地址设定为部署合约的外部地址,结果如下:
在这里插入图片描述
当前合约剩余以太币为25以太币,向外部账户转移了5个以太币。
在这里插入图片描述
可见外部账户,多出5个以太币。

智能合约之间转账

智能合约之间也可以按照以上方式转账

发表评论

表情:
评论列表 (有 0 条评论,176人围观)

还没有评论,来说两句吧...

相关阅读

    相关 智能合约

    智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

    相关 智能合约调试指南

      不像你在其他地方看到的纸质合约,以太坊的智能合约是代码组成的,需要你以非常谨慎的态度去对待它。 (这是一件好事,想象下如果现实世界的合同需要编译的话会更清晰么?)