123
varurl=" http://localhost:8545 " ;varprivateKey=" 0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7 " ; varethTransfer=newEthTransferUnityRequest ( url , privateKey , " YOURCHAINID " );
一旦我们的请求被实例化,就可以使用传统模式启动传输,下面的代码设置 2 Gwei 作为gas价格:12
var receivingAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe";yield return ethTransfer.TransferEther(receivingAddress, 1.1m, 2);
在这里,我们指定了接收地址、发送量和可选的 gas 价格 。该请求将自动将 gas 价格转换为 Wei 。我们可以在之后验证是否有任何异常,如下所示:
12345
if (ethTransfer.Exception != null){Debug.Log(ethTransfer.Exception.Message);yield break;}
如果没有发生错误,我们可以每 2 秒从请求和轮询中检索交易哈希以等待交易确认:12345
var transactionHash = ethTransfer.Result;//create a poll to get the receipt when minedvar transactionReceiptPolling = new TransactionReceiptPollingRequest(url);//checking every 2 seconds for the receiptyield return transactionReceiptPolling.PollForReceipt(transactionHash, 2);
最后,我们可以使用EthGetBalanceUnityRequest检查收款账户的余额 。请注意,我们在执行 请求时声明想要最新块记录的余额 。12
var balanceRequest = new EthGetBalanceUnityRequest(url);yield return balanceRequest.SendRequest(receivingAddress, BlockParameter.CreateLatest());
可以使用默认的 Wei UnitConvertor 将 Wei 中的结果转换为 Eth:1
Debug.Log("Balance of account:" + UnitConversion.Convert.FromWei(balanceRequest.Result.Value));
6、EIP 1559 使用建议以下是使用协程、TimePreference、MedianFeeHistory 或 LegacyMode 提供的费用建议策略以使用 旧模式或与其他链一起使用的一些示例 。要使用 LegacyMode,你必须提供 GasPrice,或者可以通过设置UseLegacyAsDefault为 true 来强制 LegacyMode:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
if (feeStrategy == FeeStrategy.TimePreference) {Debug.Log("Time Preference");var timePreferenceFeeSuggestion = new TimePreferenceFeeSuggestionUnityRequestStrategy(Url);yield return timePreferenceFeeSuggestion.SuggestFees();if (timePreferenceFeeSuggestion.Exception != null){Debug.Log(timePreferenceFeeSuggestion.Exception.Message);yield break;}//lets get the first one so it is higher priorityDebug.Log(timePreferenceFeeSuggestion.Result.Length);if (timePreferenceFeeSuggestion.Result.Length > 0){Debug.Log(timePreferenceFeeSuggestion.Result[0].MaxFeePerGas);Debug.Log(timePreferenceFeeSuggestion.Result[0].MaxPriorityFeePerGas);}var fee = timePreferenceFeeSuggestion.Result[0];yield return ethTransfer.TransferEther(receivingAddress, Amount, fee.MaxPriorityFeePerGas.Value, fee.MaxFeePerGas.Value);if (ethTransfer.Exception != null){Debug.Log(ethTransfer.Exception.Message);yield break;} } if(feeStrategy == FeeStrategy.MedianFeeHistory) {Debug.Log("MedianFeeHistory mode");var medianPriorityFeeStrategy = new MedianPriorityFeeHistorySuggestionUnityRequestStrategy(Url);yield return medianPriorityFeeStrategy.SuggestFee();if (medianPriorityFeeStrategy.Exception != null){Debug.Log(medianPriorityFeeStrategy.Exception.Message);yield break;}Debug.Log(medianPriorityFeeStrategy.Result.MaxFeePerGas);Debug.Log(medianPriorityFeeStrategy.Result.MaxPriorityFeePerGas);var fee = medianPriorityFeeStrategy.Result;yield return ethTransfer.TransferEther(receivingAddress, Amount, fee.MaxPriorityFeePerGas.Value, fee.MaxFeePerGas.Value);if (ethTransfer.Exception != null){Debug.Log(ethTransfer.Exception.Message);yield break;} } if (feeStrategy == FeeStrategy.Legacy) {Debug.Log("Legacy mode");//I am forcing the legacy mode but also I am including the gas priceethTransfer.UseLegacyAsDefault = true;yield return ethTransfer.TransferEther(receivingAddress, Amount, GasPriceGwei);if (ethTransfer.Exception != null){Debug.Log(ethTransfer.Exception.Message);yield break;} }
7、智能合约定义声明在游戏中实现智能合约支持的第一步是包含我们的智能合约定义,这可以是使用 vscode solidity 扩展 或控制台代码生成工具生成的代码:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
//Deployment contract object definitionpublic partial class EIP20Deployment : EIP20DeploymentBase{public EIP20Deployment() : base(BYTECODE) { }public EIP20Deployment(string byteCode) : base(byteCode) { }}public class EIP20DeploymentBase : ContractDeploymentMessage{public static string BYTECODE = "608060405234801561001057600080fd5b506040516107843803806107848339810160409081528151602080840151838501516060860151336000908152808552959095208490556002849055908501805193959094919391019161006991600391860190610096565b506004805460ff191660ff8416179055805161008c906005906020840190610096565b5050505050610131565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d757805160ff1916838001178555610104565b82800160010185558215610104579182015b828111156101045782518255916020019190600101906100e9565b50610110929150610114565b5090565b61012e91905b80821115610110576000815560010161011a565b90565b610644806101406000396000f3006080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461017557806323b872dd1461019c57806327e235e3146101c6578063313ce567146101e75780635c6581651461021257806370a082311461023957806395d89b411461025a578063a9059cbb1461026f578063dd62ed3e14610293575b600080fd5b3480156100bf57600080fd5b506100c86102ba565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101025781810151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014957600080fd5b50610161600160a060020a0360043516602435610348565b604080519115158252519081900360200190f35b34801561018157600080fd5b5061018a6103ae565b60408051918252519081900360200190f35b3480156101a857600080fd5b50610161600160a060020a03600435811690602435166044356103b4565b3480156101d257600080fd5b5061018a600160a060020a03600435166104b7565b3480156101f357600080fd5b506101fc6104c9565b6040805160ff9092168252519081900360200190f35b34801561021e57600080fd5b5061018a600160a060020a03600435811690602435166104d2565b34801561024557600080fd5b5061018a600160a060020a03600435166104ef565b34801561026657600080fd5b506100c861050a565b34801561027b57600080fd5b50610161600160a060020a0360043516602435610565565b34801561029f57600080fd5b5061018a600160a060020a03600435811690602435166105ed565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103405780601f1061031557610100808354040283529160200191610340565b820191906000526020600020905b81548152906001019060200180831161032357829003601f168201915b505050505081565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025481565b600160a060020a03831660008181526001602090815260408083203384528252808320549383529082905281205490919083118015906103f45750828110155b15156103ff57600080fd5b600160a060020a038085166000908152602081905260408082208054870190559187168152208054849003905560001981101561046157600160a060020a03851660009081526001602090815260408083203384529091529020805484900390555b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60006020819052908152604090205481565b60045460ff1681565b600160209081526000928352604080842090915290825290205481565b600160a060020a031660009081526020819052604090205490565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103405780601f1061031557610100808354040283529160200191610340565b3360009081526020819052604081205482111561058157600080fd5b3360008181526020818152604080832080548790039055600160a060020a03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b600160a060020a039182166000908152600160209081526040808320939094168252919091522054905600a165627a7a7230582084c618322109054a21a57e27075384a6172ab854e4b2c2d35062a964a6bf593f0029";public EIP20DeploymentBase() : base(BYTECODE) { }public EIP20DeploymentBase(string byteCode) : base(byteCode) { }[Parameter("uint256", "_initialAmount", 1)]public BigInteger InitialAmount { get; set; }[Parameter("string", "_tokenName", 2)]public string TokenName { get; set; }[Parameter("uint8", "_decimalUnits", 3)]public byte DecimalUnits { get; set; }[Parameter("string", "_tokenSymbol", 4)]public string TokenSymbol { get; set; }}[Function("transfer", "bool")]public class TransferFunctionBase : FunctionMessage{[Parameter("address", "_to", 1)]public string To { get; set; }[Parameter("uint256", "_value", 2)]public BigInteger Value { get; set; }}public partial class TransferFunction : TransferFunctionBase{}[Function("balanceOf", "uint256")]public class BalanceOfFunction : FunctionMessage{[Parameter("address", "_owner", 1)]public string Owner { get; set; }}[FunctionOutput]public class BalanceOfFunctionOutput : IFunctionOutputDTO{[Parameter("uint256", 1)]public int Balance { get; set; }}[Event("Transfer")]public class TransferEventDTOBase : IEventDTO{[Parameter("address", "_from", 1, true)]public virtual string From { get; set; }[Parameter("address", "_to", 2, true)]public virtual string To { get; set; }[Parameter("uint256", "_value", 3, false)]public virtual BigInteger Value { get; set; }}public partial class TransferEventDTO : TransferEventDTOBase{public static EventABI GetEventABI(){return EventExtensions.GetEventABI<TransferEventDTO>();}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 哪家月子中心好啊 坐月子哪家月子中心好
- 营业执照贷款能贷多少 营业执照贷款
- 房贷提前还款计算器在线 2021房贷提前还款计算器
- 多肉能放在卧室吗? 多肉放卧室可以吗
- 苹果和西红柿一起榨汁的功效 西红柿苹果可以一起吃吗?
- excel如何冻结多行多列 如何冻结多行多列
- c2驾照可以开多长的车子 C2驾照可以开多长的车?
- 平安银行房抵贷多久下款 平安银行房抵贷
- 西交利物浦大学学费标准 一年学费是多少
- 从剪辑手法 一个勺子亏了多少钱