Go-Ethereum
如何在單次發送交易中拆分資金
設想:
- 愛麗絲賬戶 = 2 ETH
- 管理員帳戶 = 0 ETH
- Bob 賬戶 = 0 ETH
Alice 想使用我的應用程序向 Bob 發送 1 個 ETH。應用程序將收取 0.01 ETH 作為佣金,並將添加到總交易費用中
總費用= 申請費 (0.01) + 網路費用(gas limit * gas price)
假設網路費用計算為 0.001008 ETH。
總應付金額= 1.011008 ETH (1 + 0.01 + 0.001008)
交易成功後以下應該是賬戶詳情
- 愛麗絲賬戶 = 0.988992 ETH
- 管理員賬戶 = 0.01 ETH
- Bob 賬戶 = 1 ETH
其中 0.001008 ETH 將支付給礦工
詢問:
Q1。如何建構一個應用程序,將單個發送交易的資金發送到兩個不同的地址(Bob 的地址和管理員的地址)?
Q2。是否可以在不使用智能合約的情況下建構這樣的應用程序?
在這個過程中需要一個智能合約。它基本上會轉移資金並將它們發送到其邏輯中指定的不同賬戶。
這是我為您整理的一個非常簡單的範例:
pragma solidity ^0.4.24; contract Forwarder { address admin; uint fee = 10; constructor() public { admin = msg.sender; } function splitFunds(address _b) public payable { admin.transfer(msg.value * fee / 100); _b.transfer(msg.value - (msg.value * fee / 100)); } }