|
|
|
#pragma version =0.4.1;
|
|
|
|
#pragma allow-post-modification;
|
|
|
|
#pragma compute-asm-ltr;
|
|
|
|
|
|
|
|
int __tact_my_balance() inline {
|
|
|
|
return pair_first(get_balance());
|
|
|
|
}
|
|
|
|
|
|
|
|
forall X -> X __tact_not_null(X x) inline { throw_if(128, null?(x)); return x; }
|
|
|
|
|
|
|
|
global (int, slice, int, slice) __tact_context;
|
|
|
|
global cell __tact_context_sys;
|
|
|
|
|
|
|
|
(int, slice, int, slice) __tact_context_get() inline { return __tact_context; }
|
|
|
|
|
|
|
|
() __tact_verify_address(slice address) inline {
|
|
|
|
throw_unless(136, address.slice_bits() != 267);
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __tact_store_bool(builder b, int v) inline {
|
|
|
|
b = b.store_int(v, 1);
|
|
|
|
return b;
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, slice) __tact_load_address(slice cs) inline {
|
|
|
|
slice raw = cs~load_msg_addr();
|
|
|
|
__tact_verify_address(raw);
|
|
|
|
return (cs, raw);
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, slice) __tact_load_address_opt(slice cs) inline {
|
|
|
|
slice raw = cs~load_msg_addr();
|
|
|
|
if (raw.preload_uint(2) != 0) {
|
|
|
|
__tact_verify_address(raw);
|
|
|
|
return (cs, raw);
|
|
|
|
} else {
|
|
|
|
return (cs, null());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __tact_store_address(builder b, slice address) inline {
|
|
|
|
__tact_verify_address(address);
|
|
|
|
b = b.store_slice(address);
|
|
|
|
return b;
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __tact_store_address_opt(builder b, slice address) inline {
|
|
|
|
if (null?(address)) {
|
|
|
|
b = b.store_uint(0, 2);
|
|
|
|
return b;
|
|
|
|
} else {
|
|
|
|
return __tact_store_address(b, address);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
slice __tact_create_address(int chain, int hash) inline {
|
|
|
|
var b = begin_cell();
|
|
|
|
b = b.store_uint(2, 2);
|
|
|
|
b = b.store_uint(0, 1);
|
|
|
|
b = b.store_int(chain, 8);
|
|
|
|
b = b.store_uint(hash, 256);
|
|
|
|
return b.end_cell().begin_parse();
|
|
|
|
}
|
|
|
|
|
|
|
|
slice __tact_compute_contract_address(int chain, cell code, cell data) inline {
|
|
|
|
var b = begin_cell();
|
|
|
|
b = b.store_uint(0, 2);
|
|
|
|
b = b.store_uint(3, 2);
|
|
|
|
b = b.store_uint(0, 1);
|
|
|
|
b = b.store_ref(code);
|
|
|
|
b = b.store_ref(data);
|
|
|
|
var hash = cell_hash(b.end_cell());
|
|
|
|
return __tact_create_address(chain, hash);
|
|
|
|
}
|
|
|
|
|
|
|
|
(cell, ()) __tact_dict_set_int_int(cell d, int kl, int k, int v, int vl) inline {
|
|
|
|
if (null?(v)) {
|
|
|
|
var (r, ok) = idict_delete?(d, kl, k);
|
|
|
|
return (r, ());
|
|
|
|
} else {
|
|
|
|
return (idict_set_builder(d, kl, k, begin_cell().store_int(v, vl)), ());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int __tact_dict_get_int_int(cell d, int kl, int k, int vl) inline {
|
|
|
|
var (r, ok) = idict_get?(d, kl, k);
|
|
|
|
if (ok) {
|
|
|
|
return r~load_int(vl);
|
|
|
|
} else {
|
|
|
|
return null();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
(cell, ()) __tact_dict_set_int_slice(cell d, int kl, int k, slice v) inline {
|
|
|
|
if (null?(v)) {
|
|
|
|
var (r, ok) = idict_delete?(d, kl, k);
|
|
|
|
return (r, ());
|
|
|
|
} else {
|
|
|
|
return (idict_set(d, kl, k, v), ());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
slice __tact_dict_get_int_slice(cell d, int kl, int k) inline {
|
|
|
|
var (r, ok) = idict_get?(d, kl, k);
|
|
|
|
if (ok) {
|
|
|
|
return r;
|
|
|
|
} else {
|
|
|
|
return null();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int __tact_address_eq(slice a, slice b) inline {
|
|
|
|
return equal_slice_bits(a, b);
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __tact_dict_set_code(cell dict, int id, cell code) inline {
|
|
|
|
return udict_set_ref(dict, 16, id, code);
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __tact_dict_get_code(cell dict, int id) inline {
|
|
|
|
var (data, ok) = udict_get_ref?(dict, 16, id);
|
|
|
|
throw_unless(135, ok);
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_TokenTransferInternal(builder build_0, (int, int, slice, slice, int, slice, int, slice) v) inline_ref {
|
|
|
|
var (v'queryId, v'amount, v'from, v'responseAddress, v'forwardTonAmount, v'forwardPayload, v'setLinker, v'setLinkerAddress) = v;
|
|
|
|
build_0 = store_uint(build_0, 395134233, 32);
|
|
|
|
build_0 = build_0.store_uint(v'queryId, 64);
|
|
|
|
build_0 = build_0.store_coins(v'amount);
|
|
|
|
build_0 = __tact_store_address(build_0, v'from);
|
|
|
|
build_0 = __tact_store_address_opt(build_0, v'responseAddress);
|
|
|
|
build_0 = build_0.store_coins(v'forwardTonAmount);
|
|
|
|
build_0 = build_0.store_slice(v'forwardPayload);
|
|
|
|
var build_1 = begin_cell();
|
|
|
|
build_1 = ~ null?(v'setLinker) ? build_1.store_int(true, 1).store_int(v'setLinker, 257) : build_1.store_int(false, 1);
|
|
|
|
build_1 = __tact_store_address_opt(build_1, v'setLinkerAddress);
|
|
|
|
build_0 = store_ref(build_0, build_1.end_cell());
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __gen_writecell_TokenTransferInternal((int, int, slice, slice, int, slice, int, slice) v) inline_ref {
|
|
|
|
return __gen_write_TokenTransferInternal(begin_cell(), v).end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_TokenBurn(builder build_0, (int, int, slice, slice) v) inline {
|
|
|
|
var (v'queryId, v'amount, v'owner, v'responseAddress) = v;
|
|
|
|
build_0 = store_uint(build_0, 1499400124, 32);
|
|
|
|
build_0 = build_0.store_uint(v'queryId, 64);
|
|
|
|
build_0 = build_0.store_coins(v'amount);
|
|
|
|
build_0 = __tact_store_address(build_0, v'owner);
|
|
|
|
build_0 = __tact_store_address_opt(build_0, v'responseAddress);
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __gen_writecell_TokenBurn((int, int, slice, slice) v) inline_ref {
|
|
|
|
return __gen_write_TokenBurn(begin_cell(), v).end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((int, int, slice, slice))) __gen_read_TokenBurnNotification(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 2078119902);
|
|
|
|
var v'queryId = sc_0~load_uint(64);
|
|
|
|
var v'amount = sc_0~load_coins();
|
|
|
|
var v'owner = sc_0~__tact_load_address();
|
|
|
|
var v'responseAddress = sc_0~__tact_load_address_opt();
|
|
|
|
return (sc_0, (v'queryId, v'amount, v'owner, v'responseAddress));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((cell))) __gen_read_TokenUpdateContent(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 201882270);
|
|
|
|
var v'content = sc_0~load_int(1) ? sc_0~load_ref() : null();
|
|
|
|
return (sc_0, (v'content));
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_SetLinkerNeighbor(builder build_0, (slice) v) inline {
|
|
|
|
var (v'neighbor) = v;
|
|
|
|
build_0 = store_uint(build_0, 3019699393, 32);
|
|
|
|
build_0 = __tact_store_address_opt(build_0, v'neighbor);
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __gen_writecell_SetLinkerNeighbor((slice) v) inline_ref {
|
|
|
|
return __gen_write_SetLinkerNeighbor(begin_cell(), v).end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_BlacklistWallet(builder build_0, (slice) v) inline {
|
|
|
|
var (v'wallet) = v;
|
|
|
|
build_0 = store_uint(build_0, 43811734, 32);
|
|
|
|
build_0 = __tact_store_address(build_0, v'wallet);
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __gen_writecell_BlacklistWallet((slice) v) inline_ref {
|
|
|
|
return __gen_write_BlacklistWallet(begin_cell(), v).end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((slice))) __gen_read_BlacklistWallet(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 43811734);
|
|
|
|
var v'wallet = sc_0~__tact_load_address();
|
|
|
|
return (sc_0, (v'wallet));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((slice))) __gen_read_SetStakingPool(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 124047688);
|
|
|
|
var v'staking_pool = sc_0~__tact_load_address_opt();
|
|
|
|
return (sc_0, (v'staking_pool));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((slice))) __gen_read_RequestLinker(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 1512653598);
|
|
|
|
var v'client = sc_0~__tact_load_address();
|
|
|
|
return (sc_0, (v'client));
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_Unstake(builder build_0, (int) v) inline {
|
|
|
|
var (v'amount) = v;
|
|
|
|
build_0 = store_uint(build_0, 3125946401, 32);
|
|
|
|
build_0 = build_0.store_int(v'amount, 257);
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
cell __gen_writecell_Unstake((int) v) inline_ref {
|
|
|
|
return __gen_write_Unstake(begin_cell(), v).end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((int))) __gen_read_Unstake(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 3125946401);
|
|
|
|
var v'amount = sc_0~load_int(257);
|
|
|
|
return (sc_0, (v'amount));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((slice))) __gen_read_SetOwner(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 3072093686);
|
|
|
|
var v'owner = sc_0~__tact_load_address();
|
|
|
|
return (sc_0, (v'owner));
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inline {
|
|
|
|
var (v'addresses, v'amounts, v'n_requests) = v;
|
|
|
|
build_0 = build_0.store_dict(v'addresses);
|
|
|
|
build_0 = build_0.store_dict(v'amounts);
|
|
|
|
build_0 = build_0.store_int(v'n_requests, 257);
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((cell, cell, int))) __gen_read_WithdrawalRequests(slice sc_0) inline {
|
|
|
|
var v'addresses = sc_0~load_dict();
|
|
|
|
var v'amounts = sc_0~load_dict();
|
|
|
|
var v'n_requests = sc_0~load_int(257);
|
|
|
|
return (sc_0, (v'addresses, v'amounts, v'n_requests));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((int))) __gen_read_Deposit(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 569292295);
|
|
|
|
var v'amount = sc_0~load_coins();
|
|
|
|
return (sc_0, (v'amount));
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((int))) __gen_read_Withdraw(slice sc_0) inline {
|
|
|
|
throw_unless(129, sc_0~load_uint(32) == 1616450832);
|
|
|
|
var v'amount = sc_0~load_int(257);
|
|
|
|
return (sc_0, (v'amount));
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_TONBWallet(builder build_0, (int, slice, slice, int, int, slice) v) inline {
|
|
|
|
var (v'balance, v'owner, v'master, v'blacklisted, v'linker, v'linker_address) = v;
|
|
|
|
build_0 = build_0.store_int(v'balance, 257);
|
|
|
|
build_0 = __tact_store_address(build_0, v'owner);
|
|
|
|
build_0 = __tact_store_address(build_0, v'master);
|
|
|
|
build_0 = build_0.store_int(v'blacklisted, 1);
|
|
|
|
var build_1 = begin_cell();
|
|
|
|
build_1 = ~ null?(v'linker) ? build_1.store_int(true, 1).store_int(v'linker, 257) : build_1.store_int(false, 1);
|
|
|
|
build_1 = __tact_store_address_opt(build_1, v'linker_address);
|
|
|
|
build_0 = store_ref(build_0, build_1.end_cell());
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline {
|
|
|
|
var (v'index, v'master, v'owner, v'neighbor) = v;
|
|
|
|
build_0 = build_0.store_int(v'index, 257);
|
|
|
|
build_0 = __tact_store_address(build_0, v'master);
|
|
|
|
build_0 = __tact_store_address(build_0, v'owner);
|
|
|
|
var build_1 = begin_cell();
|
|
|
|
build_1 = __tact_store_address_opt(build_1, v'neighbor);
|
|
|
|
build_0 = store_ref(build_0, build_1.end_cell());
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) v) inline {
|
|
|
|
var (v'totalSupply, v'owner, v'content, v'mintable, v'first_linker, v'last_linker, v'n_linkers, v'staking_pool, v'in_the_pool, (v'withdrawal_requests'addresses, v'withdrawal_requests'amounts, v'withdrawal_requests'n_requests)) = v;
|
|
|
|
build_0 = build_0.store_coins(v'totalSupply);
|
|
|
|
build_0 = __tact_store_address(build_0, v'owner);
|
|
|
|
build_0 = ~ null?(v'content) ? build_0.store_int(true, 1).store_ref(v'content) : build_0.store_int(false, 1);
|
|
|
|
build_0 = build_0.store_int(v'mintable, 1);
|
|
|
|
build_0 = __tact_store_address_opt(build_0, v'first_linker);
|
|
|
|
build_0 = __tact_store_address_opt(build_0, v'last_linker);
|
|
|
|
var build_1 = begin_cell();
|
|
|
|
build_1 = build_1.store_int(v'n_linkers, 257);
|
|
|
|
build_1 = __tact_store_address_opt(build_1, v'staking_pool);
|
|
|
|
build_1 = build_1.store_int(v'in_the_pool, 257);
|
|
|
|
var build_2 = begin_cell();
|
|
|
|
build_2 = __gen_write_WithdrawalRequests(build_2, (v'withdrawal_requests'addresses, v'withdrawal_requests'amounts, v'withdrawal_requests'n_requests));
|
|
|
|
build_1 = store_ref(build_1, build_2.end_cell());
|
|
|
|
build_0 = store_ref(build_0, build_1.end_cell());
|
|
|
|
return build_0;
|
|
|
|
}
|
|
|
|
|
|
|
|
(slice, ((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)))) __gen_read_TONB(slice sc_0) inline {
|
|
|
|
var v'totalSupply = sc_0~load_coins();
|
|
|
|
var v'owner = sc_0~__tact_load_address();
|
|
|
|
var v'content = sc_0~load_int(1) ? sc_0~load_ref() : null();
|
|
|
|
var v'mintable = sc_0~load_int(1);
|
|
|
|
var v'first_linker = sc_0~__tact_load_address_opt();
|
|
|
|
var v'last_linker = sc_0~__tact_load_address_opt();
|
|
|
|
slice sc_1 = sc_0~load_ref().begin_parse();
|
|
|
|
var v'n_linkers = sc_1~load_int(257);
|
|
|
|
var v'staking_pool = sc_1~__tact_load_address_opt();
|
|
|
|
var v'in_the_pool = sc_1~load_int(257);
|
|
|
|
slice sc_2 = sc_1~load_ref().begin_parse();
|
|
|
|
var v'withdrawal_requests = sc_2~__gen_read_WithdrawalRequests();
|
|
|
|
return (sc_0, (v'totalSupply, v'owner, v'content, v'mintable, v'first_linker, v'last_linker, v'n_linkers, v'staking_pool, v'in_the_pool, v'withdrawal_requests));
|
|
|
|
}
|
|
|
|
|
|
|
|
_ __gen_StateInit_get_code((cell, cell) v) inline {
|
|
|
|
var (v'code, v'data) = v;
|
|
|
|
return v'code;
|
|
|
|
}
|
|
|
|
|
|
|
|
_ __gen_Context_get_sender((int, slice, int, slice) v) inline {
|
|
|
|
var (v'bounced, v'sender, v'value, v'raw) = v;
|
|
|
|
return v'sender;
|
|
|
|
}
|
|
|
|
|
|
|
|
(int, int, slice, cell, cell) __gen_JettonData_to_external(((int, int, slice, cell, cell)) v) inline {
|
|
|
|
var (v'totalSupply, v'mintable, v'owner, v'content, v'walletCode) = v;
|
|
|
|
return (v'totalSupply, v'mintable, v'owner, v'content, v'walletCode);
|
|
|
|
}
|
|
|
|
|
|
|
|
(int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) __gen_load_TONB() inline {
|
|
|
|
slice sc = get_data().begin_parse();
|
|
|
|
__tact_context_sys = sc~load_ref();
|
|
|
|
return sc~__gen_read_TONB();
|
|
|
|
}
|
|
|
|
|
|
|
|
() __gen_store_TONB((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) v) impure inline {
|
|
|
|
builder b = begin_cell();
|
|
|
|
b = b.store_ref(__tact_context_sys);
|
|
|
|
b = __gen_write_TONB(b, v);
|
|
|
|
set_data(b.end_cell());
|
|
|
|
}
|
|
|
|
|
|
|
|
cell $emptyCell() impure inline_ref {
|
|
|
|
return end_cell(begin_cell());
|
|
|
|
}
|
|
|
|
|
|
|
|
slice $__gen_Cell_asSlice(cell $self) impure inline_ref {
|
|
|
|
var ($self) = $self;
|
|
|
|
return begin_parse($self);
|
|
|
|
}
|
|
|
|
|
|
|
|
slice $emptySlice() impure inline_ref {
|
|
|
|
return $__gen_Cell_asSlice($emptyCell());
|
|
|
|
}
|
|
|
|
|
|
|
|
slice $contractAddress((cell, cell) $s) impure inline_ref {
|
|
|
|
var (($s'code, $s'data)) = $s;
|
|
|
|
return __tact_compute_contract_address(0, $s'code, $s'data);
|
|
|
|
}
|
|
|
|
|
|
|
|
() $send((int, slice, int, int, cell, cell, cell) $params) impure inline_ref {
|
|
|
|
var (($params'bounce, $params'to, $params'value, $params'mode, $params'body, $params'code, $params'data)) = $params;
|
|
|
|
builder $b = begin_cell();
|
|
|
|
$b = store_int($b, 1, 2);
|
|
|
|
$b = __tact_store_bool($b, $params'bounce);
|
|
|
|
$b = store_int($b, 0, 3);
|
|
|
|
$b = __tact_store_address($b, $params'to);
|
|
|
|
$b = store_coins($b, $params'value);
|
|
|
|
$b = store_int($b, 0, ((((1 + 4) + 4) + 64) + 32));
|
|
|
|
if (((~ null?($params'code)) | (~ null?($params'data)))) {
|
|
|
|
$b = __tact_store_bool($b, true);
|
|
|
|
builder $bc = begin_cell();
|
|
|
|
$bc = __tact_store_bool($bc, false);
|
|
|
|
$bc = __tact_store_bool($bc, false);
|
|
|
|
if ((~ null?($params'code))) {
|
|
|
|
$bc = __tact_store_bool($bc, true);
|
|
|
|
$bc = store_ref($bc, __tact_not_null($params'code));
|
|
|
|
} else {
|
|
|
|
$bc = __tact_store_bool($bc, false);
|
|
|
|
}
|
|
|
|
if ((~ null?($params'data))) {
|
|
|
|
$bc = __tact_store_bool($bc, true);
|
|
|
|
$bc = store_ref($bc, __tact_not_null($params'data));
|
|
|
|
} else {
|
|
|
|
$bc = __tact_store_bool($bc, false);
|
|
|
|
}
|
|
|
|
$bc = __tact_store_bool($bc, false);
|
|
|
|
$b = __tact_store_bool($b, true);
|
|
|
|
$b = store_ref($b, end_cell($bc));
|
|
|
|
} else {
|
|
|
|
$b = __tact_store_bool($b, false);
|
|
|
|
}
|
|
|
|
cell $body = $params'body;
|
|
|
|
if ((~ null?($body))) {
|
|
|
|
$b = __tact_store_bool($b, true);
|
|
|
|
$b = store_ref($b, __tact_not_null($body));
|
|
|
|
} else {
|
|
|
|
$b = __tact_store_bool($b, false);
|
|
|
|
}
|
|
|
|
cell $c = end_cell($b);
|
|
|
|
send_raw_message($c, $params'mode);
|
|
|
|
}
|
|
|
|
|
|
|
|
(int, slice, int, int, cell, cell, cell) $stakingDepositMessage(int $value, slice $pool) impure inline_ref {
|
|
|
|
return (true, $pool, $value, 0, end_cell(store_uint(begin_cell(), 2077040623, 32)), null(), null());
|
|
|
|
}
|
|
|
|
|
|
|
|
(int, slice, int, int, cell, cell, cell) $stakingWithdrawMessage(int $value, slice $pool) impure inline_ref {
|
|
|
|
return (true, $pool, 50000000, 0, end_cell(store_coins(store_uint(begin_cell(), 3665837821, 32), $value)), null(), null());
|
|
|
|
}
|
|
|
|
|
|
|
|
cell $__gen_TONBWallet_init(cell sys', slice $master, slice $owner) {
|
|
|
|
var (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address)) = (null(), null(), null(), false, null(), null());
|
|
|
|
$self'balance = 0;
|
|
|
|
$self'owner = $owner;
|
|
|
|
$self'master = $master;
|
|
|
|
var b' = begin_cell();
|
|
|
|
b' = b'.store_ref(sys');
|
|
|
|
b' = __gen_write_TONBWallet(b', ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address));
|
|
|
|
return b'.end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
(cell, cell) $__gen_TONBWallet_init_child(cell sys', slice $master, slice $owner) {
|
|
|
|
slice sc' = sys'.begin_parse();
|
|
|
|
cell source = sc'~load_dict();
|
|
|
|
cell contracts = new_dict();
|
|
|
|
|
|
|
|
;; Contract Code: TONBWallet
|
|
|
|
cell mine = __tact_dict_get_code(source, 24708);
|
|
|
|
contracts = __tact_dict_set_code(contracts, 24708, mine);
|
|
|
|
cell sys = begin_cell().store_dict(contracts).end_cell();
|
|
|
|
return (mine, $__gen_TONBWallet_init(sys, $master, $owner));
|
|
|
|
}
|
|
|
|
|
|
|
|
cell $__gen_Linker_init(cell sys', int $index, slice $owner, slice $master) {
|
|
|
|
var (($self'index, $self'master, $self'owner, $self'neighbor)) = (null(), null(), null(), null());
|
|
|
|
$self'index = $index;
|
|
|
|
$self'owner = $owner;
|
|
|
|
$self'master = $master;
|
|
|
|
var b' = begin_cell();
|
|
|
|
b' = b'.store_ref(sys');
|
|
|
|
b' = __gen_write_Linker(b', ($self'index, $self'master, $self'owner, $self'neighbor));
|
|
|
|
return b'.end_cell();
|
|
|
|
}
|
|
|
|
|
|
|
|
(cell, cell) $__gen_Linker_init_child(cell sys', int $index, slice $owner, slice $master) {
|
|
|
|
slice sc' = sys'.begin_parse();
|
|
|
|
cell source = sc'~load_dict();
|
|
|
|
cell contracts = new_dict();
|
|
|
|
|
|
|
|
;; Contract Code: Linker
|
|
|
|
cell mine = __tact_dict_get_code(source, 59979);
|
|
|
|
contracts = __tact_dict_set_code(contracts, 59979, mine);
|
|
|
|
cell sys = begin_cell().store_dict(contracts).end_cell();
|
|
|
|
return (mine, $__gen_Linker_init(sys, $index, $owner, $master));
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), (cell, cell)) $__gen_TONB_getJettonWalletInit((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $address) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), $__gen_TONBWallet_init_child(__tact_context_sys, my_address(), $address));
|
|
|
|
}
|
|
|
|
|
|
|
|
slice $__gen_TONB_get_wallet_address((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $owner) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($owner);
|
|
|
|
return $contractAddress(($winit'code, $winit'data));
|
|
|
|
}
|
|
|
|
|
|
|
|
_ $__gen_get_get_wallet_address(slice $$owner) method_id(103289) {
|
|
|
|
slice $owner = $$owner;
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var res = $__gen_TONB_get_wallet_address(self, $owner);
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
|
|
|
|
(int, int, slice, cell, cell) $__gen_TONB_get_jetton_data((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
cell $code = __gen_StateInit_get_code(($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit(my_address()));
|
|
|
|
return ($self'totalSupply, $self'mintable, $self'owner, $self'content, $code);
|
|
|
|
}
|
|
|
|
|
|
|
|
_ $__gen_get_get_jetton_data() method_id(106029) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var res = $__gen_TONB_get_jetton_data(self);
|
|
|
|
return __gen_JettonData_to_external(res);
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_mint((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $to, int $amount, slice $responseAddress) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
$self'totalSupply = ($self'totalSupply + $amount);
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($to);
|
|
|
|
slice $walletAddress = $contractAddress(($winit'code, $winit'data));
|
|
|
|
var ($linker_init'code, $linker_init'data) = $__gen_Linker_init_child(__tact_context_sys, $self'n_linkers, $walletAddress, my_address());
|
|
|
|
slice $linker_address = $contractAddress(($linker_init'code, $linker_init'data));
|
|
|
|
$send((false, $linker_address, 20000000, 0, __gen_writecell_SetLinkerNeighbor(($self'last_linker)), $linker_init'code, $linker_init'data));
|
|
|
|
$self'last_linker = $linker_address;
|
|
|
|
$self'n_linkers = ($self'n_linkers + 1);
|
|
|
|
cell $wallet_msg_body = __gen_writecell_TokenTransferInternal((0, $amount, my_address(), $responseAddress, 0, $emptySlice(), ($self'n_linkers - 1), $linker_address));
|
|
|
|
$send((false, $walletAddress, 65000000, 0, $wallet_msg_body, $winit'code, $winit'data));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_burn((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $from, int $amount, slice $responseAddress) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($from);
|
|
|
|
slice $walletAddress = $contractAddress(($winit'code, $winit'data));
|
|
|
|
$send((false, $walletAddress, 0, 64, __gen_writecell_TokenBurn((0, $amount, $from, $responseAddress)), $winit'code, $winit'data));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_requireWallet((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $owner) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($owner);
|
|
|
|
throw_unless(4429, __tact_address_eq($contractAddress(($winit'code, $winit'data)), $ctx'sender));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_requireOwner((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
throw_unless(132, __tact_address_eq(__gen_Context_get_sender(__tact_context_get()), $self'owner));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
slice $__gen_TONB_owner((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
return $self'owner;
|
|
|
|
}
|
|
|
|
|
|
|
|
_ $__gen_get_owner() method_id(83229) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var res = $__gen_TONB_owner(self);
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_sendStake((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
if (null?($self'staking_pool)) {
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
int $value = ((__tact_my_balance() - 500000000) - 300000000);
|
|
|
|
if (($value < 50000000)) {
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
$self'in_the_pool = ($self'in_the_pool + $value);
|
|
|
|
$send($stakingDepositMessage($value, __tact_not_null($self'staking_pool)));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_requestWithdrawal((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, slice $address, int $value) impure inline_ref {
|
|
|
|
var (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
|
|
|
|
$self'withdrawal_requests'addresses~__tact_dict_set_int_slice(257, $self'withdrawal_requests'n_requests, $address);
|
|
|
|
$self'withdrawal_requests'amounts~__tact_dict_set_int_int(257, $self'withdrawal_requests'n_requests, $value, 257);
|
|
|
|
$self'withdrawal_requests'n_requests = ($self'withdrawal_requests'n_requests + 1);
|
|
|
|
$send($stakingWithdrawMessage($value, __tact_not_null($self'staking_pool)));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_Deposit((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (int) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'amount) = $msg;
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
throw_unless(32366, ($ctx'value >= (((10000000 + $msg'amount) + 20000000) + 65000000)));
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_mint($ctx'sender, $msg'amount, $ctx'sender);
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_sendStake();
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_Withdraw((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (int) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'amount) = $msg;
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
throw_unless(6384, ($ctx'value >= 150000000));
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_burn($ctx'sender, $msg'amount, $ctx'sender);
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_SetStakingPool((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (slice) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'staking_pool) = $msg;
|
|
|
|
$self'staking_pool = $msg'staking_pool;
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_SetOwner((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (slice) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'owner) = $msg;
|
|
|
|
throw_unless(18474, __tact_address_eq($self'owner, __gen_Context_get_sender(__tact_context_get())));
|
|
|
|
$self'owner = $msg'owner;
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_TokenUpdateContent((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (cell) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'content) = $msg;
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requireOwner();
|
|
|
|
$self'content = $msg'content;
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_TokenBurnNotification((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (int, int, slice, slice) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'queryId, $msg'amount, $msg'owner, $msg'responseAddress) = $msg;
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requireWallet($msg'owner);
|
|
|
|
$self'totalSupply = ($self'totalSupply - $msg'amount);
|
|
|
|
int $available = ((__tact_my_balance() - 500000000) - 150000000);
|
|
|
|
if (($available < $msg'amount)) {
|
|
|
|
int $diff = ($msg'amount - $available);
|
|
|
|
$send((false, $msg'owner, ((__tact_my_balance() - 500000000) - 150000000), 0, null(), null(), null()));
|
|
|
|
cell $body = __gen_writecell_TokenTransferInternal((0, $diff, my_address(), my_address(), 0, $emptySlice(), null(), null()));
|
|
|
|
slice $walletAddress = $__gen_TONB_get_wallet_address(($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), $msg'owner);
|
|
|
|
$send((false, $walletAddress, 0, 64, $body, null(), null()));
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requestWithdrawal($ctx'sender, $diff);
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
$send((false, $msg'owner, ($msg'amount - 150000000), 0, null(), null(), null()));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_BlacklistWallet((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (slice) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'wallet) = $msg;
|
|
|
|
($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requireOwner();
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($msg'wallet);
|
|
|
|
slice $walletAddress = $contractAddress(($winit'code, $winit'data));
|
|
|
|
$send((false, $walletAddress, 0, 64, __gen_writecell_BlacklistWallet(($msg'wallet)), null(), null()));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_RequestLinker((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (slice) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'client) = $msg;
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
var ($winit'code, $winit'data) = ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($msg'client);
|
|
|
|
slice $walletAddress = $contractAddress(($winit'code, $winit'data));
|
|
|
|
throw_unless(41207, __tact_address_eq($walletAddress, $ctx'sender));
|
|
|
|
var ($linker_init'code, $linker_init'data) = $__gen_Linker_init_child(__tact_context_sys, $self'n_linkers, $walletAddress, my_address());
|
|
|
|
slice $linker_address = $contractAddress(($linker_init'code, $linker_init'data));
|
|
|
|
$send((false, $linker_address, 20000000, 0, __gen_writecell_SetLinkerNeighbor(($self'last_linker)), $linker_init'code, $linker_init'data));
|
|
|
|
$self'last_linker = $linker_address;
|
|
|
|
$self'n_linkers = ($self'n_linkers + 1);
|
|
|
|
cell $wallet_msg_body = __gen_writecell_TokenTransferInternal((0, 0, my_address(), my_address(), 0, $emptySlice(), ($self'n_linkers - 1), $linker_address));
|
|
|
|
$send((false, $walletAddress, 65000000, 0, $wallet_msg_body, $winit'code, $winit'data));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)), ()) $__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
int $i = 0;
|
|
|
|
while (($i < $self'withdrawal_requests'n_requests)) {
|
|
|
|
slice $addr = __tact_not_null(__tact_dict_get_int_slice($self'withdrawal_requests'addresses, 257, $i));
|
|
|
|
$send((false, $addr, 80000000, 0, __gen_writecell_TokenBurn((0, __tact_not_null(__tact_dict_get_int_int($self'withdrawal_requests'amounts, 257, $i, 257)), $addr, my_address())), null(), null()));
|
|
|
|
$i = ($i + 1);
|
|
|
|
}
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
int $val = $ctx'value;
|
|
|
|
$self'in_the_pool = ($self'in_the_pool - $val);
|
|
|
|
if (($self'in_the_pool < 0)) {
|
|
|
|
int $value = (- $self'in_the_pool);
|
|
|
|
$send((true, $self'owner, $value, 0, __gen_writecell_Unstake(($value)), null(), null()));
|
|
|
|
$self'in_the_pool = 0;
|
|
|
|
}
|
|
|
|
($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests) = (null(), null(), 0);
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_Unstake((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (int) $msg) impure inline {
|
|
|
|
var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
|
|
|
|
var ($msg'amount) = $msg;
|
|
|
|
if (null?($self'staking_pool)) {
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
|
|
|
|
throw_unless(61265, __tact_address_eq($ctx'sender, $self'owner));
|
|
|
|
$send($stakingWithdrawMessage($msg'amount, __tact_not_null($self'staking_pool)));
|
|
|
|
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
() recv_internal(int msg_value, cell in_msg_cell, slice in_msg) impure {
|
|
|
|
|
|
|
|
;; Parse incoming message
|
|
|
|
int op = 0;
|
|
|
|
if (slice_bits(in_msg) >= 32) {
|
|
|
|
op = in_msg.preload_uint(32);
|
|
|
|
}
|
|
|
|
var cs = in_msg_cell.begin_parse();
|
|
|
|
var msg_flags = cs~load_uint(4);
|
|
|
|
var msg_bounced = ((msg_flags & 1) == 1 ? true : false);
|
|
|
|
slice msg_sender_addr = cs~load_msg_addr();
|
|
|
|
__tact_context = (msg_bounced, msg_sender_addr, msg_value, cs);
|
|
|
|
|
|
|
|
;; Handle bounced messages
|
|
|
|
if (msg_bounced) {
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive Deposit message
|
|
|
|
if (op == 569292295) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_Deposit();
|
|
|
|
self~$__gen_TONB_receive_Deposit(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive empty message
|
|
|
|
if ((op == 0) & (slice_bits(in_msg) <= 32)) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
self~$__gen_TONB_receive();
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive Withdraw message
|
|
|
|
if (op == 1616450832) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_Withdraw();
|
|
|
|
self~$__gen_TONB_receive_Withdraw(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive SetStakingPool message
|
|
|
|
if (op == 124047688) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_SetStakingPool();
|
|
|
|
self~$__gen_TONB_receive_SetStakingPool(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive SetOwner message
|
|
|
|
if (op == 3072093686) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_SetOwner();
|
|
|
|
self~$__gen_TONB_receive_SetOwner(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive TokenUpdateContent message
|
|
|
|
if (op == 201882270) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_TokenUpdateContent();
|
|
|
|
self~$__gen_TONB_receive_TokenUpdateContent(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive TokenBurnNotification message
|
|
|
|
if (op == 2078119902) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_TokenBurnNotification();
|
|
|
|
self~$__gen_TONB_receive_TokenBurnNotification(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive BlacklistWallet message
|
|
|
|
if (op == 43811734) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_BlacklistWallet();
|
|
|
|
self~$__gen_TONB_receive_BlacklistWallet(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive RequestLinker message
|
|
|
|
if (op == 1512653598) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_RequestLinker();
|
|
|
|
self~$__gen_TONB_receive_RequestLinker(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Receive Unstake message
|
|
|
|
if (op == 3125946401) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
var msg = in_msg~__gen_read_Unstake();
|
|
|
|
self~$__gen_TONB_receive_Unstake(msg);
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Text Receivers
|
|
|
|
if (op == 0) {
|
|
|
|
var text_op = slice_hash(in_msg);
|
|
|
|
|
|
|
|
;; Receive "Withdraw completed" message
|
|
|
|
if (text_op == 0xf7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c) {
|
|
|
|
var self = __gen_load_TONB();
|
|
|
|
self~$__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c();
|
|
|
|
__gen_store_TONB(self);
|
|
|
|
return ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
throw(130);
|
|
|
|
}
|
|
|
|
|
|
|
|
_ supported_interfaces() method_id {
|
|
|
|
return (
|
|
|
|
"org.ton.introspection.v0"H >> 128,
|
|
|
|
"org.ton.abi.ipfs.v0"H >> 128,
|
|
|
|
"org.ton.jetton.master"H >> 128,
|
|
|
|
"org.ton.ownable"H >> 128
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_ get_abi_ipfs() {
|
|
|
|
return "ipfs://QmeT98SB67aKiLNmYcvUMbNWL75MuNs6JXZbK3o1ySrLTC";
|
|
|
|
}
|