Closed weixuefeng closed 10 months ago
What method call is that? Thatβs the full call? Only 0500?
Have you looked here? https://github.com/leonardocustodio/polkadart/blob/main/examples/bin/demo.dart This is a working example, maybe it helps you. If not, let me know.
thanks for your reply. @leonardocustodio
i added vara network on pubspec.yaml
varaTest: wss://testnet-archive.vara-network.io
my code
String transferCall(String toAddress, BigInt value) {
var pubkey = Address.decode(toAddress).pubkey;
final dest = const $MultiAddress().id(pubkey);
final runtimeCall =
api.tx.balances.transferKeepAlive(dest: dest, value: value);
return runtimeCall.encode().toHex().split0x();
}
...
var toAddress = "kGkMY2yNtcB4ws7nACUwsT3aLKoUsuhjhNWxxkMw8soxcktWh";
var keyring = Keyring();
var pair = await keyring.createKeyPairFromMnemonic(mnemonic5);
Log.d("addr mnemonic: ${keyring.encodeAddress(pair.publicKey.bytes, 137)}");
Log.d("signer pub: ${Uint8List.fromList(pair.publicKey.bytes).toHex()}");
var balance = await method
.getBalance(keyring.encodeAddress(pair.publicKey.bytes, 137));
Log.d("balance:$balance");
var runtimeVersion = await method.getRuntimeVersion();
var blockNumber = await method.getBlockNumber();
var genesisHash = await method.getGenesisHash();
var blockHash = await method.getBlockHash();
Log.d("blockHash: ${blockHash}");
Log.d("genesisHash: ${blockHash}");
Log.d("blockNumber: ${blockNumber}");
final methodCall = method.transferCall(toAddress, BigInt.from(1));
Log.d("method call: ${methodCall}");
var nonce = await method.getNonce(pair.address);
Log.d("nonce:$nonce");
SigningPayload payloadSign = SigningPayload(
method: methodCall,
specVersion: runtimeVersion.specVersion,
transactionVersion: runtimeVersion.transactionVersion,
genesisHash: genesisHash,
blockHash: blockHash,
blockNumber: blockNumber,
eraPeriod: 64,
nonce: nonce,
tip: 0);
var payload = payloadSign.encode(method.getRegistry());
var signature = pair.sign(payload);
Log.d("signature: ${signature.toHex()}");
var extrinsic = Extrinsic(
signer: Uint8List.fromList(pair.publicKey.bytes).toHex().split0x(),
method: methodCall,
signature: signature.toHex().split0x(),
eraPeriod: 64,
blockNumber: blockNumber,
nonce: nonce,
tip: 0);
var raw = extrinsic.encode(method.getRegistry());
Log.d("txRaw: ${raw.toHex()}");
var res = await method.sendTransaction(raw);
Log.d("res is:$res");
log
flutter: β π addr mnemonic: kGiWaA2fBLVRUDqTuTF3udmaeuq3ohLVVoTosq43zhg5Fr9cR
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:119:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π signer pub: 0x839fd83e4fbedae7b6aa15065029179001018a1019c6edef077dbba2d0988aed
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:122:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π balance:10000000000000
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:127:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π blockHash: c5dd440f4747ec3e6144d379f79c75611f397f7577a6c5aa3e2c60d0340b408d
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:128:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π genesisHash: c5dd440f4747ec3e6144d379f79c75611f397f7577a6c5aa3e2c60d0340b408d
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:129:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π blockNumber: 1628112
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:131:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π method call: 050300d533f5f76d2a114a42575e9293b8e0468415d131a1fa734ec637214a1bd521db04
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:133:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π nonce:0
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:146:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π signature: 0x21dc2383022023323d50ea27cfa6c463f160589e24b02cabab7f63324215a1ff82208a9a2c8d788d15322f8812e1b2e5b0758e731d5858bbfa1d1983e83e5e0a
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:157:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π txRaw: 0x2d028400839fd83e4fbedae7b6aa15065029179001018a1019c6edef077dbba2d0988aed0021dc2383022023323d50ea27cfa6c463f160589e24b02cabab7f63324215a1ff82208a9a2c8d788d15322f8812e1b2e5b0758e731d5858bbfa1d1983e83e5e0a05010000050300d533f5f76d2a114a42575e9293b8e0468415d131a1fa734ec637214a1bd521db04
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Exception: {code: 1010, message: Invalid Transaction, data: Inability to pay some fees (e.g. account balance too low)}
#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7)
test mnemonic is: resource mirror lecture smooth midnight muffin position cup pepper fruit vanish also
when i change tip to 100
, i got error:
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:127:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π blockHash: 7b05cb9adbceaa7952e39ceff109f5fcbdce0da7fc2220171fc321f6da798cdf
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:128:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π genesisHash: 7b05cb9adbceaa7952e39ceff109f5fcbdce0da7fc2220171fc321f6da798cdf
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:129:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π blockNumber: 1628485
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:131:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π method call: 050300d533f5f76d2a114a42575e9293b8e0468415d131a1fa734ec637214a1bd521db821a0600
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:133:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π nonce:0
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:146:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π signature: 0xb2099a01ef932f6376a403e488f3f0c43eab6fce96cc3a014f4922acb1b1d64beb9eb8bae04bffdd8d3d490063f978678fb5561eceec2803dd7c9f0c8b214d0d
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β #0 Log.d (package:web3_wallet/Util/WalletCore/Method/py_logger.dart:18:13)
flutter: β #1 PYVaraTest.sendTransactionTest (package:web3_wallet/Util/WalletCore/Test/py_vara_test.dart:157:9)
flutter: β #2 <asynchronous suspension>
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
flutter: β π txRaw: 0x3d028400839fd83e4fbedae7b6aa15065029179001018a1019c6edef077dbba2d0988aed00b2099a01ef932f6376a403e488f3f0c43eab6fce96cc3a014f4922acb1b1d64beb9eb8bae04bffdd8d3d490063f978678fb5561eceec2803dd7c9f0c8b214d0d5500009101050300d533f5f76d2a114a42575e9293b8e0468415d131a1fa734ec637214a1bd521db821a0600
flutter: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Exception: {code: 1010, message: Invalid Transaction, data: Transaction has a bad signature}
#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7)
<asynchronous suspension>
buy the address: kGiWaA2fBLVRUDqTuTF3udmaeuq3ohLVVoTosq43zhg5Fr9cR
have 10 TVARA
I see so it only works with fee = 0
? I will investigate it.
i resolved. vara account must have 10 VARA for active account. how can i calculate fee without privateKey or mnemonic?
@weixuefeng you can add a fake signature to it and send make a request with the whole extrinsic to payment_queryFeeDetails
here is an example of a signer and a signature that you can put on Extrinsic
to have the full extrinsic and send to the node:
$signer = '006802f945419791d3138b4086aa0b2700abb679f950e2721fd7d65b5d1fdf8f02';
$signature = '01d19e04fc1a4ec115ec55d29e53676ddaeae0467134f9513b29ed3cd6fd6cd551a96c35b92b867dfd08ba37417e5733620acc4ad17c1d7c65909d6edaaffd4d0e';
thanks for your reply @leonardocustodio
it can not work. pls help