从0开始搭建辅助ENS注册DAPP(3)

今天就完成那个合约吧。
划下水,因为有别的事情。


这个合约要完成的功能是:
1.接收转账,>0.01eth就触发event返回msg.sender和其提交的domain还有一个判断True。这个判断在资金不足时返回False
2.转出资金到owner账户

代码如下:

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.21 <0.7.0;

contract getdomain{
  address _owner;

  constructor() public {
    _owner = msg.sender;
  }


  modifier onlyOwner() {
    require(msg.sender == _owner,'get out!');
    _;
  }

  event view_domain(
    string domain,
    address add,
    bool boo
  );

  function give_my_domain(string memory _domain)public payable {
    if (msg.value >= 0.01 ether){
      emit view_domain(_domain,msg.sender,true);
    }else{
      emit view_domain(_domain,msg.sender,false);
    }
  }

  function trans(address _add) public onlyOwner  {
    address(uint160(_add)).transfer(address(this).balance);
  }
}
  1. 首先construct构建函数传入我们的msg.sender也就是合约创建者。
  2. 然后创建一个修饰符onlyowner,当当前合约调用者不等于部署者我们返回getout
  3. 构建一个事件。
  4. 创建函数,用户传入domain并支付0.01以太,这里触发3的事件
  5. 资金归集函数

然后部署


1.确保migrations.js构建正确
在这里插入图片描述
2.配置ropsten的network,记得取消注释啊。

    ropsten: {
      provider: () => new HDWalletProvider(mnemonic, 'https://ropsten.infura.io/v3/youkey'),
      network_id: 3,       // Ropsten's id
      gas: 5500000,        // Ropsten has a lower block limit than mainnet
      confirmations: 2,    // # of confs to wait between deployments. (default: 0)
      timeoutBlocks: 200,  // # of blocks before a deployment times out  (minimum/default: 50)
      skipDryRun: true     // Skip dry run before migrations? (default: false for public nets )
    },

3.编译部署

truffle compile
truffle migrate --network ropsten

4.执行trans把合约的eth转到另一个address

con.trans('0xf95F915158ed118668a83E2FE95eb62b2B1B7005')

在这里插入图片描述
转是转成功了,0xf95F915158ed118668a83E2FE95eb62b2B1B7005确实增加了1.1eth。
但是为什么成功了之后还有两个0ether的块出来…Mark了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值