Go-Ethereum
使用輸入參數呼叫合約函式並從 Geth/Web3 傳遞乙太幣
我已經部署了一個智能合約,它基本上根據輸入的比率參數將傳入的資金分配到指定的地址。
請在下面找到程式碼:
pragma solidity ^0.4.23; contract splitfund { address admin; constructor() public { admin = msg.sender; } function splitFunds(address[] withdrawaddress, uint[] proration) public payable { for(uint i = 0; i<withdrawaddress.length; i++) { withdrawaddress[i].transfer(proration[i] * msg.value/100); } } }
現在,我想通過從一個地址傳遞 1 個乙太幣並以 60:40 的比例將其拆分並分別發送到地址 0x2e46E9A4542B28B39C21Ed859486147969CB949F 和 0x16292759f5e37144E37effe9Ef41998B1DfC5Df0 來訪問上述合約中的拆分資金功能。我能夠通過 Ropsten 測試網路中的 Remix 實現這一點(https://ropsten.etherscan.io/tx/0xf88696620eeb60cb64df6cedff2585ce65e5b6a3b0e896813394d920d0a133c5#internal)
有人可以告訴我如何使用 Geth/Web3JS/Web3J 執行相同的操作嗎?!
這是以前在這裡
使用 truffle 將醜陋*的東西從你身上抽像出來: Web3 - 如何發送帶有一些數據的交易並同時包含 Ether?
使用 web3,您需要使用此方法並為您的數據欄位獲取“輸入”* 值(編碼方法簽名和將被呼叫的數據,查看螢幕截圖中的“輸入”0x969…)應該設置。從 remix 複製它(最簡單的方式,因為你已經擁有它)或自己計算它: https ://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethsendtransaction