/// <summary> /// Adds token to plasma network /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="tokenAddress">token address</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> AddToken(Web3 web3, string address, string tokenAddress) { var function = GetFunctionAddToken(); return(await ContractHelper.CreateTransaction(web3, address, function, tokenAddress)); }
/// <summary> /// Creates transaction of ERC20 deposit to rootchain (caller must be token owner) /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="depositTx">deposit transaction data</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> DepositToken(Web3 web3, string address, byte[] depositTx) { var function = GetFunctionDepositFrom(); return(await ContractHelper.CreateTransaction(web3, address, function, depositTx)); }
/// <summary> /// Creates transaction of ETH deposit to root chain /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="depositTx">deposit transaction data</param> /// <param name="amount">amount of deposit</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> Deposit(Web3 web3, string address, byte[] depositTx, BigInteger amount) { var function = GetFunctionDeposit(); return(await ContractHelper.CreateTransaction(web3, address, amount, function, depositTx)); }
/// <summary> /// Creates transaction of exit process to root chain /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="currency">transaction currency</param> /// <param name="topUtxoPosition">starting index of exit</param> /// <param name="exitsToProcess">number exits to process</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> ProcessExits(Web3 web3, string address, string currency, BigInteger topUtxoPosition, BigInteger exitsToProcess) { var function = GetFunctionProcessExits(); return(await ContractHelper.CreateTransaction(web3, address, function, currency, topUtxoPosition, exitsToProcess)); }
/// <summary> /// Creates transaction of standard exit from child chain to root chain /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="exitData">exit data for a given utxo</param> /// <param name="exitBond">exit bond value (optional)</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> StartStandardExit(Web3 web3, string address, ExitData exitData, BigInteger?exitBond = null) { var function = GetFunctionStartStandardExit(); return(await ContractHelper.CreateTransaction(web3, address, exitBond.HasValue?exitBond.Value : STANDARD_EXIT_BOND, function, exitData.Position, exitData.TxBytes.HexToByteArray(), exitData.Proof.HexToByteArray())); }
/// <summary> /// Challenges a standard exit /// </summary> /// <param name="web3">web3 interface</param> /// <param name="address">sender address</param> /// <param name="challengeData">challenge data</param> /// <returns></returns> public async Task <Nethereum.Signer.Transaction> ChallengeStandardExit(Web3 web3, string address, ChallengeData challengeData) { var function = GetFunctionChallengeStandardExit(); return(await ContractHelper.CreateTransaction(web3, address, function, challengeData.ExitId, challengeData.TxBytes.HexToByteArray(), challengeData.InputIndex, challengeData.Signature.HexToByteArray())); }