TON Дев Чат
fift -s ~/ton/crypto/smartcont/new-wallet.fif 0
Masterchain 0xfcb91a3a3816d0f7b8c2c76108b8a9bc5a6b7a55bd79f8ab101c52db29232260
, но по этому адресу в сканере какая-то муть выводится, меняю на найденный адрес Test Tongiver Basechain 0x588af75cd06024fa79dccda32760db928e9797bb69c94b70d9e0aa8b8e8b17e6
https://testnet.ton.cx/address/kQBYivdc0GAk-nnczaMnYNuSjpeXu2nJS3DZ4KqLjosX5n7Ifift -s ~/ton/crypto/smartcont/testgiver.fif 0QCvfbcG3Xk7kIYpb0sUKFiyrI5ejRGkpAgBg6psaD_ul412 0x4D4F 6.66
(seqno для тестгивера посчитан, адрес кошелька non-bounceable)wallet v3 r1
, то есть обычный кошелек. Было бы странно если бы любой человек мог с любого другого кошелька выводить деньги)
EQBhN7FvMjD0cEbLqcCENN6jeHkhYjZrbnBOk-iEFJitUmRM
export async function waitSeqno(seqno: number, walletContract: WalletContract) {
for (let attempt = 0; attempt < 10; attempt++) {
await sleep(2000);
const seqnoAfter = await walletContract.getSeqNo();
if (seqnoAfter > seqno) break;
}
}
128
символов даже
Rate limit exceeded: 1 per 1 second
. Из за чего она может возникать? async function start(){P.S. solved, простая невнимательность, апи ключ передовал как параметр в TonWeb, а не HttpProvider
const tonweb = new TonWeb(new TonWeb.HttpProvider('https://testnet.toncenter.com/api/v2/jsonRPC'), {apiKey: "4bcd2APIKEY"})
const keyPair = await mnemonic.mnemonicToKeyPair(["smt"])
const publicKey = keyPair.publicKey
const WalletClass = tonweb.wallet.all['v4R2']
const wallet = new WalletClass(tonweb.provider, {publicKey, wc: 0})
const seqno = await wallet.methods.seqno().call();
const transfer = wallet.methods.transfer({
secretKey: keyPair.secretKey,
toAddress: 'EQBAddress',
amount: TonWeb.utils.toNano('0.01'), // 0.01 TON
seqno: seqno || 0,
payload: 'test',
sendMode: 3,
});
const transferSended = await transfer.send(); // send transfer query to blockchain
console.log(transferSended)
}
from tonsdk.utils import Address
Address('0:6a016d5..').to_string(True, True, True)
"seller_fee_basis_points": 101
{
"name": "Dwarf #1",
"description": "Mighty army of dwarves",
"image": "ipfs://QmRXwNpgHyfdJUZXXhE62vbY1XQ9HFwh5EW9FS2kunpqRS/1.png",
"dna": "3ef8b624a208bba1faf1375c2423a48196eb8df9",
"edition": 1,
"date": 1667838233429,
"attributes": [
{
"trait_type": "Background",
"value": "Bg 5"
},
{
"trait_type": "Foots",
"value": "Foots 7"
tointeger
, которая строку "Hello world" преобразует в число, которое в свою очередь и записывается в код func. Может в самом func есть возможность преобразовать так же адрес овнера?
(int wc, int address) = owner_address.parse_std_addr();
deploy_nft_item(item_index, nft_item_code, amount, content);
address ^= wc;
slice_hash(addr)
? тогда обе части адреса будут учтены
CS{Cell{0004c9bd} bits: 0..16; refs: 0..0}
0xc9bd
, а что такое 0x0004
?
begin_cell().store_uint(crc, 16).end_cell().begin_parse()
0x0004
что-то вроде префикса для типа данных или ещё что.
LITESERVER_UNKNOWN: cannot apply external message to current state : Failed to get account state
?
LITESERVER_UNKNOWN: cannot apply external message to current state : Failed to get account state
?
<Buffer b5 ee 9c 72 41 01 01 01 00 28 00 00 4b 80 12 12 7b a5 f9 33 b1 9c ce d6 ab 10 f8 54 ed 09 96 90 c9 b6 57 fa 34 4d 00 e8 4d 8f 97 e0 a0 4d 68 ee 6b 28 ... 5 more bytes>Этот буфер содержит адрес и coins
const cell = Cell.fromBoc(buffer)[0];
const cs = cell.beginParse();
const coins = cs.readCoins();
const addr = cs.readAddress();
client = TonlibClient(ls_index=0,
config=ton_config,
keystore=keystore_dir)
await client.init()
Tonlib #000 crashed: Traceback (most recent call last):
File "/opt/homebrew/lib/python3.10/site-packages/pytonlib/tonlibjson.py", line 207, in read_results
result = await asyncio.wait_for(self.loop.run_in_executor(None, receive_func), timeout=timeout + delta)
File "/opt/homebrew/Cellar/python@3.10/3.10.8/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/tasks.py", line 432, in wait_for
await waiter
asyncio.exceptions.CancelledError
[ 1][t 1][2022-11-09 16:43:51.894868625][lite-client.cpp:152][!testnode] liteserver error: [Error : 0 : cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by account FCB91A3A3816D0F7B8C2C76108B8A9BC5A6B7A55BD79F8AB101C52DB29232260 before smart-contract execution]
TRY:<{}>
debugLogs
fieldSTRDUMP
opcode now logs utf-8 strings*.ton
домены могут быть
console.log(wallet.createTransferMessage([{
destination: destination,
amount: amount,
body: body,
mode: 3
}] ))
transfer = wallet.methods.transfer({
secretKey: keyPair.secretKey,
toAddress: req.query.to,
amount: TonWeb.
utils.toNano(req.query.amount),
seqno: 0,
payload: '',
sendMode: 3,
});
LITE_SERVER_UNKNOWN: cannot apply external message to current state : Failed to get account state
.
req.query.to
на new tonweb.Address(req.query.to)
поменять
LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction 00714A9761159641B8CE8A6A68FE7DD3DF9BACF23EF1B8AF00F8E714E8657DD4:
exitcode=35, steps=37, gas_used=0
VM Log (truncated):
... XCPU s3,s2
execute EQUAL
execute THROWIFNOT 33
execute XCPU s4,s4
execute EQUAL
execute THROWIFNOT 34
execute XCHG s4
execute HASHSU
execute XC2PU s0,s5,s5
execute CHKSIGNU
execute THROWIFNOT 35
default exception handler, terminating vm with exit code 35
execute CHKSIGNU
execute THROWIFNOT 35
упало на проверке подписи
const keyPair = nacl.sign.keyPair.fromSecretKey(secretKey)
const tonweb = tonWeb();
const wallet = tonweb.wallet.create({publicKey: keyPair.publicKey, wc: 0});
const msg = await wallet.createInitExternalMessage(keyPair.secretKey);
const address = msg.address;
.log({
'public':
Buffer.from(keyPair.publicKey.toString()).toString('base64'),
'secret':
Buffer.from(keyPair.secretKey.toString()).toString('base64'),
'wc': wallet.options.wc,
'walletId': wallet.options.walletId,
'address1': address.toString(false),
'address2': address.toString(true, true, false, true),
'address3': address.toString(true, true, true, true),
'boc': TonWeb.
utils.bytesToHex(await msg.message.toBoc(false)).toUpperCase()
});
{
public: 'NDksNDksNDksNTAsNDksNTAsNTcsNTAsNTAsNDksNTMsNTAsNDksNTAsNTUsNDksNDksNTUsNDksNDksNTUsNDksNDksNDksNTcsNTAsNTAsNDksNDksNTAsNTIsNDk=',
secret: 'NTAsNDksNDksNTAsNDksNDksNTQsNDksNTAsNDksNDksNDksNTMsNTIsNTIsNDksNDksNTAsNTIsNTAsNDksNTAsNTAsNDksNDksNTAsNDksNDksNTAsNDksNTQsNDksNDksNDksNDksNTAsNDksNTAsNTcsNTAsNTAsNDksNTMsNTAsNDksNTAsNTUsNDksNDksNTUsNDksNDksNTUsNDksNDksNDksNTcsNTAsNTAsNDksNDksNTAsNTIsNDk=',
wc: 0,
walletId: 698983191,
address1: '0:00714a9761159641b8ce8a6a68fe7dd3df9bacf23ef1b8af00f8e714e8657dd4',
address2: '0QAAcUqXYRWWQbjOimpo_n3T35us8j7xuK8A-OcU6GV91Lf-',
address3: 'kQAAcUqXYRWWQbjOimpo_n3T35us8j7xuK8A-OcU6GV91Oo7',
boc: 'B5EE9C72410204010001030001DD880000E2952EC22B2C83719D14D4D1FCFBA7BF3759E47DE3715E01F1CE29D0CAFBA8192652C45E20353EE8F6866FAB46372F8CEBA8B7E1025304FDEB840BB3FE3C38ACA3CCDFB990AA9D2663AF77945FB2ED94DA0CA24FBC62B894FCCBCA620BEAB404A6A68C5FFFFFFFFC0000000201020134020300C0FF0020DD2082014C97BA9730ED44D0D70B1FE0A4F2608308D71820D31FD31FD31FF82313BBF263ED44D0D31FD31FD3FFD15132BAF2A15144BAF2A204F901541055F910F2A3F8009320D74A96D307D402FB00E8D101A4C8CB1FCB1FCBFFC9ED5400500000000029A9A3173131313231323932323135323132373131373131373131313932323131323431B4A5F481'
}
payload: '',
seqno
- тут что вообще нужно это типа nonce или что ?
const seqno = await wallet.methods.seqno().call()
LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction 00714A9761159641B8CE8A6A68FE7DD3DF9BACF23EF1B8AF00F8E714E8657DD4:
exitcode=0, steps=0, gas_used=0
const balance = new BN(await tonweb.provider.getBalance(await wallet.getAddress()));
LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction 229E833DA63E544A6C7CBE3D4760451709D5BCA72E7764E5E24B329FE5DD6445:
exitcode=35, steps=41, gas_used=0
VM Log (truncated):
... XCPU s3,s2
execute EQUAL
execute THROWIFNOT 33
execute XCPU s4,s4
execute EQUAL
execute THROWIFNOT 34
execute XCHG s4
execute HASHSU
execute XC2PU s0,s5,s5
execute CHKSIGNU
execute THROWIFNOT 35
default exception handler, terminating vm with exit code 35
LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction 229E833DA63E544A6C7CBE3D4760451709D5BCA72E7764E5E24B329FE5DD6445:
exitcode=0, steps=0, gas_used=0
[ 2][t 3][2022-11-07 23:46:55.524661995][full-node-shard.cpp:465][!manager] getnextkey: [Error : 651 : not inited]
[ 2][t 3][2022-11-07 23:47:05.802074758][manager-init.cpp:86][!downloadproofreq] failed to download proof link: [Error : 652 : adnl query timeout]
[ 2][t 3][2022-11-07 23:47:25.389188291][full-node-shard.cpp:465][!manager] getnextkey: [Error : 651 : not inited]
[ 2][t 3][2022-11-07 23:47:25.772175583][full-node-shard.cpp:465][!manager] getnextkey: [Error : 651 : not inited]
[ 2][t 3][2022-11-07 23:47:36.295927236][manager-init.cpp:86][!downloadproofreq] failed to download proof link: [Error : 651 : proof not found]
[ 2][t 3][2022-11-07 23:47:38.562352802][manager-init.cpp:86][!downloadproofreq] failed to download proof link: [Error : 651 : proof not found]
[ 2][t 3][2022-11-07 23:47:41.920657840][manager-init.cpp:86][!downloadproofreq] failed to download proof link: [Error : 651 : proof not found]
[ 2][t 3][2022-11-07 23:47:55.984645286][full-node-shard.cpp:465][!manager] getnextkey: [Error : 651 : not inited]
[ 2][t 3][2022-11-07 23:48:19.294878745][manager-init.cpp:86][!downloadproofreq] failed to download proof link: [Error : 651 : proof not found]
[ 2][t 3][2022-11-07 23:48:22.334834089][full-node-shard.cpp:465][!manager] getnextkey: [Error : 651 : not inited]
https://ton.org/global-config.json
EQAJH62UImgdvXk-Bxy9zcbRm6xDkGsREqGRYyJIsFOp0jSZ
systemctl stop mytoncore
var wallet = tonweb.wallet.create({publicKey: keyPair.publicKey, wc: 0})
const address = await wallet.getAddress()
get_transactions(self, account,
from_transaction_lt=
None,
from_transaction_hash=
None,
to_transaction_lt=0,
limit=10,
decode_messages=
True,
*args, **kwargs)
{
"@type":
"raw.transaction",
"utime":1656637611,
"data":
"...",
"transaction_id":{
"@type":
"internal.transactionId",
"lt":
"1349017000003",
"hash":
"A5RXGtNknGkyx0Ld+6Ebd6npNhVvJKidqDagjjAA5qU="},
"fee":
"2301000",
"storage_fee":
"0",
"other_fee":
"2301000",
"in_msg":{
"@type":
"raw.message",
"source":
"EQBvI0aFLnw2QbZgjMPCLRdtRHxhUyinQudg6sdiohIwg5jL",
"destination":
"EQDlWqMZgShLwVLgvT4Ca7oAmllwA0iJ444CYhvaXulXucu9",
"value":
"50000000",
"fwd_fee":
"14956115",
"ihr_fee":
"0",
"created_lt":
"1349017000002",
"body_hash":
"lqKW0iTyhcZ77pPDD4owkVfw2qNdxbh+QQt4YwoJz8c=",
"msg_data":{
"@type":
"msg.dataRaw",
"body":
"te6cckEBAQEAAgAAAEysuc0=",
"init_state":
"..."},
"message":
""},
"out_msgs":[
{
"@type":"raw.message",Exception: LITE_SERVER_UNKNOWN: cannot apply external message to current state : Failed to get account state
sendMode
где можно почитать
seqno 25039016 (diff 2328) conf 36 found
seqno 25022524 (diff 16492)
seqno 25020220 (diff 2304) conf 36 found
seqno 25003825 (diff 16395)
seqno 25001508 (diff 2317) conf 36 found
seqno 24985117 (diff 16391)
seqno 24982778 (diff 2339) conf 36 found
seqno 24966212 (diff 16566)
seqno 24963930 (diff 2282) conf 36 found
seqno 24947506 (diff 16424)
seqno 24945232 (diff 2274) conf 36 found
seqno 24929127 (diff 16105)
seqno 24926855 (diff 2272) conf 36 found
seqno 24910721 (diff 16134)
seqno 24908434 (diff 2287) conf 36 found
"LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction 470C94396DBC1484357714EA43B8BAB041FDBB0067367A824C5CC10643690C6A:
exitcode=0, steps=0, gas_used=0".]
что значит exit code=0 😳 в чем может быть проблема?
_ split_depth:(Maybe (## 5)) special:(Maybe TickTock)
code:(Maybe ^Cell) data:(Maybe ^Cell)
library:(HashmapE 256 SimpleLib) = StateInit;
split_depth
, special
? Это какие-то префиксы которые за пределами tlb определяются контекстом задачи? В последующих переменных оно не применяется а название split_depth вызывает вопросы.
() recv_external() {}