/// Gets the DNA based on the input fields private IEnumerator GetDNA() { // convert string to hex to work the same way as Javascript Example string id = int.Parse(inputGetDNAItemID.text).ToString("x"); var req = new EthCallUnityRequest(url); var contract = new Contract(null, itemManagerABI, itemManagerContractAddress); var function = contract.GetFunction("getDNA"); var callInput = function.CreateCallInput(id, inputGetDNAAddress.text); var blockParameter = Nethereum.RPC.Eth.DTOs.BlockParameter.CreateLatest(); yield return(req.SendRequest(callInput, blockParameter)); // convert from Hex to String string result = HexBigIntegerConvertorExtensions.HexToBigInteger(req.Result, false).ToString(); inputGetDNADNA.text = result; }
// Array request, string service, Action<string> callback, string callbackUrl public async Task <Texture2D> SendTransaction() { // Uri for transaction string baseRequestUri = "meta://transaction?", trxRequestUri = ""; // URI for to, value, data baseRequestUri += "t=" + to + "&v=" + HexBigIntegerConvertorExtensions.ToHex(value, true) + "&d=" + HexStringUTF8ConvertorExtensions.ToHexUTF8(data); // URI for usage baseRequestUri += "&u=" + usage; // URI for callbackUrl and callback if (!string.IsNullOrEmpty(callbackUrl)) { baseRequestUri += "&c=" + WWW.EscapeURL(callbackUrl); } else { baseRequestUri += "&c=https%3A%2F%2F0s5eebblre.execute-api.ap-northeast-2.amazonaws.com/dev?key=" + session; } Debug.Log("Transaction baseRequestUri: " + baseRequestUri); // URI for IPFS IPFSClass ipfs = new IPFSClass(); trxRequestUri = await ipfs.IpfsAdd(baseRequestUri); Debug.Log("Transaction trxRequestUri(IPFS hash): " + trxRequestUri); // Polling request using timer timer = new Timer { Interval = 2000 }; timer.Elapsed += HttpRequest; timer.AutoReset = true; timer.Enabled = true; timer.Start(); // Make QRCode for request QRcode.QRcode metaQR = new QRcode.QRcode(); return(metaQR.MakeQR(256, trxRequestUri)); }
WalletTx AddOutgoingTx(string from, string signedTx, WalletTag tagFor) { var address = db.AddrGet(from); var tx = new Transaction(signedTx.HexToByteArray()); var date = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); var fee = HexBigIntegerConvertorExtensions.HexToBigInteger(tx.GasLimit.ToHex(), false) * HexBigIntegerConvertorExtensions.HexToBigInteger(tx.GasPrice.ToHex(), false); var amount = HexBigIntegerConvertorExtensions.HexToBigInteger(tx.Value.ToHex(), false); logger.LogDebug("outgoing tx: amount: {0}, fee: {1}", amount, fee); // create chain tx var ctx = new ChainTx(tx.Hash.ToHex(true), date, fee, -1, 0); db.ChainTxs.Add(ctx); var networkStatus = new ChainTxNetworkStatus(ctx, ChainTxStatus.Unconfirmed, date, signedTx.HexToByteArray()); db.ChainTxNetworkStatus.Add(networkStatus); // create tx input var i = new TxInput(tx.Hash.ToHex(true), from, 0, amount + fee); i.ChainTx = ctx; i.WalletAddr = address; db.TxInputs.Add(i); // create tx output var o = new TxOutput(tx.Hash.ToHex(true), tx.ReceiveAddress.ToHex(true), 0, amount); o.ChainTx = ctx; db.TxOutputs.Add(o); if (tagFor != null) { db.TxOutputsForTag.Add(new TxOutputForTag { TxOutput = o, Tag = tagFor }); } // create wallet tx var wtx = new WalletTx { ChainTx = ctx, Address = address, Direction = WalletDirection.Outgoing }; db.WalletTxs.Add(wtx); return(wtx); }