Go-Ethereum

如何在單次發送交易中拆分資金

  • July 17, 2019

設想:

  • 愛麗絲賬戶 = 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));
   }
}

在此處輸入圖像描述

引用自:https://ethereum.stackexchange.com/questions/50237