private TokenFreezeMessage CreateTokenFreezeMessage(TokenFreeze tokenFreeze) { return(new TokenFreezeMessage { Amount = DoubleToLong(tokenFreeze.Amount), From = Wallet.Address, Symbol = tokenFreeze.Symbol }); }
public string BuildTokenFreeze(TokenFreeze tokenFreeze) { Wallet.EnsureWalletIsReady(); TokenFreezeMessage msgBean = CreateTokenFreezeMessage(tokenFreeze); byte[] msg = EncodeTokenFreezeMessage(msgBean); byte[] signature = EncodeSignature(Sign(msgBean)); byte[] stdTx = EncodeStdTx(msg, signature); return(EncodeUtils.ByteArrayToHex(stdTx)); }
public TokenFreezeMessage(TokenFreeze tokenFreeze, Wallet wallet, TransactionOption options) { this.wallet = wallet; this.options = options; this.message = new TokenFreezeProto(); this.message.From = wallet.Address; this.message.Symbol = tokenFreeze.Symbol; this.message.Amount = StringDecimalToLong(tokenFreeze.Amount); }
public static byte[] BuildTokenFreezeMessage(string coin, decimal amount, Wallet wallet) { string hrpFrom; byte[] addrDec; Bech32.Bech32Engine.Decode(wallet.Address, out hrpFrom, out addrDec); TokenFreeze tf = new TokenFreeze { Amount = (long)Decimal.Round(amount * 100000000), Symbol = coin, From = ByteString.CopyFrom(addrDec) }; var aminoMessage = AminoBuilder.buildAminoMessage(tf.ToByteArray(), AminoBuilder.AminoType.Freeze); StdSignBytesConverter signatureBytesConverter = new StdSignBytesConverter(tf, wallet); byte[] messageBytesForSign = signatureBytesConverter.GetCanonicalBytesForSignature(); var signatureBytes = wallet.Sign(messageBytesForSign); var signatureBytesMessage = AminoBuilder.buildAminoSignature(signatureBytes, wallet); var stdMsg = AminoBuilder.buildStandardTransaction(aminoMessage, signatureBytesMessage, ""); return(stdMsg); }
public void Freeze_Test() { Wallet wallet = Wallet.Open("{privateKey}", EnvironmentInfo.TESTNET); TokenFreeze tokenFreeze = new TokenFreeze() { Symbol = null, Amount = null }; TransactionOption option = new TransactionOption() { Memo = null, Source = 1, Data = null }; var api = BinanceApiFactory.CreateApiClient(EnvironmentInfo.TESTNET); var result = api.Freeze(tokenFreeze, wallet, option); Assert.IsTrue(result != null); }
public void TokenFreezeTest() { //List<String> words = Arrays.asList("trial raw kiss bench silent crystal clever cloud chapter obvious error income mechanic attend army outer found cube tribe sort south possible scene fox".split(" ")); //Wallet wallet = Wallet.createWalletFromMnemonicCode(words, BinanceDexEnvironment.TEST_NET); Wallet wallet = Wallet.FromPrivateKey("84c4226a24732e2d832e9d932779adfb9b95401ee607086967c7c5bba1e3a18e", BinanceDexEnvironment.TEST_NET); Assert.Equal("tbnb1mrslq6lhglm3jp7pxzlk8u4549pmtp9sgvn2rc", wallet.Address); wallet.AccountNumber = 0; wallet.Sequence = 9L; wallet.ChainId = "test-chain-n4b735"; TransactionOption options = new TransactionOption { Memo = "", Source = 0, Data = null }; TransactionRequest assembler = new TransactionRequest(wallet, options); TokenFreeze tokenFreeze = new TokenFreeze() { Amount = "1", Symbol = "NNB-C3F" }; //TokenFreezeMessage msgBean = assembler.createTokenFreezeMessage(tf); //byte[] encodedMsg = assembler.encodeTokenFreezeMessage(msgBean); //Assert.assertEquals("e774b32d0a14d8e1f06bf747f71907c130bf63f2b4a943b584b012074e4e422d4333461880c2d72f", EncodeUtils.bytesToHex(encodedMsg)); //byte[] signature = assembler.sign(msgBean); //Assert.assertEquals("9ceabe0262a75b0da7556303580f56a094486cc9938a728f903a57054061bd833288979fbc8dc5ee07743df5110cb773c25d9974f34158a4f6ed6ac6899740c2".toLowerCase(), EncodeUtils.bytesToHex(signature)); //byte[] encodedSignature = assembler.encodeSignature(signature); //Assert.assertEquals("0a26eb5ae987210280ec8943329305e43b2e6112728423ef9f9a7e7125621c3545c2f30ce08bf83c12409ceabe0262a75b0da7556303580f56a094486cc9938a728f903a57054061bd833288979fbc8dc5ee07743df5110cb773c25d9974f34158a4f6ed6ac6899740c22009", EncodeUtils.bytesToHex(encodedSignature)); //Assert.assertEquals( "9c01f0625dee0a28e774b32d0a14d8e1f06bf747f71907c130bf63f2b4a943b584b012074e4e422d4333461880c2d72f126c0a26eb5ae987210280ec8943329305e43b2e6112728423ef9f9a7e7125621c3545c2f30ce08bf83c12409ceabe0262a75b0da7556303580f56a094486cc9938a728f903a57054061bd833288979fbc8dc5ee07743df5110cb773c25d9974f34158a4f6ed6ac6899740c22009", EncodeUtils.bytesToHex(assembler.encodeStdTx(encodedMsg, encodedSignature))); string build = assembler.BuildTokenFreeze(tokenFreeze); Assert.Equal("9c01f0625dee0a28e774b32d0a14d8e1f06bf747f71907c130bf63f2b4a943b584b012074e4e422d4333461880c2d72f126c0a26eb5ae987210280ec8943329305e43b2e6112728423ef9f9a7e7125621c3545c2f30ce08bf83c12409ceabe0262a75b0da7556303580f56a094486cc9938a728f903a57054061bd833288979fbc8dc5ee07743df5110cb773c25d9974f34158a4f6ed6ac6899740c22009", build, true); }
public List <TransactionMetadata> Freeze(TokenFreeze tokenFreeze, Wallet wallet, TransactionOption options, bool sync = true) => FreezeAsync(tokenFreeze, wallet, options, sync).GetAwaiter().GetResult();
//TODO: //public Task<List<TransactionMetadata>> MultiTransferAsync(MultiTransfer multiTransfer, Wallet wallet, TransactionOption options, bool sync = true) //{ // TransactionMessage message = new MultiTransferMessage(multiTransfer, wallet, options); // return BroadcastAsync(sync, message.BuildMessageBody()); //} public Task <List <TransactionMetadata> > FreezeAsync(TokenFreeze tokenFreeze, Wallet wallet, TransactionOption options, bool sync = true) { TransactionMessage message = new TokenFreezeMessage(tokenFreeze, wallet, options); return(BroadcastAsync(message.BuildMessageBody())); }