Ethereum 我的坚固性代码正确且使用安全吗

Ethereum 我的坚固性代码正确且使用安全吗,ethereum,solidity,Ethereum,Solidity,我是一个非常新的使用Solidity创建以太坊合同的人,我想知道我创建的合同是否首先正确和安全 我在本合同中所做的是允许用户从他们的钱包向朋友的钱包发送一些ETH,但使用我的服务也要收取0.05美元的费用(在撰写本文时为194740000000000美元) 现在,当使用remix测试合同时,所有的工作都很好,但由于我是刚接触solidity合同的人,我只想得到一些专家的意见,以确保我做的每件事都是正确和安全的 我的合同代码是: pragma solidity ^0.5.1; contrac

我是一个非常新的使用Solidity创建以太坊合同的人,我想知道我创建的合同是否首先正确和安全

我在本合同中所做的是允许用户从他们的钱包向朋友的钱包发送一些ETH,但使用我的服务也要收取0.05美元的费用(在撰写本文时为194740000000000美元)

现在,当使用remix测试合同时,所有的工作都很好,但由于我是刚接触solidity合同的人,我只想得到一些专家的意见,以确保我做的每件事都是正确和安全的

我的合同代码是:

 pragma solidity ^0.5.1;

 contract Forwarder {

 address payable public receiversAddress = 0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
 address payable public feeAddress = 0xdD870fA1b7C4700F2BD7f44238821C26f7392148;

 constructor() payable public {
   uint amountToSendReceiver = msg.value-194740000000000;
   receiversAddress.transfer(amountToSendReceiver);
   feeAddress.transfer(194740000000000);
  }

 }

如前所述,在混音中一切正常,但我的合同代码是否正确且使用安全?没有办法使用合同来窃取资金或有任何漏洞?

是的,您的代码非常安全。我唯一想添加的是符合代码可维护性的
require
条件

如果您的VAR是不可更改的,那么最好使用
常量
来降低部署合同的成本;)

函数可以声明为常量,在这种情况下,它们承诺不会 修改状态


是的,你的代码很安全。我唯一想添加的是符合代码可维护性的
require
条件

如果您的VAR是不可更改的,那么最好使用
常量
来降低部署合同的成本;)

函数可以声明为常量,在这种情况下,它们承诺不会 修改状态

pragma solidity ^0.5.1;

contract Forwarder {

   address payable public constant receiversAddress = 0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
   address payable public constant feeAddress = 0xdD870fA1b7C4700F2BD7f44238821C26f7392148;
   uint256 constant feeAmount = 194740000000000;

   constructor() payable public {
      require(msg.value >= feeAmount); // for maintainability, your tx will be reverted anyway, just to show why
      feeAddress.transfer(feeAmount); // transfer fee
      receiversAddress.transfer(address(this).balance); // transfer remaining amount of msg.value
   }

}