TON Дев Чат
WARNING:
🤖 Can't find executable for func, please specify it, e.g.: /usr/bin/func
Path: /Users/aleksandr/Desktop/ton-macos-binaries/crypto/func
ERROR: Command '['/Users/aleksandr/Desktop/ton-macos-binaries/crypto/func', '-V']' died with <Signals.SIGILL: 4>.
EQD8m46b2HxlbIPFXJX8XDVam400BT_1JNARJUw3I-W7EGkZ
) в raw-addres(напр 0:FC9B8E9BD87C656C83C55C95FC5C355A9B8D34053FF524D011254C3723E5BB10
) и/или наоборот?
msg_forward_prices#ea lump_price:uint64 bit_price:uint64 cell_price:uint64
ihr_price_factor:uint32 first_frac:uint16 next_frac:uint16 = MsgForwardPrices;
get_data()
/ set_data(<cell>)
toncli send -n testnet -a 0.03 -c wallet --body ./fift/try.fif
чтобы toncli сам подтянул адрес из данных деплоя
type DataFees = {
"@type": string
source_fees: {
"@type": string
in_fwd_fee: number
storage_fee: number
gas_fee: number
fwd_fee: number
},
destination_fees: []
"@extra": string
}
static calcFee = (dataFees: DataFees) => {
const values = Object.values(dataFees.source_fees).filter(item => typeof item === "number") as number[]
const result = values.reduce((a, b) => a + b)
return parseFloat(tonweb.utils.fromNano(result.toString()))
}
const seqno = await wallet.methods.seqno().call() || 0;
const transfer = wallet.methods.transfer({
secretKey: source_key_pair.secretKey,
toAddress: destination_address,
amount: TonWeb.utils.toNano(amount),
seqno: seqno,
payload: message,
sendMode: 3,
});
const transferFee = await transfer.estimateFee();
const transferSended = await transfer.send();
const transferQuery = await transfer.getQuery();
Но эти TON сразу же возвращаются (за исключением комиссии) на кошелёк-отправитель прямо в этой же транзакции, и баланс снова становится 0, соответственно деплой я сделать не могуapi.RunGetMethod(context.Background(), masterBlock, addr, "get_collection_data")
Получаю индекс 13333api.RunGetMethod(context.Background(), masterBlock, addr, "get_nft_address_by_index", index)
Но получаю скрин1{получаю скрин 2.
"address": "EQAA1yvDaDwEK5vHGOXRdtS2MbOVd1-TNy01L1S_t2HF4oLu",
"method": "get_nft_address_by_index",
"stack": [["num",13333]]
}
api/cat/bg0054:bd0006:ey0018:te0029:wh0002/json
вместо https://richcats.app/api/cat/bg0054:bd0006:ey0018:te0029:wh0002/json, а для ARL 1024.json
вместо http://nft.animalsredlist.com/nfts/10204.json
get_nft_content(int index, cell individual_content) returns cell full_content
{
"address": "0:af61fe56dfa6b4cd0ad2ff073a3cc2a0e899f24dc154e7a34fc753eb016eb7aa",
"method": "get_nft_content",
"stack": [["num", 517], ["cell", "te6cckEBAQEAMQAAXmFwaS9jYXQvYmcwMDU0OmJkMDAwNjpleTAwMTg6dGUwMDI5OndoMDAwMi9qc29uwN3WYw=="]]
}
Ответ:{
"ok": false,
"error": "Expecting value: line 1 column 1 (char 0)",
"code": 503
}
['tvm.Cell', bytesToBase64(
await cell.toBoc(false)
)]
await account.run_get_method('get_nft_content', [отдает ошибку
Tvm_StackEntryNumber(
Tvm_NumberDecimal(
x['index']
)
),
Tvm_StackEntryCell(
Tvm_Cell(
bytes_to_b64str(x['content']).to_boc(False)
)
)
])
TypeError: a bytes-like object is required, not 'str'
если без функции bytes_to_b64strотдает
ton.tonlibjson.TonlibError: bag of cells is expected to have exactly one rootесли есть в чате кто-то из разрабов библиотеки, просьба помочь)
await account.run_get_method('get_nft_content', [
Tvm_StackEntryNumber(
Tvm_NumberDecimal(
x['index']
)
),
Tvm_StackEntryCell(
Tvm_Cell(
x['content']
)
)
])
и он выдает TypeError: a bytes-like object is required, not 'Cell'addr_slice = Cell()
addr_slice.bits.write_address(Address(owner_addr))
addr_stack_arg = base64.b64encode(addr_slice.to_boc(False, False)).decode("utf-8")
result = self._run(self.provider.raw_run_method(prepare_address(minter_addr),n"get_wallet_address",[["tvm.Slice", addr_stack_arg]]))
index.bits.store_uint(для index)
toncli start nft_colletion
/ toncli start jetton_minter
Так же доступны проекты: nft_item
/ jetton_wallet
.cd `mktemp -d`Получите правильный бандл на рабочем столе.
git clone -b hashmaps https://github.com/toncenter/tonweb.git
cd tonweb/ && npm i --legacy-peer-deps && npm run build
cp ./dist/tonweb.js ~/Desktop/
randomize_lt
1
на now
вот тут: https://github.com/disintar/toncli/blob/50872c671a4fbf70bf10646aa8582bbb9af89cc1/src/toncli/modules/fift/run_test.fif.template#L43 и это помогло
self.provider = ToncenterClient(...)
def seqno(self, addr: str):решил проблему. Огромное спасибо за помощь @sasha1618 и более ранние консультации @psylopunk
addr = prepare_address(addr)
result = self._run(self.provider.raw_run_method(addr, "seqno", []))
if 'stack' in result and ('@type' in result and result['@type'] == 'smc.runResult'):
result['stack'] = serialize_tvm_stack(result['stack'])
return parse_response(result[0])
max_tx_gas_price
ton.send('ton_sendTransaction', {...})
?getTransactions()
из тонвеба и ждать пока транза появится либо истечет TTL.
x{10000000000000000000000000000000000000000000000000000000000000000} 256 u@
И
то, я
до конца не уверен, что этот инт будет вести себя как беззнаковый далее.
1 256 <<вы
зыв
ает переполнение т.к 1 знаковая
256 u@
может быть число от 0 до 2^256-1, поэтому проблем и нет.
ton-http-api --liteserver-config <путь к myLocalTon>\genesis\db\my-ton-local.config.json --port 9000
toncli lc
не запускает интерактивный интерфейс, а получает последний блок от лайт-сервера и тут же закрывается.
toncli lc interactive
, и оно не ругается на неизвестную команду.
.store_builder
, defining a global function of unknown type.store_builder
undefined )
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:19:2: error: "No thread-local support. Disable iostats context with -DNIOSTATS_CONTEXT."
#error \
^
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:24:11: error: use of undeclared identifier 'iostats_context'; did you mean 'get_iostats_context'?
return &iostats_context;
^~~~~~~~~~~~~~~
get_iostats_context
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:23:17: note: 'get_iostats_context' declared here
IOStatsContext* get_iostats_context() {
^
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:24:10: error: cannot initialize return object of type 'rocksdb::IOStatsContext *' with an rvalue of type 'rocksdb::IOStatsContext *(*)()'
victordmitrishen@192 build % cmake ~/dev/ton -DTON_ARCH="apple-m1" -DNIOSTATS_CONTEXT
CMake Error: Parse error in command line argument: NIOSTATS_CONTEXT
Should be: VAR:type=value
CMake Error: Run 'cmake --help' for all supported options.
$_
), либо заранее определенная ($01
)
mnemonic
, из него сделал keyPair
. Теперь хочу получить v4R2 версию кошелька с двумя адресами: bouncable
& unBouncable
. В примерах видел, что преобразование происходит через toString
, но у меня это работает некорректно, а именно: в unBouncable
присваивается raw, а вместо bouncable
я получаю unBouncable
адрес.
"INVALID_BAG_OF_CELLS: bodybag of cells is expected to have exactly one root"Вот код сборки мэсседжа:
var msg = new tonweb.boc.Cell()
// ext_in_msg_info$10
msg.bits.writeBit(1)
msg.bits.writeBit(0)
// addr_none$00
msg.bits.writeBit(0)
msg.bits.writeBit(0)
// addr_std$10
msg.bits.writeBit(1)
msg.bits.writeBit(0)
// dest:MsgAddressInt
msg.bits.writeAddress(new tonweb.Address('UQBtKDk7E0s8+BCMobt2fZ2w7sba88fmsFFm6ZkuIX8d5bde'))
// import_fee:Grams
msg.bits.writeGrams(0)
await tonweb.sendBoc(msg)
sendBoc()
принимает Uint8Array
, а Вы передаете Cell
.
await tonweb.sendBoc(
await msg.toBoc(false)
);
INVALID_BAG_OF_CELLS: bodycannot deserialize bag-of-cells: invalid header, error 0
bytesToBase64()
лишнее, это в другом методе строка нужна.
LITE_SERVER_UNKNOWN: cannot apply external message to current state : failed to parse external message external message is not a (Message Any) according to automated checks
Получается я все таки неправильно по TL-b схеме месседж составил 🤔t3t9OVb6+xlXUDICKyJt61Kv9jB/W5C6uViu+zW04eU=
, хэш in msg - qXyBWuI2S9EHuaBQi95uf3ixvF+1E1i/sV0fP8TGCUU=
/tmp/tmpwej8421_.fif
: nft.fif:58: PROCINLINE:<{:-?/tmp/tmp3bxtu5li.boc
: nft.fif:58: PROCINLINE:<{:-?