TON Дев Чат
wallet_jetton['address'].to_string(True, True, True)
-C
<b x{74657374} s, b>
, где x{..}
можно получить, скомпилировав "string"
из func
toncli get method [args]
?libtonlibjson
в тестовой сети.libtonlibjson.so.0.5
и https://ton-blockchain.github.io/testnet-global.config.json
, получаю:{'@type': 'error', 'code': 400, 'message': 'INVALID_CONFIG: hardforks differs from embedded hardforks', '@extra': 'init-ncvndo'}
smc.load
, который загружает стейт контракта, который нужен для smc.runGetMethod
(и для нескольких других).smc.forget
не реализован и закомментирован в tonlib_api.tl
. smc.load
на каждый вызов get-метода
createNewKey
raw.initialAccountState
и получил адрес нового кошелька через getAccountAddress
actionNoop
и отправить сообщение, делаю createQuery
- получаю "ACCOUNT_NOT_INITED"raw.createQuery
, но к сожалению не могу найти примера использования, сейчас на raw.createQuery
получаю "'INVALID_BAG_OF_CELLS: bodybag of cells is expected to have exactly one root'", подозреваю, что что-то с body
))// Then when you want to send Toncoins from wallet to someone else - along with this first outgoing transfer, the deployment of the wallet smart contract will happen automatically.
{'@type': 'createQuery', 'private_key': {'@type': 'inputKeyRegular', 'key': {'@type': 'key', 'public_key': 'xxx', 'secret': 'xxx'}, 'local_password': None}, 'address': {'@type': 'accountAddress', 'account_address': 'xxx'}, 'timeout': 300, 'action': {'@type': 'actionNoop'}, 'initial_account_state': {'@type': 'raw.initialAccountState', 'code': 'te6cckECFAEAAtQAART/APSkE/S88sgLAQIBIAIDAgFIBAUE+PKDCNcYINMf0x/THwL4I7vyZO1E0NMf0x/T//QE0VFDuvKhUVG68qIF+QFUEGT5EPKj+AAkpMjLH1JAyx9SMMv/UhD0AMntVPgPAdMHIcAAn2xRkyDXSpbTB9QC+wDoMOAhwAHjACHAAuMAAcADkTDjDQOkyMsfEssfy/8QERITAubQAdDTAyFxsJJfBOAi10nBIJJfBOAC0x8hghBwbHVnvSKCEGRzdHK9sJJfBeAD+kAwIPpEAcjKB8v/ydDtRNCBAUDXIfQEMFyBAQj0Cm+hMbOSXwfgBdM/yCWCEHBsdWe6kjgw4w0DghBkc3RyupJfBuMNBgcCASAICQB4AfoA9AQw+CdvIjBQCqEhvvLgUIIQcGx1Z4MesXCAGFAEywUmzxZY+gIZ9ADLaRfLH1Jgyz8gyYBA+wAGAIpQBIEBCPRZMO1E0IEBQNcgyAHPFvQAye1UAXKwjiOCEGRzdHKDHrFwgBhQBcsFUAPPFiP6AhPLassfyz/JgED7AJJfA+ICASAKCwBZvSQrb2omhAgKBrkPoCGEcNQICEekk30pkQzmkD6f+YN4EoAbeBAUiYcVnzGEAgFYDA0AEbjJftRNDXCx+AA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA4PABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AAG7SB/oA1NQi+QAFyMoHFcv/ydB3dIAYyMsFywIizxZQBfoCFMtrEszMyXP7AMhAFIEBCPRR8qcCAHCBAQjXGPoA0z/IVCBHgQEI9FHyp4IQbm90ZXB0gBjIywXLAlAGzxZQBPoCFMtqEssfyz/Jc/sAAgBsgQEI1xj6ANM/MFIkgQEI9Fnyp4IQZHN0cnB0gBjIywXLAlAFzxZQA/oCE8tqyx8Syz/Jc/sAAAr0AMntVGliJeU=', 'data': 'te6cckEBAQEAKwAAUQAAAADzgT+CVeyTYaKxGLIdbZ4e835sEegZ/SK/QnkcBMxt/DYFTXpAxsQl9A=='}}
{'@type': 'error', 'code': 400, 'message': 'ACCOUNT_NOT_INITED'}
to_string
? В фифте же есть (.)
if bit 0 is not set, the gas fees are deducted from this amount
а что за бит? он по дефолту not set?
(int k, slice v, int f?) = d.udict_get_min?(256);а не через while:
do {
(k, v, f?) = d.udict_get_next?(256, k);
if (f?) {
;; something
}
} until (~ f?);
(int k, slice v, int f?) = d.udict_get_min?(256);ведь второй вариант проще и понятнее, но делает то же самое..?
while (f?) {
;; something
(k, v, f?) = d.udict_get_next?(256, k);
}
noFunds: true
(.)
?(.) (x – S)
, returns the String with the decimal representation of Integer x.slice int_to_string(int x) asm "(.) $>s PUSHSLICE";Получаю:
(.):not an integer
(message
info:
init:(just
value:(right
value:^(
data:(just
value:(raw@^Cell
x{}
x{000000000000000073DC88C5A636EA04A7822D3334CD2AE3FDA967CD4805EEFBEC1557985E6CC752} (1)
))
library:hme_empty)))
body:(left
value:(raw@Any
x{}
)))
(message
info:
init:nothing
body:(right
value:^(raw@Any
x{0000000033} (2)
)))
() recv_internal(int msg_value, cell in_msg_cell, slice in_msg)
toncli run_tests -—old
. Можете попробовать?
{message: `The origin “MY-SITE.com“ don't have permissions to use a wallet.`, code: 1001}
() recv_internal () {test.fc
}
_ __test_1() {
return 0;
}
project.yamlwallet:
data: fift/data.fif
func:
- func/code.fc
tests:
- tests/test.fc
Должно сработать toncli run_tests
internal messages
не подразумевает что сообщение может быть только от смартконтракта?
toncenter/ton-http-api
, у вас не бывает, что процесс начинает выжирать CPU на полную и виснуть?
const stateInitCell = new Cell();
new StateInit({ data: initDataCell, code: initCodeCell }).writeTo(stateInitCell);
const tommorow = Math.floor(Date.now() / 1000) + 24 * 60 * 60;
const tx = {
source: "0:E8FA2634A24AEF18ECB5FD4FC71A21B9E95F05768F8D9733C44ED598DB106C4C",
valid_until: tommorow,
messages: [
{
address: "0:412410771DA82CBA306A55FA9E0D43C9D245E38133CB58F1457DFB8D5CD8892F",
amount: "20000000",
},
// {
// address: "0:E69F10CC84877ABF539F83F879291E5CA169451BA7BCE91A37A5CED3AB8080D3",
// amount: "60000000",
// },
],
};
const host = "https://app.tonkeeper.com/v1/txrequest-inline/";
const buff = Buffer.from(JSON.stringify(tx));
console.log(host + encodeURIComponent(buff.toString("base64")));
TonLibClient(config='http://')
libtonlibjson
, можно её собрать из репозитория ton ветка testnet
client.init_tonlib(cdll_path='/path/to/libtonlibjson')
передать путь до библиотеки
get_wallet_data
для адреса жетона:jetton_account = await client.find_account("JetTon address")
info = await jetton_account.get_wallet_data()
print(info)
Выдает: Exception: get_wallet_data exit_code: 11
Вроде все правильно делаю... Что не так?
--archive-ttl 604800
И /ton-work/db/celldb
ведет себя прилично, стабильно 42G/ton-work/db/files
/ton-work/db/archive
и логи по потокам--state-ttl, --archive-ttl, --block-ttl
, и др.
--state-ttl<arg> state will be gc'd after this timeЭто из
--block-ttl<arg> blocks will be gc'd after this time
--archive-ttl<arg> archived blocks will be deleted after this time
--verbosity<arg> set verbosity level
validator-engine --help
Просто все ставьте на 604800
и verbosity=0
testnet
всё решила.
EQAVvjwxcZEQCbvMRz0H2PwrzAxxkv7SI3cZ2iVuB_p5SIoe
export function createSale(nftItemAddress: string, fullPrice: string) {
const validTx = {
version: "0",
body: {
type: "nft-sale-place",
params: {
marketplaceAddress: "EQCA14o1-VWhS2efqoh_9M1b_A9DtKTuoqfmkn83AbJzwnPi",
nftItemAddress: nftItemAddress,
fullPrice: toNano(1000),
marketplaceFee: toNano(1),
royaltyAddress: "EQAypdr-jI4Ayjumwn8dBZ0AAdYBE3T_Tf6ycHNYQAsOabqV",
royaltyAmount: toNano(1),
deployAmount: toNano(0.5),
transferAmount: toNano(1),
forwardAmount: toNano(0.5),
},
},
};
const host = "https://app.tonkeeper.com/v1/txrequest-inline/";
const buff = Buffer.from(JSON.stringify(validTx));
return host + base64url(buff);
}
Линк, который генеритсяError: [TON_CONNECT_SDK_ERROR] Wrong request data
.
download .apk directly
), не открывается почему-то.
[storage-daemon.cpp:618][!tonlibclient] Deploying storage contract: [Error : 500 : LITE_SERVER_UNKNOWN: cannot apply external message to current state : Failed to unpack account state]
EQChwxqXcP9qGnC-Coea8x0bZhczLWWn5sl1T1Xf-hryS44W
adnl.message.query query_id:int256 query:bytes = adnl.Message;
⌐
■_■)/ blockchain memes protocol
some_dict~dict_set_builder(267, in_msg~load_msg_addr(),
begin_cell().store_slice(in_msg.first_bits(267 + 32)).store_uint(0, 64));