Browse Source

Fixes

master
Lev 2 years ago
parent
commit
29537d320b
  1. 6
      package.json
  2. 3
      sources/constants.tact
  3. 5
      sources/jetton.tact
  4. 15
      sources/jetton_trait.tact
  5. BIN
      sources/output/jetton_Linker.code.boc
  6. 28
      sources/output/jetton_Linker.code.fc
  7. 40
      sources/output/jetton_Linker.code.fif
  8. 193
      sources/output/jetton_Linker.code.rev.fif
  9. BIN
      sources/output/jetton_Linker.init.boc
  10. 6
      sources/output/jetton_Linker.init.fc
  11. 2
      sources/output/jetton_Linker.init.fif
  12. 2
      sources/output/jetton_Linker.init.rev.fif
  13. 2
      sources/output/jetton_Linker.md
  14. 2
      sources/output/jetton_Linker.pkg
  15. 6
      sources/output/jetton_Linker.ts
  16. 2
      sources/output/jetton_TONB.abi
  17. BIN
      sources/output/jetton_TONB.code.boc
  18. 123
      sources/output/jetton_TONB.code.fc
  19. 248
      sources/output/jetton_TONB.code.fif
  20. 3169
      sources/output/jetton_TONB.code.rev.fif
  21. BIN
      sources/output/jetton_TONB.init.boc
  22. 9
      sources/output/jetton_TONB.init.fc
  23. 21
      sources/output/jetton_TONB.init.fif
  24. 21
      sources/output/jetton_TONB.init.rev.fif
  25. 2
      sources/output/jetton_TONB.md
  26. 2
      sources/output/jetton_TONB.pkg
  27. 11
      sources/output/jetton_TONB.ts
  28. BIN
      sources/output/jetton_TONBWallet.code.boc
  29. 52
      sources/output/jetton_TONBWallet.code.fc
  30. 121
      sources/output/jetton_TONBWallet.code.fif
  31. 1994
      sources/output/jetton_TONBWallet.code.rev.fif
  32. BIN
      sources/output/jetton_TONBWallet.init.boc
  33. 6
      sources/output/jetton_TONBWallet.init.fc
  34. 2
      sources/output/jetton_TONBWallet.init.fif
  35. 2
      sources/output/jetton_TONBWallet.init.rev.fif
  36. 2
      sources/output/jetton_TONBWallet.md
  37. 2
      sources/output/jetton_TONBWallet.pkg
  38. 6
      sources/output/jetton_TONBWallet.ts
  39. 9
      sources/staking.tact
  40. 20
      sources/tests/__snapshots__/jetton.spec.ts.snap
  41. 20
      sources/utils/config.ts
  42. 29
      sources/utils/interactions.ts
  43. 2
      sources/utils/rmlogs.sh
  44. 20
      sources/wallet.tact
  45. 35
      yarn.lock

6
package.json

@ -9,7 +9,8 @@
"build": "tact --config tact.config.json && sources/utils/rmlogs.sh",
"test": "jest",
"btest": "yarn build && yarn test -u",
"deploy": "ts-node sources/jetton.deploy.ts"
"deploy": "ts-node sources/jetton.deploy.ts",
"cli": "node --no-warnings --loader ts-node/esm sources/cli.js"
},
"dependencies": {
"@aws-crypto/sha256-js": "^3.0.0",
@ -23,13 +24,14 @@
"jest": "^29.3.1",
"prando": "^6.0.1",
"qs": "^6.11.0",
"subcommand": "^2.1.1",
"ton": "^13.3.0",
"ton-contract-executor": "^0.6.0",
"ton-core": "^0.46.0",
"ton-crypto": "^3.2.0",
"ton-emulator": "^1.2.0",
"ton-nodejs": "^1.4.3",
"ton-tact": "^0.8.11",
"ton-tact": "^0.9.2",
"ts-jest": "^29.0.3",
"ts-node": "^10.9.1",
"typescript": "^4.9.4"

3
sources/constants.tact

@ -3,5 +3,6 @@ const gas_consumption: Int = ton("0.01");
const withdraw_gas_consumption: Int = ton("0.1");
const deposit_gas_consumption: Int = ton("0.01"); // Gas consumption during processing
const linker_credit: Int = ton("0.02"); // TON to send to the linker for the fees
const wallet_credit: Int = ton("0.05"); // TON to send to the wallet for the fees
const wallet_credit: Int = ton("0.065"); // TON to send to the wallet for the fees
const tonb_floor: Int = ton("0.1"); // Minimum amount of TON to keep on TONB
const transfer_gas_consumption: Int = ton("0.05"); // Gas consumption during transfer processing

5
sources/jetton.tact

@ -33,6 +33,10 @@ contract TONB with TONBTrait {
self.owner = owner;
self.mintable = true;
self.content = content;
self.withdrawal_requests = WithdrawalRequests {
addresses: emptyMap(),
amounts: emptyMap()
};
}
receive(msg: Deposit) {
@ -49,4 +53,5 @@ contract TONB with TONBTrait {
require(ctx.value >= withdraw_gas_consumption, "not enough money for withdraw");
self.burn(ctx.sender, msg.amount, ctx.sender);
}
}

15
sources/jetton_trait.tact

@ -83,6 +83,21 @@ trait TONBTrait with Ownable, StakingTrait {
});
}
receive(msg: BlacklistWallet) {
// Allow blacklisting only by owner
self.requireOwner();
// Blacklist wallet
let winit: StateInit = self.getJettonWalletInit(msg.wallet);
let walletAddress: Address = contractAddress(winit);
send(SendParameters{
to: walletAddress,
value: 0,
mode: SendRemainingValue,
bounce: false,
body: msg.toCell()
});
}
//
// Get Methods

BIN
sources/output/jetton_Linker.code.boc

Binary file not shown.

28
sources/output/jetton_Linker.code.fc

@ -1,4 +1,8 @@
forall X -> X __tact_not_null(X x) { throw_if(128, null?(x)); return x; }
#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
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;
@ -49,19 +53,19 @@ int __tact_address_eq(slice a, slice b) inline {
return equal_slice_bits(a, b);
}
(slice, ((slice))) __gen_read_SetLinkerNeighbor(slice sc_0) inline_ref {
(slice, ((slice))) __gen_read_SetLinkerNeighbor(slice sc_0) inline {
throw_unless(129, sc_0~load_uint(32) == 3019699393);
var v'neighbor = sc_0~__tact_load_address_opt();
return (sc_0, (v'neighbor));
}
(slice, ((cell))) __gen_read_ForwardToWallet(slice sc_0) inline_ref {
(slice, ((cell))) __gen_read_ForwardToWallet(slice sc_0) inline {
throw_unless(129, sc_0~load_uint(32) == 1562223291);
var v'body = sc_0~load_ref();
return (sc_0, (v'body));
}
builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline_ref {
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);
@ -72,7 +76,7 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline
return build_0;
}
(slice, ((int, slice, slice, slice))) __gen_read_Linker(slice sc_0) inline_ref {
(slice, ((int, slice, slice, slice))) __gen_read_Linker(slice sc_0) inline {
var v'index = sc_0~load_int(257);
var v'master = sc_0~__tact_load_address();
var v'owner = sc_0~__tact_load_address();
@ -81,20 +85,20 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline
return (sc_0, (v'index, v'master, v'owner, v'neighbor));
}
(int, slice, slice, slice) __gen_load_Linker() inline_ref {
(int, slice, slice, slice) __gen_load_Linker() inline {
slice sc = get_data().begin_parse();
__tact_context_sys = sc~load_ref();
return sc~__gen_read_Linker();
}
() __gen_store_Linker((int, slice, slice, slice) v) impure inline_ref {
() __gen_store_Linker((int, slice, slice, slice) v) impure inline {
builder b = begin_cell();
b = b.store_ref(__tact_context_sys);
b = __gen_write_Linker(b, v);
set_data(b.end_cell());
}
() $send((int, slice, int, int, cell, cell, cell) $params) impure {
() $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);
@ -137,7 +141,7 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline
send_raw_message($c, $params'mode);
}
slice $__gen_Linker_owner((int, slice, slice, slice) $self) impure {
slice $__gen_Linker_owner((int, slice, slice, slice) $self) impure inline_ref {
var (($self'index, $self'master, $self'owner, $self'neighbor)) = $self;
return $self'owner;
}
@ -148,7 +152,7 @@ _ $__gen_get_owner() method_id(83229) {
return res;
}
slice $__gen_Linker_master((int, slice, slice, slice) $self) impure {
slice $__gen_Linker_master((int, slice, slice, slice) $self) impure inline_ref {
var (($self'index, $self'master, $self'owner, $self'neighbor)) = $self;
return $self'master;
}
@ -159,7 +163,7 @@ _ $__gen_get_master() method_id(120253) {
return res;
}
(((int, slice, slice, slice)), ()) $__gen_Linker_receive_SetLinkerNeighbor((int, slice, slice, slice) $self, (slice) $msg) impure {
(((int, slice, slice, slice)), ()) $__gen_Linker_receive_SetLinkerNeighbor((int, slice, slice, slice) $self, (slice) $msg) impure inline {
var ($self'index, $self'master, $self'owner, $self'neighbor) = $self;
var ($msg'neighbor) = $msg;
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
@ -168,7 +172,7 @@ _ $__gen_get_master() method_id(120253) {
return (($self'index, $self'master, $self'owner, $self'neighbor), ());
}
(((int, slice, slice, slice)), ()) $__gen_Linker_receive_ForwardToWallet((int, slice, slice, slice) $self, (cell) $msg) impure {
(((int, slice, slice, slice)), ()) $__gen_Linker_receive_ForwardToWallet((int, slice, slice, slice) $self, (cell) $msg) impure inline {
var ($self'index, $self'master, $self'owner, $self'neighbor) = $self;
var ($msg'body) = $msg;
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();

40
sources/output/jetton_Linker.code.fif

@ -26,7 +26,7 @@ PROGRAM{
DECLPROC get_abi_ipfs
DECLGLOBVAR __tact_context
DECLGLOBVAR __tact_context_sys
__tact_not_null PROC:<{
__tact_not_null PROCINLINE:<{
DUP
ISNULL
128 THROWIF
@ -79,7 +79,7 @@ PROGRAM{
__tact_address_eq PROCINLINE:<{
SDEQ
}>
__gen_read_SetLinkerNeighbor PROCREF:<{
__gen_read_SetLinkerNeighbor PROCINLINE:<{
32 LDU
SWAP
3019699393 PUSHINT
@ -87,7 +87,7 @@ PROGRAM{
129 THROWIFNOT
__tact_load_address_opt INLINECALLDICT
}>
__gen_read_ForwardToWallet PROCREF:<{
__gen_read_ForwardToWallet PROCINLINE:<{
32 LDU
SWAP
1562223291 PUSHINT
@ -96,7 +96,7 @@ PROGRAM{
LDREF
SWAP
}>
__gen_write_Linker PROCREF:<{
__gen_write_Linker PROCINLINE:<{
s3 s4 XCHG2
257 PUSHINT
STIX
@ -111,7 +111,7 @@ PROGRAM{
SWAP
STREF
}>
__gen_read_Linker PROCREF:<{
__gen_read_Linker PROCINLINE:<{
257 PUSHINT
LDIX
__tact_load_address INLINECALLDICT
@ -126,7 +126,7 @@ PROGRAM{
s1 s4 XCHG
s3 s3 s0 XCHG3
}>
__gen_load_Linker PROCREF:<{
__gen_load_Linker PROCINLINE:<{
c4 PUSH
CTOS
LDREF
@ -135,7 +135,7 @@ PROGRAM{
__gen_read_Linker INLINECALLDICT
1 4 BLKDROP2
}>
__gen_store_Linker PROCREF:<{
__gen_store_Linker PROCINLINE:<{
NEWC
__tact_context_sys GETGLOB
SWAP
@ -145,7 +145,7 @@ PROGRAM{
ENDC
c4 POP
}>
$send PROC:<{
$send PROCREF:<{
NEWC
1 PUSHINT
SWAP
@ -184,7 +184,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -200,7 +200,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -232,7 +232,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
SWAP
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
SWAP
STREF
}>ELSE<{
@ -244,23 +244,23 @@ PROGRAM{
SWAP
SENDRAWMSG
}>
$__gen_Linker_owner PROC:<{
$__gen_Linker_owner PROCREF:<{
s1 s3 XCHG
3 BLKDROP
}>
$__gen_get_owner PROC:<{
__gen_load_Linker INLINECALLDICT
$__gen_Linker_owner CALLDICT
$__gen_Linker_owner INLINECALLDICT
}>
$__gen_Linker_master PROC:<{
$__gen_Linker_master PROCREF:<{
s2 s3 XCHG
3 BLKDROP
}>
$__gen_get_master PROC:<{
__gen_load_Linker INLINECALLDICT
$__gen_Linker_master CALLDICT
$__gen_Linker_master INLINECALLDICT
}>
$__gen_Linker_receive_SetLinkerNeighbor PROC:<{
$__gen_Linker_receive_SetLinkerNeighbor PROCINLINE:<{
NIP
__tact_context_get INLINECALLDICT
2DROP
@ -270,7 +270,7 @@ PROGRAM{
__tact_address_eq INLINECALLDICT
THROWANYIFNOT
}>
$__gen_Linker_receive_ForwardToWallet PROC:<{
$__gen_Linker_receive_ForwardToWallet PROCINLINE:<{
__tact_context_get INLINECALLDICT
2DROP
4429 PUSHINT
@ -286,7 +286,7 @@ PROGRAM{
s0 s3 XCHG
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
}>
recv_internal PROC:<{
0 PUSHINT
@ -331,7 +331,7 @@ PROGRAM{
NIP
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_Linker_receive_SetLinkerNeighbor CALLDICT
$__gen_Linker_receive_SetLinkerNeighbor INLINECALLDICT
__gen_store_Linker INLINECALLDICT
}>
1562223291 PUSHINT
@ -343,7 +343,7 @@ PROGRAM{
NIP
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_Linker_receive_ForwardToWallet CALLDICT
$__gen_Linker_receive_ForwardToWallet INLINECALLDICT
__gen_store_Linker INLINECALLDICT
}>
DROP

193
sources/output/jetton_Linker.code.rev.fif

@ -41,13 +41,11 @@ SETCP0
EQUAL
<{
s0 POP
<{
c4 PUSH
CTOS
LDREF
s0 s1 XCHG
2 SETGLOBVAR
<{
257 PUSHINT
LDI
LDMSGADDR
@ -74,11 +72,8 @@ SETCP0
s1 POP
s1 s4 XCHG
s3 s3 s0 XCHG3
}> CALLREF
1 4 BLKDROP2
}> CALLREF
s0 s4 XCHG
<{
32 LDU
s0 s1 XCHG
3019699393 PUSHINT
@ -96,18 +91,23 @@ SETCP0
PUSHNULL
}> PUSHCONT
IFELSE
}> CALLREF
s1 POP
s3 s4 XCHG
s1 s3 s0 XCHG3
19 CALLDICT
<{
s1 POP
1 GETGLOBVAR
4 UNTUPLE
2DROP
4429 PUSHINT
s2 POP
s4 PUSH
SDEQ
THROWANYIFNOT
NEWC
2 GETGLOBVAR
s0 s1 XCHG
STREF
4 1 BLKSWAP
<{
s3 s4 XCHG2
257 PUSHINT
STIX
@ -132,22 +132,17 @@ SETCP0
ENDC
s0 s1 XCHG
STREF
}> CALLREF
ENDC
c4 POP
}> CALLREF
}> PUSHCONT
IFJMP
}> IFJMPREF
1562223291 PUSHINT
EQUAL
<{
<{
c4 PUSH
CTOS
LDREF
s0 s1 XCHG
2 SETGLOBVAR
<{
257 PUSHINT
LDI
LDMSGADDR
@ -174,11 +169,8 @@ SETCP0
s1 POP
s1 s4 XCHG
s3 s3 s0 XCHG3
}> CALLREF
1 4 BLKDROP2
}> CALLREF
s0 s4 XCHG
<{
32 LDU
s0 s1 XCHG
1562223291 PUSHINT
@ -186,57 +178,26 @@ SETCP0
129 THROWIFNOT
LDREF
s0 s1 XCHG
}> CALLREF
s1 POP
s3 s4 XCHG
s1 s3 s0 XCHG3
20 CALLDICT
<{
NEWC
2 GETGLOBVAR
s0 s1 XCHG
STREF
4 1 BLKSWAP
<{
s3 s4 XCHG2
257 PUSHINT
STIX
s0 s1 XCHG
STSLICER
1 GETGLOBVAR
4 UNTUPLE
2DROP
4429 PUSHINT
s2 POP
s5 PUSH
SDEQ
THROWANYIFNOT
-1 PUSHINT
s0 s1 XCHG
STSLICER
NEWC
ROT
s0 PUSH
ISNULL
<{
s0 POP
0 PUSHINT
s0 s1 XCHG
2 STU
}> PUSHCONT
64 PUSHINT
s5 PUSH
s0 s3 XCHG
PUSHNULL
PUSHNULL
<{
STSLICER
}> PUSHCONT
IFELSE
ENDC
s0 s1 XCHG
STREF
}> CALLREF
ENDC
c4 POP
}> CALLREF
}> PUSHCONT
IFJMP
s0 POP
130 THROW
1:
s0 PUSH
ISNULL
128 THROWIF
16:
NEWC
1 PUSHINT
s0 s1 XCHG
@ -280,7 +241,9 @@ SETCP0
s0 s1 XCHG
1 STI
s0 s4 XCHG
1 CALLDICT
s0 PUSH
ISNULL
128 THROWIF
s0 s4 XCHG2
STREF
}> PUSHCONT
@ -300,7 +263,9 @@ SETCP0
s0 s1 XCHG
1 STI
s0 s4 XCHG
1 CALLDICT
s0 PUSH
ISNULL
128 THROWIF
s0 s4 XCHG2
STREF
}> PUSHCONT
@ -341,64 +306,64 @@ SETCP0
s0 s1 XCHG
1 STI
s0 s1 XCHG
1 CALLDICT
s0 PUSH
ISNULL
128 THROWIF
s0 s1 XCHG
STREF
}> IFREFELSEREF
ENDC
s0 s1 XCHG
SENDRAWMSG
}> PUSHCONT
<{
s1 POP
0 PUSHINT
s0 s1 XCHG
1 STI
17:
s1 s3 XCHG
3 BLKDROP
18:
s2 s3 XCHG
3 BLKDROP
19:
s1 POP
1 GETGLOBVAR
4 UNTUPLE
2DROP
4429 PUSHINT
s2 POP
s4 PUSH
SDEQ
THROWANYIFNOT
20:
1 GETGLOBVAR
4 UNTUPLE
2DROP
4429 PUSHINT
s2 POP
s5 PUSH
SDEQ
THROWANYIFNOT
-1 PUSHINT
}> PUSHCONT
IFELSE
ENDC
s0 s1 XCHG
SENDRAWMSG
}> CALLREF
NEWC
2 GETGLOBVAR
s0 s1 XCHG
STREF
4 1 BLKSWAP
s3 s4 XCHG2
257 PUSHINT
STIX
s0 s1 XCHG
STSLICER
s0 s1 XCHG
STSLICER
NEWC
ROT
s0 PUSH
ISNULL
<{
s0 POP
0 PUSHINT
64 PUSHINT
s5 PUSH
s0 s3 XCHG
PUSHNULL
PUSHNULL
16 CALLDICT
s0 s1 XCHG
2 STU
}> PUSHCONT
<{
STSLICER
}> PUSHCONT
IFELSE
ENDC
s0 s1 XCHG
STREF
ENDC
c4 POP
}> IFJMPREF
s0 POP
130 THROW
owner:
<{
c4 PUSH
CTOS
LDREF
s0 s1 XCHG
2 SETGLOBVAR
<{
257 PUSHINT
LDI
LDMSGADDR
@ -425,23 +390,22 @@ SETCP0
s1 POP
s1 s4 XCHG
s3 s3 s0 XCHG3
}> CALLREF
1 4 BLKDROP2
<{
s1 s3 XCHG
3 BLKDROP
}> CALLREF
17 CALLDICT
113617:
123515602279859691144772641439386770278 PUSHINT
209801025412363888721030803524359905849 PUSHINT
120253:
<{
c4 PUSH
CTOS
LDREF
s0 s1 XCHG
2 SETGLOBVAR
<{
257 PUSHINT
LDI
LDMSGADDR
@ -468,10 +432,11 @@ SETCP0
s1 POP
s1 s4 XCHG
s3 s3 s0 XCHG3
}> CALLREF
1 4 BLKDROP2
<{
s2 s3 XCHG
3 BLKDROP
}> CALLREF
18 CALLDICT
) 19 DICTPUSHCONST
DICTIGETJMPZ
11 THROWARG

BIN
sources/output/jetton_Linker.init.boc

Binary file not shown.

6
sources/output/jetton_Linker.init.fc

@ -1,3 +1,7 @@
#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
() __tact_verify_address(slice address) inline {
throw_unless(136, address.slice_bits() != 267);
}
@ -17,7 +21,7 @@ builder __tact_store_address_opt(builder b, slice address) inline {
}
}
builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline_ref {
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);

2
sources/output/jetton_Linker.init.fif

@ -27,7 +27,7 @@ PROGRAM{
__tact_store_address INLINECALLDICT
}>
}>
__gen_write_Linker PROCREF:<{
__gen_write_Linker PROCINLINE:<{
s3 s4 XCHG2
257 PUSHINT
STIX

2
sources/output/jetton_Linker.init.rev.fif

@ -8,7 +8,6 @@ SETCP0
NEWC
STREF
s2 s4 XCHG2
<{
s3 s4 XCHG2
257 PUSHINT
STIX
@ -33,7 +32,6 @@ SETCP0
ENDC
s0 s1 XCHG
STREF
}> CALLREF
ENDC
107886:

2
sources/output/jetton_Linker.md

@ -1,6 +1,6 @@
# TACT Compilation Report
Contract: Linker
BOC Size: 594 bytes
BOC Size: 645 bytes
# Types
Total Types: 27

2
sources/output/jetton_Linker.pkg

File diff suppressed because one or more lines are too long

6
sources/output/jetton_Linker.ts

@ -1395,9 +1395,9 @@ function dictValueParserWithdraw(): DictionaryValue<Withdraw> {
}
}
async function Linker_init(index: bigint, owner: Address, master: Address) {
const __init = 'te6ccgEBBwEATgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBE2W0EyMxQJNs8yYGADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcw=';
const __code = 'te6ccgECHQEAAkYAART/APSkE/S88sgLAQIBYgIDAgLLBAUCASAXGAIBzgYHAgFIDQ4ElRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhApFb4CCCELP89MG6j48w2zwE2zwxEDRBMPAT2zzgghBdHaK7uoBsICwkACwgbvLQgIAA20x8BghCz/PTBuvLggfpAIdcLAcMAkQGSMW3iAyqPjts8BNs8MRA0QTDwFNs84DDywIIbCgsAHtMfAYIQXR2iu7ry4IHUAQEYyPhCAcxVMNs8ye1UDAA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMAgEgDxAAM9fCC3ki3AiKaZEuOC+Xo/gLhAIBKBtrb4CEAgEgERICASAVFgL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPABUATMljQDcAHKAOIkbrOafwHKAATwAVAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AIBMUAAcE18DgABJ/AcoAAfABAcwACjFwAcoAAAkECNfA4AAfDH4QW8kW4ERTTIkxwXy9IAENviju2eeAjBsCASAZGgBNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAQ25W92zzwEoGwEW7UTQ1AH4Yts8bBQcAESBAQHXAPpAAQH6QAEB1AHQ+kAh1wsBwwCRAZIxbeIxFEMw';
const __system = 'te6cckECHwEAAlAAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWIJBAIBIAgFAgEgBwYBDblb3bPPASgdAE27vRgnBc7D1dLK57HoTsOdZKhRtmgnCd1jUtK2R8syLTry398WI5gBDb4o7tnngIwdAgLLFQoCAUgMCwAz18ILeSLcCIppkS44L5ej+AuEAgEoG2tvgIQCASAQDQIBIA8OAB8MfhBbyRbgRFNMiTHBfL0gAAkECNfA4AIBIBIRAAcE18DgAvcyHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkZ/AcoAyHABygBwAcoAJG6zmn8BygAE8AFQBMyWNANwAcoA4iRus5p/AcoABPABUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6z4w/JAfsAgFBMACjFwAcoAABJ/AcoAAfABAcwCAc4XFgALCBu8tCAgBJUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuo+PMNs8BNs8MRA0QTDwE9s84IIQXR2iu7qAdHBoYAyqPjts8BNs8MRA0QTDwFNs84DDywIIdGRoAHtMfAYIQXR2iu7ry4IHUAQEYyPhCAcxVMNs8ye1UGwA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBFu1E0NQB+GLbPGwUHgBEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMODigOY=';
const __init = 'te6ccgEBBgEASQABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAS2W0EyMxQJFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMm';
const __code = 'te6ccgECDwEAAnkAART/APSkE/S88sgLAQIBYgIDAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAggQFAgEgCQoBuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0BwKy7UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFATTHwGCEF0doru68uCB1AExEDRBMPhBbyRbgRFNMiXHBfL0fwFwgEAlA21t2zwGBwH2yHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkx/AcoAyHABygBwAcoAJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4iRus51/AcoABCBu8tCAUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6zCABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVAAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsAAV++KO9qJoagD8MUCAgOuAfSAAgP0gAIDqAOh9IBDrhYDhgEiAyRi28RiKIZg2Cm2eQLAgEgDA0ABhNfAwBNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAV+5W97UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFNs8gOAAgQI18D';
const __system = 'te6cckECEQEAAoMAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWILBAIBIAkFAgEgCAYBX7lb3tRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwU2zyAcACBAjXwMATbu9GCcFzsPV0srnsehOw51kqFG2aCcJ3WNS0rZHyzItOvLf3xYjmAFfvijvaiaGoA/DFAgIDrgH0gAID9IACA6gDofSAQ64WA4YBIgMkYtvEYiiGYNgptnkCgAGE18DAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAgg8MArLtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQXR2iu7ry4IHUATEQNEEw+EFvJFuBEU0yJccF8vR/AXCAQCUDbW3bPA0QAfbIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GOTH8BygDIcAHKAHABygAkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDiJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrMOADCcfwHKAAEgbvLQgAHMlTFwAcoA4skB+wABuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0EABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVIvqqJE=';
let systemCell = Cell.fromBase64(__system);
let builder = new TupleBuilder();
builder.writeCell(systemCell);

2
sources/output/jetton_TONB.abi

File diff suppressed because one or more lines are too long

BIN
sources/output/jetton_TONB.code.boc

Binary file not shown.

123
sources/output/jetton_TONB.code.fc

@ -1,10 +1,14 @@
#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
slice __tact_str_to_slice(slice s) asm "NOP";
int __tact_my_balance() inline {
return pair_first(get_balance());
}
forall X -> X __tact_not_null(X x) { throw_if(128, null?(x)); return x; }
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;
@ -141,7 +145,7 @@ cell __gen_writecell_TokenTransferInternal((int, int, slice, slice, int, slice,
return __gen_write_TokenTransferInternal(begin_cell(), v).end_cell();
}
builder __gen_write_TokenBurn(builder build_0, (int, int, slice, slice) v) inline_ref {
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);
@ -155,7 +159,7 @@ 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_ref {
(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();
@ -164,13 +168,13 @@ cell __gen_writecell_TokenBurn((int, int, slice, slice) v) inline_ref {
return (sc_0, (v'queryId, v'amount, v'owner, v'responseAddress));
}
(slice, ((cell))) __gen_read_TokenUpdateContent(slice sc_0) inline_ref {
(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_ref {
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);
@ -181,7 +185,24 @@ cell __gen_writecell_SetLinkerNeighbor((slice) v) inline_ref {
return __gen_write_SetLinkerNeighbor(begin_cell(), v).end_cell();
}
builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inline_ref {
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));
}
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);
@ -189,26 +210,26 @@ builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inl
return build_0;
}
(slice, ((cell, cell, int))) __gen_read_WithdrawalRequests(slice sc_0) inline_ref {
(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_ref {
(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_ref {
(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_ref {
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);
@ -221,7 +242,7 @@ builder __gen_write_TONBWallet(builder build_0, (int, slice, slice, int, int, sl
return build_0;
}
builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline_ref {
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);
@ -232,7 +253,7 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline
return build_0;
}
builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) v) inline_ref {
builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice, int, slice, (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'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);
@ -248,7 +269,7 @@ builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice,
return build_0;
}
(slice, ((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)))) __gen_read_TONB(slice sc_0) inline_ref {
(slice, ((int, slice, cell, int, slice, slice, int, slice, (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();
@ -272,18 +293,18 @@ _ __gen_Context_get_sender((int, slice, int, slice) v) inline {
return v'sender;
}
(int, int, slice, cell, cell) __gen_JettonData_to_external(((int, int, slice, cell, cell)) v) {
(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, (cell, cell, int)) __gen_load_TONB() inline_ref {
(int, slice, cell, int, slice, slice, int, slice, (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, (cell, cell, int)) v) impure inline_ref {
() __gen_store_TONB((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) v) impure inline {
builder b = begin_cell();
b = b.store_ref(__tact_context_sys);
b = __gen_write_TONB(b, v);
@ -293,25 +314,25 @@ _ __gen_Context_get_sender((int, slice, int, slice) v) inline {
;; String "Deposit"
slice __gen_str_228592480() asm "B{b5ee9c7241010101000900000e4465706f7369749721d513} B>boc <s PUSHSLICE";
cell $emptyCell() impure {
cell $emptyCell() impure inline_ref {
return end_cell(begin_cell());
}
slice $__gen_Cell_asSlice(cell $self) impure {
slice $__gen_Cell_asSlice(cell $self) impure inline_ref {
var ($self) = $self;
return begin_parse($self);
}
slice $emptySlice() impure {
slice $emptySlice() impure inline_ref {
return $__gen_Cell_asSlice($emptyCell());
}
slice $contractAddress((cell, cell) $s) impure {
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 {
() $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);
@ -354,7 +375,7 @@ slice $contractAddress((cell, cell) $s) impure {
send_raw_message($c, $params'mode);
}
(int, slice, int, int, cell, cell, cell) $stakingDepositMessage(int $value, slice $pool) impure {
(int, slice, int, int, cell, cell, cell) $stakingDepositMessage(int $value, slice $pool) impure inline_ref {
return (true, $pool, $value, 0, end_cell(store_slice(begin_cell(), __tact_str_to_slice(__gen_str_228592480()))), null(), null());
}
@ -404,12 +425,12 @@ cell $__gen_Linker_init(cell sys', int $index, slice $owner, slice $master) {
return (mine, $__gen_Linker_init(sys, $index, $owner, $master));
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), (cell, cell)) $__gen_TONB_getJettonWalletInit((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, slice $address) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), (cell, cell)) $__gen_TONB_getJettonWalletInit((int, slice, cell, int, slice, slice, int, slice, (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'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'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, (cell, cell, int)) $self, slice $owner) impure {
slice $__gen_TONB_get_wallet_address((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($owner);
return $contractAddress(($winit'code, $winit'data));
@ -422,7 +443,7 @@ _ $__gen_get_get_wallet_address(slice $$owner) method_id(103289) {
return res;
}
(int, int, slice, cell, cell) $__gen_TONB_get_jetton_data((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
(int, int, slice, cell, cell) $__gen_TONB_get_jetton_data((int, slice, cell, int, slice, slice, int, slice, (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'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'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);
@ -434,7 +455,7 @@ _ $__gen_get_get_jetton_data() method_id(106029) {
return __gen_JettonData_to_external(res);
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_mint((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, slice $to, int $amount, slice $responseAddress) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_mint((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($to);
@ -445,11 +466,11 @@ _ $__gen_get_get_jetton_data() method_id(106029) {
$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, 50000000, 0, $wallet_msg_body, $winit'code, $winit'data));
$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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_burn((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, slice $from, int $amount, slice $responseAddress) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_burn((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($from);
slice $walletAddress = $contractAddress(($winit'code, $winit'data));
@ -457,7 +478,7 @@ _ $__gen_get_get_jetton_data() method_id(106029) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requireWallet((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, slice $owner) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requireWallet((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_getJettonWalletInit($owner);
@ -465,13 +486,13 @@ _ $__gen_get_get_jetton_data() method_id(106029) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requireOwner((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requireOwner((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
slice $__gen_TONB_owner((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
slice $__gen_TONB_owner((int, slice, cell, int, slice, slice, int, slice, (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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))) = $self;
return $self'owner;
}
@ -482,7 +503,7 @@ _ $__gen_get_owner() method_id(83229) {
return res;
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_sendStake((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_sendStake((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
@ -495,7 +516,7 @@ _ $__gen_get_owner() method_id(83229) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requestWithdrawal((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, slice $address, int $value) impure {
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_requestWithdrawal((int, slice, cell, int, slice, slice, int, slice, (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'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);
@ -503,22 +524,22 @@ _ $__gen_get_owner() method_id(83229) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_Deposit((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, (int) $msg) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_Deposit((int, slice, cell, int, slice, slice, int, slice, (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'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) + 50000000)));
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'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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_Withdraw((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, (int) $msg) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_Withdraw((int, slice, cell, int, slice, slice, int, slice, (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'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();
@ -527,7 +548,7 @@ _ $__gen_get_owner() method_id(83229) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_TokenUpdateContent((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, (cell) $msg) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_TokenUpdateContent((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requireOwner();
@ -535,7 +556,7 @@ _ $__gen_get_owner() method_id(83229) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_TokenBurnNotification((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self, (int, int, slice, slice) $msg) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_TokenBurnNotification((int, slice, cell, int, slice, slice, int, slice, (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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests))~$__gen_TONB_requireWallet($msg'owner);
@ -554,13 +575,24 @@ _ $__gen_get_owner() method_id(83229) {
return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) $self) impure {
(((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int))), ()) $__gen_TONB_receive_BlacklistWallet((int, slice, cell, int, slice, slice, int, slice, (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'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'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'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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
((int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)), ()) $__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c((int, slice, cell, int, slice, slice, int, slice, (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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self;
int $i = 0;
while (($i < $self'withdrawal_requests'n_requests)) {
$send((true, __tact_not_null(__tact_dict_get_int_slice($self'withdrawal_requests'addresses, 257, $i)), __tact_not_null(__tact_dict_get_int_int($self'withdrawal_requests'amounts, 257, $i, 257)), 0, null(), null(), null()));
$i = ($i + 1);
}
($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'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ());
}
@ -627,6 +659,15 @@ _ $__gen_get_owner() method_id(83229) {
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 ();
}
;; Text Receivers
if (op == 0) {
var text_op = slice_hash(in_msg);
@ -653,5 +694,5 @@ _ supported_interfaces() method_id {
}
_ get_abi_ipfs() {
return "ipfs://QmUMBKY4L4n4GyTq3MSncGQ8X3nLYqomdtcYYcg1dzU2iS";
return "ipfs://QmdLbHDcwcbEDecCvHvgj8D5v6twD5qHGPzRoJxrQn4XEr";
}

248
sources/output/jetton_TONB.code.fif

@ -25,6 +25,9 @@ PROGRAM{
DECLPROC __gen_read_TokenUpdateContent
DECLPROC __gen_write_SetLinkerNeighbor
DECLPROC __gen_writecell_SetLinkerNeighbor
DECLPROC __gen_write_BlacklistWallet
DECLPROC __gen_writecell_BlacklistWallet
DECLPROC __gen_read_BlacklistWallet
DECLPROC __gen_write_WithdrawalRequests
DECLPROC __gen_read_WithdrawalRequests
DECLPROC __gen_read_Deposit
@ -66,6 +69,7 @@ PROGRAM{
DECLPROC $__gen_TONB_receive_Withdraw
DECLPROC $__gen_TONB_receive_TokenUpdateContent
DECLPROC $__gen_TONB_receive_TokenBurnNotification
DECLPROC $__gen_TONB_receive_BlacklistWallet
DECLPROC $__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c
DECLPROC recv_internal
113617 DECLMETHOD supported_interfaces
@ -76,7 +80,7 @@ PROGRAM{
BALANCE
FIRST
}>
__tact_not_null PROC:<{
__tact_not_null PROCINLINE:<{
DUP
ISNULL
128 THROWIF
@ -270,7 +274,7 @@ PROGRAM{
__gen_write_TokenTransferInternal INLINECALLDICT
ENDC
}>
__gen_write_TokenBurn PROCREF:<{
__gen_write_TokenBurn PROCINLINE:<{
1499400124 PUSHINT
s0 s5 XCHG2
32 STU
@ -289,7 +293,7 @@ PROGRAM{
__gen_write_TokenBurn INLINECALLDICT
ENDC
}>
__gen_read_TokenBurnNotification PROCREF:<{
__gen_read_TokenBurnNotification PROCINLINE:<{
32 LDU
SWAP
2078119902 PUSHINT
@ -303,7 +307,7 @@ PROGRAM{
s1 s4 XCHG
s3 s3 s0 XCHG3
}>
__gen_read_TokenUpdateContent PROCREF:<{
__gen_read_TokenUpdateContent PROCINLINE:<{
32 LDU
SWAP
201882270 PUSHINT
@ -319,7 +323,7 @@ PROGRAM{
}>
SWAP
}>
__gen_write_SetLinkerNeighbor PROCREF:<{
__gen_write_SetLinkerNeighbor PROCINLINE:<{
3019699393 PUSHINT
ROT
32 STU
@ -332,21 +336,42 @@ PROGRAM{
__gen_write_SetLinkerNeighbor INLINECALLDICT
ENDC
}>
__gen_write_WithdrawalRequests PROCREF:<{
__gen_write_BlacklistWallet PROCINLINE:<{
43811734 PUSHINT
ROT
32 STU
SWAP
__tact_store_address INLINECALLDICT
}>
__gen_writecell_BlacklistWallet PROCREF:<{
NEWC
SWAP
__gen_write_BlacklistWallet INLINECALLDICT
ENDC
}>
__gen_read_BlacklistWallet PROCINLINE:<{
32 LDU
SWAP
43811734 PUSHINT
EQUAL
129 THROWIFNOT
__tact_load_address INLINECALLDICT
}>
__gen_write_WithdrawalRequests PROCINLINE:<{
s2 s3 XCHG2
STDICT
STDICT
257 PUSHINT
STIX
}>
__gen_read_WithdrawalRequests PROCREF:<{
__gen_read_WithdrawalRequests PROCINLINE:<{
LDDICT
LDDICT
257 PUSHINT
LDIX
3 -ROLL
}>
__gen_read_Deposit PROCREF:<{
__gen_read_Deposit PROCINLINE:<{
32 LDU
SWAP
569292295 PUSHINT
@ -355,7 +380,7 @@ PROGRAM{
LDGRAMS
SWAP
}>
__gen_read_Withdraw PROCREF:<{
__gen_read_Withdraw PROCINLINE:<{
32 LDU
SWAP
1616450832 PUSHINT
@ -365,7 +390,7 @@ PROGRAM{
LDIX
SWAP
}>
__gen_write_TONBWallet PROCREF:<{
__gen_write_TONBWallet PROCINLINE:<{
s5 s6 XCHG2
257 PUSHINT
STIX
@ -397,7 +422,7 @@ PROGRAM{
SWAP
STREF
}>
__gen_write_Linker PROCREF:<{
__gen_write_Linker PROCINLINE:<{
s3 s4 XCHG2
257 PUSHINT
STIX
@ -412,7 +437,7 @@ PROGRAM{
SWAP
STREF
}>
__gen_write_TONB PROCREF:<{
__gen_write_TONB PROCINLINE:<{
s11 s10 XCHG2
STGRAMS
s0 s8 XCHG2
@ -450,7 +475,7 @@ PROGRAM{
SWAP
STREF
}>
__gen_read_TONB PROCREF:<{
__gen_read_TONB PROCINLINE:<{
LDGRAMS
__tact_load_address INLINECALLDICT
SWAP
@ -491,9 +516,9 @@ PROGRAM{
s2 s3 XCHG
3 BLKDROP
}>
__gen_JettonData_to_external PROC:<{
__gen_JettonData_to_external PROCINLINE:<{
}>
__gen_load_TONB PROCREF:<{
__gen_load_TONB PROCINLINE:<{
c4 PUSH
CTOS
LDREF
@ -502,7 +527,7 @@ PROGRAM{
__gen_read_TONB INLINECALLDICT
1 11 BLKDROP2
}>
__gen_store_TONB PROCREF:<{
__gen_store_TONB PROCINLINE:<{
NEWC
__tact_context_sys GETGLOB
SWAP
@ -512,23 +537,23 @@ PROGRAM{
ENDC
c4 POP
}>
$emptyCell PROC:<{
$emptyCell PROCREF:<{
NEWC
ENDC
}>
$__gen_Cell_asSlice PROC:<{
$__gen_Cell_asSlice PROCREF:<{
CTOS
}>
$emptySlice PROC:<{
$emptyCell CALLDICT
$__gen_Cell_asSlice CALLDICT
$emptySlice PROCREF:<{
$emptyCell INLINECALLDICT
$__gen_Cell_asSlice INLINECALLDICT
}>
$contractAddress PROC:<{
$contractAddress PROCREF:<{
0 PUSHINT
-ROT
__tact_compute_contract_address INLINECALLDICT
}>
$send PROC:<{
$send PROCREF:<{
NEWC
1 PUSHINT
SWAP
@ -567,7 +592,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -583,7 +608,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -615,7 +640,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
SWAP
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
SWAP
STREF
}>ELSE<{
@ -627,7 +652,7 @@ PROGRAM{
SWAP
SENDRAWMSG
}>
$stakingDepositMessage PROC:<{
$stakingDepositMessage PROCREF:<{
TRUE
0 PUSHINT
NEWC
@ -700,47 +725,47 @@ PROGRAM{
s0 s4 XCHG
$__gen_Linker_init CALLDICT
}>
$__gen_TONB_getJettonWalletInit PROC:<{
$__gen_TONB_getJettonWalletInit PROCREF:<{
__tact_context_sys GETGLOB
MYADDR
ROT
$__gen_TONBWallet_init_child CALLDICT
}>
$__gen_TONB_get_wallet_address PROC:<{
$__gen_TONB_getJettonWalletInit CALLDICT
$__gen_TONB_get_wallet_address PROCREF:<{
$__gen_TONB_getJettonWalletInit INLINECALLDICT
11 2 BLKDROP2
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
}>
$__gen_get_get_wallet_address PROC:<{
__gen_load_TONB INLINECALLDICT
11 ROLL
$__gen_TONB_get_wallet_address CALLDICT
$__gen_TONB_get_wallet_address INLINECALLDICT
}>
$__gen_TONB_get_jetton_data PROC:<{
$__gen_TONB_get_jetton_data PROCREF:<{
MYADDR
$__gen_TONB_getJettonWalletInit CALLDICT
$__gen_TONB_getJettonWalletInit INLINECALLDICT
7 2 BLKDROP2
__gen_StateInit_get_code INLINECALLDICT
s3 s3 s0 XCHG3
}>
$__gen_get_get_jetton_data PROC:<{
__gen_load_TONB INLINECALLDICT
$__gen_TONB_get_jetton_data CALLDICT
__gen_JettonData_to_external CALLDICT
$__gen_TONB_get_jetton_data INLINECALLDICT
__gen_JettonData_to_external INLINECALLDICT
}>
$__gen_TONB_mint PROC:<{
$__gen_TONB_mint PROCREF:<{
s13 s1 XCPU
ADD
11 2 BLKSWAP
$__gen_TONB_getJettonWalletInit CALLDICT
$__gen_TONB_getJettonWalletInit INLINECALLDICT
2DUP
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
__tact_context_sys GETGLOB
MYADDR
s9 s2 s(-2) PU2XC
$__gen_Linker_init_child CALLDICT
2DUP
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
FALSE
20000000 PUSHINT
0 PUSHINT
@ -751,14 +776,14 @@ PROGRAM{
s4 s1 s5 XCHG3
s3 s15 XCHG
s1 s15 s0 XCHG3
$send CALLDICT
$send INLINECALLDICT
s8 PUSH
s0 s8 XCHG
INC
0 PUSHINT
MYADDR
OVER
$emptySlice CALLDICT
$emptySlice INLINECALLDICT
s4 PUSH
DEC
s4 s7 XCHG
@ -771,12 +796,12 @@ PROGRAM{
FALSE
s0 s4 XCHG
s3 s14 XCHG
50000000 PUSHINT
65000000 PUSHINT
s0 s3 XCHG
0 PUSHINT
s3 s1 s3 XCHG3
s0 17 s() XCHG
$send CALLDICT
$send INLINECALLDICT
s8 s10 XCHG
s7 s9 XCHG
s6 s8 XCHG
@ -785,7 +810,7 @@ PROGRAM{
s0 s3 s5 XCHG3
s1 s4 XCHG
}>
$__gen_TONB_burn PROC:<{
$__gen_TONB_burn PROCREF:<{
s10 s13 XCHG
s9 s12 XCHG
s8 s11 XCHG
@ -796,9 +821,9 @@ PROGRAM{
s3 s12 XCHG
s11 s13 s12 XCHG3
s11 PUSH
$__gen_TONB_getJettonWalletInit CALLDICT
$__gen_TONB_getJettonWalletInit INLINECALLDICT
2DUP
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
FALSE
0 PUSHINT
64 PUSHINT
@ -812,42 +837,42 @@ PROGRAM{
s4 17 s() XCHG
s3 s15 XCHG
s15 s2 XCHG2
$send CALLDICT
$send INLINECALLDICT
s7 s10 XCHG
3 7 BLKSWAP
}>
$__gen_TONB_requireWallet PROC:<{
$__gen_TONB_requireWallet PROCREF:<{
__tact_context_get INLINECALLDICT
s2 s3 XCHG
3 BLKDROP
12 -ROLL
$__gen_TONB_getJettonWalletInit CALLDICT
$__gen_TONB_getJettonWalletInit INLINECALLDICT
SWAP
4429 PUSHINT
s0 s2 XCHG
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
s0 s13 XCHG2
__tact_address_eq INLINECALLDICT
s1 s12 XCHG
THROWANYIFNOT
10 ROLL
}>
$__gen_TONB_requireOwner PROC:<{
$__gen_TONB_requireOwner PROCREF:<{
__tact_context_get INLINECALLDICT
__gen_Context_get_sender INLINECALLDICT
s10 PUSH
__tact_address_eq INLINECALLDICT
132 THROWIFNOT
}>
$__gen_TONB_owner PROC:<{
$__gen_TONB_owner PROCREF:<{
s9 s10 XCHG
10 BLKDROP
}>
$__gen_get_owner PROC:<{
__gen_load_TONB INLINECALLDICT
$__gen_TONB_owner CALLDICT
$__gen_TONB_owner INLINECALLDICT
}>
$__gen_TONB_sendStake PROC:<{
$__gen_TONB_sendStake PROCREF:<{
s3 PUSH
ISNULL
IFJMP:<{
@ -862,11 +887,11 @@ PROGRAM{
DROP
}>
s4 PUSH
__tact_not_null CALLDICT
$stakingDepositMessage CALLDICT
$send CALLDICT
__tact_not_null INLINECALLDICT
$stakingDepositMessage INLINECALLDICT
$send INLINECALLDICT
}>
$__gen_TONB_requestWithdrawal PROC:<{
$__gen_TONB_requestWithdrawal PROCREF:<{
s1 s4 XCHG
257 PUSHINT
s0 s3 s5 XCPUXC
@ -880,7 +905,7 @@ PROGRAM{
SWAP
INC
}>
$__gen_TONB_receive_Deposit PROC:<{
$__gen_TONB_receive_Deposit PROCINLINE:<{
__tact_context_get INLINECALLDICT
DROP
s2 POP
@ -890,19 +915,19 @@ PROGRAM{
ADD
20000000 PUSHINT
ADD
50000000 PUSHINT
65000000 PUSHINT
ADD
s1 s3 XCHG
GEQ
s1 s2 XCHG
THROWANYIFNOT
TUCK
$__gen_TONB_mint CALLDICT
$__gen_TONB_sendStake CALLDICT
$__gen_TONB_mint INLINECALLDICT
$__gen_TONB_sendStake INLINECALLDICT
}>
$__gen_TONB_receive PROC:<{
$__gen_TONB_receive PROCINLINE:<{
}>
$__gen_TONB_receive_Withdraw PROC:<{
$__gen_TONB_receive_Withdraw PROCINLINE:<{
__tact_context_get INLINECALLDICT
DROP
6384 PUSHINT
@ -912,17 +937,17 @@ PROGRAM{
s1 s2 XCHG
THROWANYIFNOT
TUCK
$__gen_TONB_burn CALLDICT
$__gen_TONB_burn INLINECALLDICT
}>
$__gen_TONB_receive_TokenUpdateContent PROC:<{
$__gen_TONB_receive_TokenUpdateContent PROCINLINE:<{
11 -ROLL
$__gen_TONB_requireOwner CALLDICT
$__gen_TONB_requireOwner INLINECALLDICT
s8 POP
s9 s10 XCHG
s8 s9 XCHG
7 ROLL
}>
$__gen_TONB_receive_TokenBurnNotification PROC:<{
$__gen_TONB_receive_TokenBurnNotification PROCINLINE:<{
DROP
s2 POP
s10 s12 XCHG
@ -934,7 +959,7 @@ PROGRAM{
s3 s11 XCHG
s12 s11 s12 XCHG3
s11 PUSH
$__gen_TONB_requireWallet CALLDICT
$__gen_TONB_requireWallet INLINECALLDICT
s10 s12 XCPU
SUB
__tact_my_balance INLINECALLDICT
@ -944,7 +969,7 @@ PROGRAM{
SUB
s0 s13 PUSH2
LESS
IFJMP:<{
IF:<{
s1 s13 XCHG
SUB
FALSE
@ -956,12 +981,12 @@ PROGRAM{
PUSHNULL
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
0 PUSHINT
MYADDR
MYADDR
s2 PUSH
$emptySlice CALLDICT
$emptySlice INLINECALLDICT
s5 PUSH
4 -ROLL
PUSHNULL
@ -973,7 +998,7 @@ PROGRAM{
s11 PUSH
21 s() PUSH
23 s() PUSH
$__gen_TONB_get_wallet_address CALLDICT
$__gen_TONB_get_wallet_address INLINECALLDICT
FALSE
s0 s2 XCHG
0 PUSHINT
@ -981,7 +1006,7 @@ PROGRAM{
ROT
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
s9 s11 XCHG
s8 s10 XCHG
s7 s9 XCHG
@ -990,8 +1015,8 @@ PROGRAM{
s4 s6 XCHG
s3 s5 XCHG
s4 s3 s0 XCHG3
$__gen_TONB_requestWithdrawal CALLDICT
}>
$__gen_TONB_requestWithdrawal INLINECALLDICT
}>ELSE<{
DROP
FALSE
s0 s12 s13 XCHG3
@ -999,11 +1024,30 @@ PROGRAM{
PUSHNULL
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
s9 s10 XCHG
2 8 BLKSWAP
}>
$__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c PROC:<{
}>
$__gen_TONB_receive_BlacklistWallet PROCINLINE:<{
11 -ROLL
$__gen_TONB_requireOwner INLINECALLDICT
s11 PUSH
$__gen_TONB_getJettonWalletInit INLINECALLDICT
$contractAddress INLINECALLDICT
FALSE
0 PUSHINT
64 PUSHINT
s0 s15 XCHG
__gen_writecell_BlacklistWallet INLINECALLDICT
s1 s4 s0 XCHG3
s1 s15 XCHG
PUSHNULL
PUSHNULL
$send INLINECALLDICT
10 ROLL
}>
$__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c PROCINLINE:<{
0 PUSHINT
WHILE:<{
s0 s1 PUSH2
@ -1014,20 +1058,23 @@ PROGRAM{
257 PUSHINT
s3 PUSH
__tact_dict_get_int_slice INLINECALLDICT
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
257 PUSHINT
s5 s(-1) s(-1) PUXCPU
s5 s(-1) PUXC
__tact_dict_get_int_int INLINECALLDICT
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
0 PUSHINT
PUSHNULL
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
INC
}>
DROP
4 BLKDROP
PUSHNULL
PUSHNULL
0 PUSHINT
}>
recv_internal PROC:<{
c2 SAVE
@ -1081,7 +1128,7 @@ PROGRAM{
s4 s5 XCHG
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_TONB_receive_Deposit CALLDICT
$__gen_TONB_receive_Deposit INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
DUP
@ -1093,7 +1140,7 @@ PROGRAM{
IFJMP:<{
2DROP
__gen_load_TONB INLINECALLDICT
$__gen_TONB_receive CALLDICT
$__gen_TONB_receive INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
DUP
@ -1114,7 +1161,7 @@ PROGRAM{
s4 s5 XCHG
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_TONB_receive_Withdraw CALLDICT
$__gen_TONB_receive_Withdraw INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
DUP
@ -1135,7 +1182,7 @@ PROGRAM{
s4 s5 XCHG
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_TONB_receive_TokenUpdateContent CALLDICT
$__gen_TONB_receive_TokenUpdateContent INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
DUP
@ -1158,7 +1205,28 @@ PROGRAM{
s5 s6 XCHG
s4 s5 XCHG
3 ROLL
$__gen_TONB_receive_TokenBurnNotification CALLDICT
$__gen_TONB_receive_TokenBurnNotification INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
DUP
43811734 PUSHINT
EQUAL
IFJMP:<{
DROP
__gen_load_TONB INLINECALLDICT
s0 s11 XCHG
__gen_read_BlacklistWallet INLINECALLDICT
NIP
s10 s11 XCHG
s9 s10 XCHG
s8 s9 XCHG
s7 s8 XCHG
s6 s7 XCHG
s5 s6 XCHG
s4 s5 XCHG
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_TONB_receive_BlacklistWallet INLINECALLDICT
__gen_store_TONB INLINECALLDICT
}>
0 EQINT
@ -1168,7 +1236,7 @@ PROGRAM{
EQUAL
IFJMP:<{
__gen_load_TONB INLINECALLDICT
$__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c CALLDICT
$__gen_TONB_receive_comment_f7b1ab6077945b37370a1550574675180cf87df4cb047c869746812a83667d4c INLINECALLDICT
__gen_store_TONB INLINECALLDICT
RETALT
}>
@ -1184,6 +1252,6 @@ PROGRAM{
86142586315491086060343270784266291122 PUSHINT
}>
get_abi_ipfs PROC:<{
x{697066733a2f2f516d554d424b59344c346e3447795471334d536e6347513858336e4c59716f6d6474635959636731647a55326953} PUSHSLICE
x{697066733a2f2f516d644c624844637763624544656343764876676a384435763674774435714847507a526f4a7872516e34584572} PUSHSLICE
}>
}END>c

3169
sources/output/jetton_TONB.code.rev.fif

File diff suppressed because it is too large Load Diff

BIN
sources/output/jetton_TONB.init.boc

Binary file not shown.

9
sources/output/jetton_TONB.init.fc

@ -1,3 +1,7 @@
#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
() __tact_verify_address(slice address) inline {
throw_unless(136, address.slice_bits() != 267);
}
@ -17,7 +21,7 @@ builder __tact_store_address_opt(builder b, slice address) inline {
}
}
builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inline_ref {
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);
@ -25,7 +29,7 @@ builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inl
return build_0;
}
builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice, int, slice, (cell, cell, int)) v) inline_ref {
builder __gen_write_TONB(builder build_0, (int, slice, cell, int, slice, slice, int, slice, (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'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);
@ -47,6 +51,7 @@ cell $__gen_TONB_init(cell sys', slice $owner, cell $content) {
$self'owner = $owner;
$self'mintable = true;
$self'content = $content;
($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests) = (null(), null(), 0);
var b' = begin_cell();
b' = b'.store_ref(sys');
b' = __gen_write_TONB(b', ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)));

21
sources/output/jetton_TONB.init.fif

@ -28,14 +28,14 @@ PROGRAM{
__tact_store_address INLINECALLDICT
}>
}>
__gen_write_WithdrawalRequests PROCREF:<{
__gen_write_WithdrawalRequests PROCINLINE:<{
s2 s3 XCHG2
STDICT
STDICT
257 PUSHINT
STIX
}>
__gen_write_TONB PROCREF:<{
__gen_write_TONB PROCINLINE:<{
s11 s10 XCHG2
STGRAMS
s0 s8 XCHG2
@ -78,19 +78,20 @@ PROGRAM{
PUSHNULL
0 PUSHINT
PUSHNULL
PUSHNULL
s4 PUSH
OVER
TRUE
PUSHNULL
PUSHNULL
s3 PUSH
s0 s11 XCHG
NEWC
STREF
s0 s11 XCHG
s0 s7 XCHG
s10 s5 XCHG2
s9 s3 XCHG2
s0 s8 XCHG2
s0 s6 XCHG
s4 s1 s4 XCHG3
s4 s10 XCHG
s4 s9 XCHG
s4 s8 XCHG
5 3 REVERSE
s3 s5 XCHG
__gen_write_TONB INLINECALLDICT
ENDC
}>

21
sources/output/jetton_TONB.init.rev.fif

@ -7,20 +7,20 @@ SETCP0
PUSHNULL
0 PUSHINT
PUSHNULL
PUSHNULL
s4 PUSH
s1 PUSH
-1 PUSHINT
PUSHNULL
PUSHNULL
s3 PUSH
s0 s11 XCHG
NEWC
STREF
s0 s11 XCHG
s0 s7 XCHG
s10 s5 XCHG2
s9 s3 XCHG2
s0 s8 XCHG2
s0 s6 XCHG
s4 s1 s4 XCHG3
<{
s4 s10 XCHG
s4 s9 XCHG
s4 s8 XCHG
5 3 REVERSE
s3 s5 XCHG
s11 s10 XCHG2
STGRAMS
s0 s8 XCHG2
@ -88,17 +88,14 @@ SETCP0
}> PUSHCONT
IFELSE
s4 s3 XCHG2
<{
s2 s3 XCHG2
STDICT
STDICT
257 PUSHINT
STIX
}> CALLREF
ENDC
s0 s1 XCHG
STREF
}> CALLREF
ENDC
107886:

2
sources/output/jetton_TONB.md

@ -1,6 +1,6 @@
# TACT Compilation Report
Contract: TONB
BOC Size: 2191 bytes
BOC Size: 3240 bytes
# Types
Total Types: 27

2
sources/output/jetton_TONB.pkg

File diff suppressed because one or more lines are too long

11
sources/output/jetton_TONB.ts

File diff suppressed because one or more lines are too long

BIN
sources/output/jetton_TONBWallet.code.boc

Binary file not shown.

52
sources/output/jetton_TONBWallet.code.fc

@ -1,8 +1,12 @@
#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) { throw_if(128, null?(x)); return x; }
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;
@ -133,7 +137,7 @@ cell __gen_writecell_TokenTransferInternal((int, int, slice, slice, int, slice,
return (sc_0, (v'queryId, v'amount, v'from, v'responseAddress, v'forwardTonAmount, v'forwardPayload, v'setLinker, v'setLinkerAddress));
}
builder __gen_write_TokenNotification(builder build_0, (int, int, slice, slice) v) inline_ref {
builder __gen_write_TokenNotification(builder build_0, (int, int, slice, slice) v) inline {
var (v'queryId, v'amount, v'from, v'forwardPayload) = v;
build_0 = store_uint(build_0, 1935855772, 32);
build_0 = build_0.store_uint(v'queryId, 64);
@ -147,7 +151,7 @@ cell __gen_writecell_TokenNotification((int, int, slice, slice) v) inline_ref {
return __gen_write_TokenNotification(begin_cell(), v).end_cell();
}
(slice, ((int, int, slice, slice))) __gen_read_TokenBurn(slice sc_0) inline_ref {
(slice, ((int, int, slice, slice))) __gen_read_TokenBurn(slice sc_0) inline {
throw_unless(129, sc_0~load_uint(32) == 1499400124);
var v'queryId = sc_0~load_uint(64);
var v'amount = sc_0~load_coins();
@ -156,7 +160,7 @@ cell __gen_writecell_TokenNotification((int, int, slice, slice) v) inline_ref {
return (sc_0, (v'queryId, v'amount, v'owner, v'responseAddress));
}
builder __gen_write_TokenBurnNotification(builder build_0, (int, int, slice, slice) v) inline_ref {
builder __gen_write_TokenBurnNotification(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, 2078119902, 32);
build_0 = build_0.store_uint(v'queryId, 64);
@ -170,7 +174,7 @@ cell __gen_writecell_TokenBurnNotification((int, int, slice, slice) v) inline_re
return __gen_write_TokenBurnNotification(begin_cell(), v).end_cell();
}
builder __gen_write_TokenExcesses(builder build_0, (int) v) inline_ref {
builder __gen_write_TokenExcesses(builder build_0, (int) v) inline {
var (v'queryId) = v;
build_0 = store_uint(build_0, 3576854235, 32);
build_0 = build_0.store_uint(v'queryId, 64);
@ -181,13 +185,13 @@ cell __gen_writecell_TokenExcesses((int) v) inline_ref {
return __gen_write_TokenExcesses(begin_cell(), v).end_cell();
}
(slice, ((slice))) __gen_read_BlacklistWallet(slice sc_0) inline_ref {
(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));
}
builder __gen_write_TONBWallet(builder build_0, (int, slice, slice, int, int, slice) v) inline_ref {
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);
@ -200,7 +204,7 @@ builder __gen_write_TONBWallet(builder build_0, (int, slice, slice, int, int, sl
return build_0;
}
(slice, ((int, slice, slice, int, int, slice))) __gen_read_TONBWallet(slice sc_0) inline_ref {
(slice, ((int, slice, slice, int, int, slice))) __gen_read_TONBWallet(slice sc_0) inline {
var v'balance = sc_0~load_int(257);
var v'owner = sc_0~__tact_load_address();
var v'master = sc_0~__tact_load_address();
@ -216,30 +220,30 @@ _ __gen_StateInit_get_code((cell, cell) v) inline {
return v'code;
}
(int, slice, slice, cell) __gen_JettonWalletData_to_external(((int, slice, slice, cell)) v) {
(int, slice, slice, cell) __gen_JettonWalletData_to_external(((int, slice, slice, cell)) v) inline {
var (v'balance, v'owner, v'master, v'walletCode) = v;
return (v'balance, v'owner, v'master, v'walletCode);
}
(int, slice, slice, int, int, slice) __gen_load_TONBWallet() inline_ref {
(int, slice, slice, int, int, slice) __gen_load_TONBWallet() inline {
slice sc = get_data().begin_parse();
__tact_context_sys = sc~load_ref();
return sc~__gen_read_TONBWallet();
}
() __gen_store_TONBWallet((int, slice, slice, int, int, slice) v) impure inline_ref {
() __gen_store_TONBWallet((int, slice, slice, int, int, slice) v) impure inline {
builder b = begin_cell();
b = b.store_ref(__tact_context_sys);
b = __gen_write_TONBWallet(b, v);
set_data(b.end_cell());
}
slice $contractAddress((cell, cell) $s) impure {
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 {
() $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);
@ -282,7 +286,7 @@ slice $contractAddress((cell, cell) $s) impure {
send_raw_message($c, $params'mode);
}
int $__gen_Context_readForwardFee((int, slice, int, slice) $self) impure {
int $__gen_Context_readForwardFee((int, slice, int, slice) $self) impure inline_ref {
var (($self'bounced, $self'sender, $self'value, $self'raw)) = $self;
var (($self'bounced, $self'sender, $self'value, $self'raw)) = $self;
slice $sc = $self'raw;
@ -315,7 +319,7 @@ cell $__gen_TONBWallet_init(cell sys', slice $master, slice $owner) {
return (mine, $__gen_TONBWallet_init(sys, $master, $owner));
}
(int, slice, slice, cell) $__gen_TONBWallet_get_wallet_data((int, slice, slice, int, int, slice) $self) impure {
(int, slice, slice, cell) $__gen_TONBWallet_get_wallet_data((int, slice, slice, int, int, slice) $self) impure inline_ref {
var (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address)) = $self;
return ($self'balance, $self'owner, $self'master, __gen_StateInit_get_code($__gen_TONBWallet_init_child(__tact_context_sys, $self'master, $self'owner)));
}
@ -326,7 +330,7 @@ _ $__gen_get_get_wallet_data() method_id(97026) {
return __gen_JettonWalletData_to_external(res);
}
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenTransfer((int, slice, slice, int, int, slice) $self, (int, int, slice, slice, cell, int, slice) $msg) impure {
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenTransfer((int, slice, slice, int, int, slice) $self, (int, int, slice, slice, cell, int, slice) $msg) impure inline {
var ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address) = $self;
var ($msg'queryId, $msg'amount, $msg'destination, $msg'responseDestination, $msg'customPayload, $msg'forwardTonAmount, $msg'forwardPayload) = $msg;
throw_unless(44816, (~ $self'blacklisted));
@ -339,21 +343,27 @@ _ $__gen_get_get_wallet_data() method_id(97026) {
if (($msg'forwardTonAmount > 0)) {
$fwdCount = 2;
}
throw_unless(16059, ($ctx'value > ((($fwdCount * $fwdFee) + (2 * 10000000)) + 10000000)));
throw_unless(16059, ($ctx'value > 50000000));
var ($init'code, $init'data) = $__gen_TONBWallet_init_child(__tact_context_sys, $self'master, $msg'destination);
slice $walletAddress = $contractAddress(($init'code, $init'data));
$send((true, $walletAddress, 0, 64, __gen_writecell_TokenTransferInternal(($msg'queryId, $msg'amount, $self'owner, $self'owner, $msg'forwardTonAmount, $msg'forwardPayload, null(), null())), $init'code, $init'data));
return (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address), ());
}
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenTransferInternal((int, slice, slice, int, int, slice) $self, (int, int, slice, slice, int, slice, int, slice) $msg) impure {
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenTransferInternal((int, slice, slice, int, int, slice) $self, (int, int, slice, slice, int, slice, int, slice) $msg) impure inline {
var ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address) = $self;
var ($msg'queryId, $msg'amount, $msg'from, $msg'responseAddress, $msg'forwardTonAmount, $msg'forwardPayload, $msg'setLinker, $msg'setLinkerAddress) = $msg;
if ($self'blacklisted) {
$send((true, $self'master, 0, 64, __gen_writecell_TokenBurnNotification(($msg'queryId, $msg'amount, $self'owner, $self'owner)), null(), null()));
return (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address), ());
}
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
if (null?($self'linker)) {
if ((~ null?($msg'setLinker))) {
$self'linker = $msg'setLinker;
$self'linker_address = $msg'setLinkerAddress;
}
}
if ((__tact_address_neq($ctx'sender, $self'master) & __tact_address_neq($ctx'sender, $self'linker_address))) {
var ($sinit'code, $sinit'data) = $__gen_TONBWallet_init_child(__tact_context_sys, $self'master, $msg'from);
throw_unless(4429, __tact_address_eq($contractAddress(($sinit'code, $sinit'data)), $ctx'sender));
@ -375,7 +385,7 @@ _ $__gen_get_get_wallet_data() method_id(97026) {
return (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address), ());
}
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenBurn((int, slice, slice, int, int, slice) $self, (int, int, slice, slice) $msg) impure {
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_TokenBurn((int, slice, slice, int, int, slice) $self, (int, int, slice, slice) $msg) impure inline {
var ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address) = $self;
var ($msg'queryId, $msg'amount, $msg'owner, $msg'responseAddress) = $msg;
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
@ -388,7 +398,7 @@ _ $__gen_get_get_wallet_data() method_id(97026) {
return (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address), ());
}
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_BlacklistWallet((int, slice, slice, int, int, slice) $self, (slice) $_msg) impure {
(((int, slice, slice, int, int, slice)), ()) $__gen_TONBWallet_receive_BlacklistWallet((int, slice, slice, int, int, slice) $self, (slice) $_msg) impure inline {
var ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address) = $self;
var ($_msg'wallet) = $_msg;
var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get();
@ -400,7 +410,7 @@ _ $__gen_get_get_wallet_data() method_id(97026) {
return (($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address), ());
}
((int, slice, slice, int, int, slice), ()) $__gen_TONBWallet_receive_bounced((int, slice, slice, int, int, slice) $self, slice $msg) impure {
((int, slice, slice, int, int, slice), ()) $__gen_TONBWallet_receive_bounced((int, slice, slice, int, int, slice) $self, slice $msg) impure inline {
var ($self'balance, $self'owner, $self'master, $self'blacklisted, $self'linker, $self'linker_address) = $self;
$msg~skip_bits(32);
int $op = $msg~load_uint(32);

121
sources/output/jetton_TONBWallet.code.fif

@ -53,7 +53,7 @@ PROGRAM{
BALANCE
FIRST
}>
__tact_not_null PROC:<{
__tact_not_null PROCINLINE:<{
DUP
ISNULL
128 THROWIF
@ -261,7 +261,7 @@ PROGRAM{
s2 s4 XCHG
s2 s3 XCHG
}>
__gen_write_TokenNotification PROCREF:<{
__gen_write_TokenNotification PROCINLINE:<{
1935855772 PUSHINT
s0 s5 XCHG2
32 STU
@ -280,7 +280,7 @@ PROGRAM{
__gen_write_TokenNotification INLINECALLDICT
ENDC
}>
__gen_read_TokenBurn PROCREF:<{
__gen_read_TokenBurn PROCINLINE:<{
32 LDU
SWAP
1499400124 PUSHINT
@ -294,7 +294,7 @@ PROGRAM{
s1 s4 XCHG
s3 s3 s0 XCHG3
}>
__gen_write_TokenBurnNotification PROCREF:<{
__gen_write_TokenBurnNotification PROCINLINE:<{
2078119902 PUSHINT
s0 s5 XCHG2
32 STU
@ -313,7 +313,7 @@ PROGRAM{
__gen_write_TokenBurnNotification INLINECALLDICT
ENDC
}>
__gen_write_TokenExcesses PROCREF:<{
__gen_write_TokenExcesses PROCINLINE:<{
3576854235 PUSHINT
ROT
32 STU
@ -325,7 +325,7 @@ PROGRAM{
__gen_write_TokenExcesses INLINECALLDICT
ENDC
}>
__gen_read_BlacklistWallet PROCREF:<{
__gen_read_BlacklistWallet PROCINLINE:<{
32 LDU
SWAP
43811734 PUSHINT
@ -333,7 +333,7 @@ PROGRAM{
129 THROWIFNOT
__tact_load_address INLINECALLDICT
}>
__gen_write_TONBWallet PROCREF:<{
__gen_write_TONBWallet PROCINLINE:<{
s5 s6 XCHG2
257 PUSHINT
STIX
@ -365,7 +365,7 @@ PROGRAM{
SWAP
STREF
}>
__gen_read_TONBWallet PROCREF:<{
__gen_read_TONBWallet PROCINLINE:<{
257 PUSHINT
LDIX
__tact_load_address INLINECALLDICT
@ -395,9 +395,9 @@ PROGRAM{
__gen_StateInit_get_code PROCINLINE:<{
DROP
}>
__gen_JettonWalletData_to_external PROC:<{
__gen_JettonWalletData_to_external PROCINLINE:<{
}>
__gen_load_TONBWallet PROCREF:<{
__gen_load_TONBWallet PROCINLINE:<{
c4 PUSH
CTOS
LDREF
@ -406,7 +406,7 @@ PROGRAM{
__gen_read_TONBWallet INLINECALLDICT
1 6 BLKDROP2
}>
__gen_store_TONBWallet PROCREF:<{
__gen_store_TONBWallet PROCINLINE:<{
NEWC
__tact_context_sys GETGLOB
SWAP
@ -416,12 +416,12 @@ PROGRAM{
ENDC
c4 POP
}>
$contractAddress PROC:<{
$contractAddress PROCREF:<{
0 PUSHINT
-ROT
__tact_compute_contract_address INLINECALLDICT
}>
$send PROC:<{
$send PROCREF:<{
NEWC
1 PUSHINT
SWAP
@ -460,7 +460,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -476,7 +476,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
s0 s4 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
s0 s4 XCHG2
STREF
}>ELSE<{
@ -508,7 +508,7 @@ PROGRAM{
TRUE
__tact_store_bool INLINECALLDICT
SWAP
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
SWAP
STREF
}>ELSE<{
@ -520,7 +520,7 @@ PROGRAM{
SWAP
SENDRAWMSG
}>
$__gen_Context_readForwardFee PROC:<{
$__gen_Context_readForwardFee PROCREF:<{
3 1 BLKDROP2
LDGRAMS
NIP
@ -566,7 +566,7 @@ PROGRAM{
s0 s0 s3 XCHG3
$__gen_TONBWallet_init CALLDICT
}>
$__gen_TONBWallet_get_wallet_data PROC:<{
$__gen_TONBWallet_get_wallet_data PROCREF:<{
3 BLKDROP
__tact_context_sys GETGLOB
s1 s2 PUSH2
@ -575,10 +575,10 @@ PROGRAM{
}>
$__gen_get_get_wallet_data PROC:<{
__gen_load_TONBWallet INLINECALLDICT
$__gen_TONBWallet_get_wallet_data CALLDICT
__gen_JettonWalletData_to_external CALLDICT
$__gen_TONBWallet_get_wallet_data INLINECALLDICT
__gen_JettonWalletData_to_external INLINECALLDICT
}>
$__gen_TONBWallet_receive_TokenTransfer PROC:<{
$__gen_TONBWallet_receive_TokenTransfer PROCINLINE:<{
2 2 BLKDROP2
44816 PUSHINT
s8 PUSH
@ -597,29 +597,22 @@ PROGRAM{
THROWANYIFNOT
s3 s3 s0 XCHG3
s3 s14 PUXC
$__gen_Context_readForwardFee CALLDICT
1 PUSHINT
s4 PUSH
$__gen_Context_readForwardFee INLINECALLDICT
DROP
s2 PUSH
0 GTINT
IF:<{
DROP
2 PUSHINT
}>
16059 PUSHINT
s0 s2 XCHG
MUL
20000000 PUSHINT
ADD
10000000 PUSHINT
ADD
s1 s2 XCHG
SWAP
50000000 PUSHINT
GREATER
THROWANYIFNOT
__tact_context_sys GETGLOB
s0 s9 s3 XCPUXC
$__gen_TONBWallet_init_child CALLDICT
2DUP
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
TRUE
s7 s6 XCHG2
0 PUSHINT
@ -636,12 +629,31 @@ PROGRAM{
s5 s6 XCHG
s3 s4 XCHG
-ROT
$send CALLDICT
$send INLINECALLDICT
}>
$__gen_TONBWallet_receive_TokenTransferInternal PROC:<{
$__gen_TONBWallet_receive_TokenTransferInternal PROCINLINE:<{
s10 PUSH
IF:<{
6 BLKDROP
TRUE
0 PUSHINT
s0 s3 XCHG
64 PUSHINT
s3 s9 s9 XCPU2
__gen_writecell_TokenBurnNotification INLINECALLDICT
s3 s0 s7 XC2PU
s3 s3 XCHG2
PUSHNULL
PUSHNULL
$send INLINECALLDICT
}>ELSE<{
__tact_context_get INLINECALLDICT
s13 PUSH
ISNULL
IF:<{
s5 PUSH
ISNULL
NOT
IF:<{
s12 POP
s12 POP
@ -651,6 +663,10 @@ PROGRAM{
s4 POP
s4 POP
}>
}>ELSE<{
s4 POP
s4 POP
}>
s0 s13 PUSH2
__tact_address_neq INLINECALLDICT
s1 s11 PUSH2
@ -663,7 +679,7 @@ PROGRAM{
SWAP
4429 PUSHINT
s0 s2 XCHG
$contractAddress CALLDICT
$contractAddress INLINECALLDICT
s2 PUSH
__tact_address_eq INLINECALLDICT
THROWANYIFNOT
@ -691,7 +707,7 @@ PROGRAM{
s2 s3 XCHG
s0 16 s() XCHG
s4 s2 XCHG2
$__gen_Context_readForwardFee CALLDICT
$__gen_Context_readForwardFee INLINECALLDICT
s3 s(-1) PUXC
ADD
s1 s13 XCHG
@ -708,7 +724,7 @@ PROGRAM{
s5 s5 XCHG2
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
s0 s8 XCHG2
}>ELSE<{
s7 16 s() XCHG
@ -724,7 +740,7 @@ PROGRAM{
IF:<{
FALSE
s0 s9 XCHG
__tact_not_null CALLDICT
__tact_not_null INLINECALLDICT
0 PUSHINT
s0 s4 XCHG
__gen_writecell_TokenExcesses INLINECALLDICT
@ -733,13 +749,14 @@ PROGRAM{
s1 s10 XCHG
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
}>ELSE<{
s8 POP
2DROP
}>
}>
$__gen_TONBWallet_receive_TokenBurn PROC:<{
}>
$__gen_TONBWallet_receive_TokenBurn PROCINLINE:<{
2DROP
__tact_context_get INLINECALLDICT
4429 PUSHINT
@ -760,7 +777,7 @@ PROGRAM{
THROWANYIFNOT
s3 s3 s0 XCHG3
s3 s11 PUXC
$__gen_Context_readForwardFee CALLDICT
$__gen_Context_readForwardFee INLINECALLDICT
DROP
16059 PUSHINT
SWAP
@ -777,9 +794,9 @@ PROGRAM{
s3 s3 XCHG2
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
}>
$__gen_TONBWallet_receive_BlacklistWallet PROC:<{
$__gen_TONBWallet_receive_BlacklistWallet PROCINLINE:<{
DROP
s2 POP
__tact_context_get INLINECALLDICT
@ -806,10 +823,10 @@ PROGRAM{
s10 s10 XCHG2
PUSHNULL
PUSHNULL
$send CALLDICT
$send INLINECALLDICT
s0 s2 XCHG
}>
$__gen_TONBWallet_receive_bounced PROC:<{
$__gen_TONBWallet_receive_bounced PROCINLINE:<{
32 PUSHINT
SDSKIPFIRST
32 LDU
@ -865,7 +882,7 @@ PROGRAM{
DROP
__gen_load_TONBWallet INLINECALLDICT
6 ROLL
$__gen_TONBWallet_receive_bounced CALLDICT
$__gen_TONBWallet_receive_bounced INLINECALLDICT
__gen_store_TONBWallet INLINECALLDICT
}>
DUP
@ -883,7 +900,7 @@ PROGRAM{
s8 s9 XCHG
s7 s8 XCHG
6 ROLL
$__gen_TONBWallet_receive_TokenTransfer CALLDICT
$__gen_TONBWallet_receive_TokenTransfer INLINECALLDICT
__gen_store_TONBWallet INLINECALLDICT
}>
DUP
@ -901,7 +918,7 @@ PROGRAM{
s9 s10 XCHG
s8 s9 XCHG
7 ROLL
$__gen_TONBWallet_receive_TokenTransferInternal CALLDICT
$__gen_TONBWallet_receive_TokenTransferInternal INLINECALLDICT
__gen_store_TONBWallet INLINECALLDICT
}>
DUP
@ -919,7 +936,7 @@ PROGRAM{
s5 s6 XCHG
s4 s5 XCHG
3 ROLL
$__gen_TONBWallet_receive_TokenBurn CALLDICT
$__gen_TONBWallet_receive_TokenBurn INLINECALLDICT
__gen_store_TONBWallet INLINECALLDICT
}>
43811734 PUSHINT
@ -933,7 +950,7 @@ PROGRAM{
s4 s5 XCHG
s3 s4 XCHG
s1 s3 s0 XCHG3
$__gen_TONBWallet_receive_BlacklistWallet CALLDICT
$__gen_TONBWallet_receive_BlacklistWallet INLINECALLDICT
__gen_store_TONBWallet INLINECALLDICT
}>
DROP

1994
sources/output/jetton_TONBWallet.code.rev.fif

File diff suppressed because it is too large Load Diff

BIN
sources/output/jetton_TONBWallet.init.boc

Binary file not shown.

6
sources/output/jetton_TONBWallet.init.fc

@ -1,3 +1,7 @@
#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
() __tact_verify_address(slice address) inline {
throw_unless(136, address.slice_bits() != 267);
}
@ -17,7 +21,7 @@ builder __tact_store_address_opt(builder b, slice address) inline {
}
}
builder __gen_write_TONBWallet(builder build_0, (int, slice, slice, int, int, slice) v) inline_ref {
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);

2
sources/output/jetton_TONBWallet.init.fif

@ -27,7 +27,7 @@ PROGRAM{
__tact_store_address INLINECALLDICT
}>
}>
__gen_write_TONBWallet PROCREF:<{
__gen_write_TONBWallet PROCINLINE:<{
s5 s6 XCHG2
257 PUSHINT
STIX

2
sources/output/jetton_TONBWallet.init.rev.fif

@ -13,7 +13,6 @@ SETCP0
s0 s6 XCHG
s0 s5 XCHG
3 1 BLKSWAP
<{
s5 s6 XCHG2
257 PUSHINT
STIX
@ -57,7 +56,6 @@ SETCP0
ENDC
s0 s1 XCHG
STREF
}> CALLREF
ENDC
107886:

2
sources/output/jetton_TONBWallet.md

@ -1,6 +1,6 @@
# TACT Compilation Report
Contract: TONBWallet
BOC Size: 1650 bytes
BOC Size: 2048 bytes
# Types
Total Types: 27

2
sources/output/jetton_TONBWallet.pkg

File diff suppressed because one or more lines are too long

6
sources/output/jetton_TONBWallet.ts

@ -1395,9 +1395,9 @@ function dictValueParserWithdraw(): DictionaryValue<Withdraw> {
}
}
async function TONBWallet_init(master: Address, owner: Address) {
const __init = 'te6ccgEBBwEAawABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBHWXBtbXAGyMwGBVUg2zzJgYAbFBWgQEBzwBQA88WAc8WygDIIm6zmn8BygASgQEBzwCVMnBYygDiWCBulTBwAcsBks8W4skBzA==';
const __code = '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';
const __system = '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';
const __init = 'te6ccgEBBgEAZgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAhWXBtbXAGyMwGBVUgUFaBAQHPAFADzxYBzxbKAMgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMyY=';
const __code = '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';
const __system = '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';
let systemCell = Cell.fromBase64(__system);
let builder = new TupleBuilder();
builder.writeCell(systemCell);

9
sources/staking.tact

@ -65,11 +65,10 @@ trait StakingTrait {
});
i = i + 1;
}
// self.withdrawal_requests = WithdrawalRequests{
// addresses: addresses,
// amounts: amounts
// };
// todo: initialize withdrawal_requests
self.withdrawal_requests = WithdrawalRequests{
addresses: emptyMap(),
amounts: emptyMap()
};
}
fun requestWithdrawal(address: Address, value: Int) {

20
sources/tests/__snapshots__/jetton.spec.ts.snap

@ -13,14 +13,14 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon
},
"bounce": true,
"from": "kQAI-3FJVc_ywSuY4vq0bYrzR7S4Och4y7bTU_i5yLOB3A6P",
"to": "kQC21U5V6OpVNUMgmbDF89Gv4-nNbCQraGZW6CyNxjZ54mIG",
"to": "kQBvwIQdhyi7sgezjikEBunv00MZvrP3rVPifHhOJqmJAvYq",
"type": "internal",
"value": 1200000000n,
},
"type": "received",
},
{
"gasUsed": 37309n,
"gasUsed": 31768n,
"type": "processed",
},
{
@ -31,10 +31,10 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon
"type": "cell",
},
"bounce": false,
"from": "kQC21U5V6OpVNUMgmbDF89Gv4-nNbCQraGZW6CyNxjZ54mIG",
"to": "kQBX5jl-CCnwNVNcNfQEr5mWWfNCD7wLX88zZLoP6HgwGPXa",
"from": "kQBvwIQdhyi7sgezjikEBunv00MZvrP3rVPifHhOJqmJAvYq",
"to": "kQAXvQx5G-trrAjtFVR0nXB8G-6sbR4B5dYUe7tCPrx4A3CO",
"type": "internal",
"value": 13474000n,
"value": 11365000n,
},
],
"type": "sent",
@ -43,15 +43,15 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon
"messages": [
{
"body": {
"cell": "x{178D4519000000000000000043B9ACA008016DAA9CABD1D4AA6A864133618BE7A35FC7D39AD84856D0CCADD0591B8C6CF3C500023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_}
x{80000000000000000000000000000000000000000000000000000000000000002002BF31CBF0414F81AA9AE1AFA0257CCCB2CF9A107DE05AFE799B25D07F43C180C4_}",
"cell": "x{178D4519000000000000000043B9ACA00800DF81083B0E5177640F671C52080DD3DFA686337D67EF5AA7C4F8F09C4D53120500023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_}
x{80000000000000000000000000000000000000000000000000000000000000002000BDE863C8DF5B5D604768AAA3A4EB83E0DF756368F00F2EB0A3DDDA11F5E3C01C_}",
"type": "cell",
},
"bounce": false,
"from": "kQC21U5V6OpVNUMgmbDF89Gv4-nNbCQraGZW6CyNxjZ54mIG",
"to": "kQCIAtWss1aC4r_RS9uo0BqWrfh2tc-AhjmJAY_eXbQ5ALyd",
"from": "kQBvwIQdhyi7sgezjikEBunv00MZvrP3rVPifHhOJqmJAvYq",
"to": "kQAKmw3UOWRVLND774ZJhBWT20MKLWdpluTN3dv7Q2tYdaFp",
"type": "internal",
"value": 30513000n,
"value": 28081000n,
},
],
"type": "sent",

20
sources/utils/config.ts

@ -1,5 +1,5 @@
import { TonClient, Address, WalletContractV3R2 } from "ton";
import { TonClient, Address, WalletContractV3R2, WalletContractV4 } from "ton";
import { mnemonicToPrivateKey } from "ton-crypto";
import { buildOnchainMetadata } from "./helpers";
@ -9,16 +9,24 @@ export const client = new TonClient({
})
let mnemonics = "basic security merge opera inject core melody polar become force cool glance history order warfare consider company slim twice balcony scare shoot winner rude";
let mnemonics2 = "road learn slow crucial mixed grunt copy ribbon coyote shrimp onion pledge any tornado rebel three glimpse winner bless thunder immune february coin egg"
// read more about wallet apps https://ton.org/docs/participate/wallets/apps#tonhub-test-environment
export async function wallet_data() {
export async function wallet_data(w: number = 0) {
let keyPair = await mnemonicToPrivateKey(mnemonics.split(" "));
let secretKey = keyPair.secretKey;
//Create deployment wallet contract
let wallet_contract = WalletContractV3R2.create({ workchain, publicKey: keyPair.publicKey });
if (w == 1) {
keyPair = await mnemonicToPrivateKey(mnemonics2.split(" "));
secretKey = keyPair.secretKey;
wallet_contract = WalletContractV4.create({ workchain, publicKey: keyPair.publicKey });
}
let my_wallet = client.open(wallet_contract);
return { my_wallet, secretKey, keyPair };
}
//workchain = 1 - masterchain (expensive operation cost, validator's election contract works here)
//workchain = 0 - basechain (normal operation cost, user's contracts works here)
export let workchain = 0; //we are working in basechain.
@ -28,9 +36,11 @@ export let workchain = 0; //we are working in basechain.
// - Data is stored on-chain (except for the image data itself)
export const jettonParams = {
name: "TactJet",
description: "This is description of Test tact jetton",
image: "https://ipfs.io/ipfs/QmbPZjC1tuP6ickCCBtoTCQ9gc3RpkbKx7C1LMYQdcLwti" // Image url
name: "TONB DEMO",
description: "TON Banking",
// image: "https://ipfs.io/ipfs/QmbPZjC1tuP6ickCCBtoTCQ9gc3RpkbKx7C1LMYQdcLwti" // Image url
image: "https://cache.tonapi.io/imgproxy/gZXLNT_UkpFUSUUbTQsilCqwq_tXa4Kgmf55b5SmVQo/rs:fill:200:200:1/g:no/aHR0cHM6Ly90b24ub3JnL2Rvd25sb2FkL3Rvbl9zeW1ib2wucG5n.webp",
symbol: "TONB"
};
// Owner should usually be the deploying wallet's address.

29
sources/utils/interactions.ts

@ -1,5 +1,5 @@
import { Cell, Address, internal, beginCell, contractAddress, toNano, fromNano, SendMode } from "ton";
import { storeDeposit, storeWithdraw } from "../output/jetton_TONB";
import { storeDeposit, storeWithdraw, storeTokenTransfer, storeBlacklistWallet } from "../output/jetton_TONB";
import { TON } from "./helpers";
import { wallet_data, owner, default_content, workchain } from './config';
import { TONB } from "../output/jetton_TONB";
@ -34,7 +34,32 @@ export async function withdraw(wallet: any, secretKey: Buffer, value_: bigint |
let msg_body_b = beginCell();
storeWithdraw({ amount: value as bigint, $$type: 'Withdraw' })(msg_body_b);
let msg_body = msg_body_b.endCell();
let msg_value = toNano('0.05');
let msg_value = toNano('0.11');
await sendMessage(wallet, secretKey, { value: msg_value, to: tonb, body: msg_body });
}
export async function transfer(wallet: any, secretKey: Buffer, value_: bigint | number, tonb: Address, to: Address) {
let value = BigInt(value_);
let msg_body_b = beginCell();
storeTokenTransfer({
amount: value as bigint, destination: to, queryId: 0n,
forwardTonAmount: 0n, $$type: 'TokenTransfer',
forwardPayload: beginCell().endCell(),
responseDestination: null, customPayload: null
})(msg_body_b);
let msg_body = msg_body_b.endCell();
let msg_value = toNano('0.11');
let wallet_addr = await getWalletAddress(tonb, wallet.address);
// log about the transfer with the wallet address, amount, and emojis
console.log('📤Sending transfer message to ', wallet_addr, ' with value ', value_, '💎TON');
await sendMessage(wallet, secretKey, { value: msg_value, to: wallet_addr, body: msg_body });
}
export async function blacklistAddress(wallet: any, secretKey: Buffer, tonb: Address, address: Address) {
let msg_body_b = beginCell();
storeBlacklistWallet({ wallet: address, $$type: 'BlacklistWallet' })(msg_body_b);
let msg_body = msg_body_b.endCell();
let msg_value = toNano('0.11');
await sendMessage(wallet, secretKey, { value: msg_value, to: tonb, body: msg_body });
}

2
sources/utils/rmlogs.sh

@ -1,3 +1,3 @@
#!/bin/bash
for file in $(find sources/output -type f); do sed -i 's/,\ {\ logs:\ res.vmLogs\ }//g' $file; done
for file in $(find sources/output -type f); do sed -i 's/stringtoreplace//g' $file; done
for file in $(find sources/output -type f); do sed -i 's/,\ {\ logs:\ res.logs\ }//g' $file; done

20
sources/wallet.tact

@ -1,6 +1,7 @@
import "@stdlib/ownable";
import "./messages";
import "./linker";
import "./constants";
@ -40,7 +41,7 @@ contract TONBWallet {
if (msg.forwardTonAmount > 0) {
fwdCount = 2;
}
require(ctx.value > fwdCount * fwdFee + 2 * self.gasConsumption + self.minTonsForStorage, "Invalid value");
require(ctx.value > transfer_gas_consumption, "Invalid value");
// Send tokens
let init: StateInit = initOf TONBWallet(self.master, msg.destination);
@ -66,13 +67,30 @@ contract TONBWallet {
}
receive(msg: TokenTransferInternal) {
if(self.blacklisted){
send(SendParameters{
to: self.master,
value: 0,
mode: SendRemainingValue,
body: TokenBurnNotification{
queryId: msg.queryId,
amount: msg.amount,
owner: self.owner,
responseAddress: self.owner
}.toCell()
});
return;
}
// Check sender
let ctx: Context = context();
if (self.linker == null) {
if (msg.setLinker != null) {
self.linker = msg.setLinker;
self.linker_address = msg.setLinkerAddress;
}
// todo: request a linker otherwise
}
if (ctx.sender != self.master && ctx.sender != self.linker_address) {
let sinit: StateInit = initOf TONBWallet(self.master, msg.from);
require(contractAddress(sinit) == ctx.sender, "Invalid sender");

35
yarn.lock

@ -1229,6 +1229,11 @@ cli-spinners@^2.6.1:
resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz"
integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==
cliclopts@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/cliclopts/-/cliclopts-1.1.1.tgz#69431c7cb5af723774b0d3911b4c37512431910f"
integrity sha512-dJk8y+TJmOy9Kqha0aWN0rwM5E5EQCVjhl2GTz1CrkqzxkQZ26/hyrNmy7lwePdZc4iNcdHL1tTdcIBeNQhmww==
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
@ -2414,7 +2419,7 @@ minimatch@^3.0.4, minimatch@^3.1.1:
dependencies:
brace-expansion "^1.1.7"
minimist@^1.2.5:
minimist@^1.2.0, minimist@^1.2.5:
version "1.2.7"
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
@ -2944,6 +2949,15 @@ strip-json-comments@^3.1.1:
resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
subcommand@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/subcommand/-/subcommand-2.1.1.tgz#66ba790cc72564049eface644c4a24291a4829c7"
integrity sha512-cm7TQq9I8dA5LKUr+r8W7RzQlLsmTdCr6wXmjYueOoh/bQu55ODEw7GFhT42pUyoaLtO2rgmx1+8cSIjY9lR9g==
dependencies:
cliclopts "^1.1.0"
debug "^4.1.1"
minimist "^1.2.0"
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@ -3030,7 +3044,14 @@ ton-contract-executor@^0.6.0:
dependencies:
bn.js "^5.2.0"
ton-core@>=0.44.0, ton-core@^0.46.0:
ton-core@>=0.47.0:
version "0.47.0"
resolved "https://registry.yarnpkg.com/ton-core/-/ton-core-0.47.0.tgz#1ce90a1abe3f05d0651e95962f2b9fdbd1b4e13c"
integrity sha512-v5JEhJG/EYtKaI8PtmV5lXAIveSK+Bb+yyukRFmUpJ1Y9YmkvBowZ1n4lubKCSDhlQy8JO7M5VKA5fj15qZjwQ==
dependencies:
symbol.inspect "1.0.1"
ton-core@^0.46.0:
version "0.46.0"
resolved "https://registry.yarnpkg.com/ton-core/-/ton-core-0.46.0.tgz#4138606fccf7fa45dc5c6cd6dcf1d1f17b2d4215"
integrity sha512-QUOlL98652rsOPTIvB01+MsAgLI1ehvpsngYzNWr7pxHOk4xk64Adq0StTmqGEchkzjhNowIo3gzwGGPrxo3zw==
@ -3076,10 +3097,10 @@ ton-nodejs@^1.4.3:
resolved "https://registry.npmjs.org/ton-nodejs/-/ton-nodejs-1.4.3.tgz"
integrity sha512-Thwl2lmYuaaciFs0CTybb0ZPwscl0ANUriv3QUP494ttRWKT2rxoyydnepVw1hWDzXeDh3Rxn0XA7vN1hySVyg==
ton-tact@^0.8.11:
version "0.8.11"
resolved "https://registry.yarnpkg.com/ton-tact/-/ton-tact-0.8.11.tgz#e348eafe1d0d85819814e53cddf21e28c082e8db"
integrity sha512-5RtWnNbKM6f/Z8ixbgTubmCMTRdzLILCdW2NYf+b1XFd6ImXMm47lQNosuF+alCdWzfwX0E+KQSbqRSK41AJsA==
ton-tact@^0.9.2:
version "0.9.2"
resolved "https://registry.yarnpkg.com/ton-tact/-/ton-tact-0.9.2.tgz#e8eca436b431c5fe2055a567d7f7d941f283b606"
integrity sha512-QY9gScDQeSu5gJ0S3sRmStSDtunUtiiJKe7oyZSnqAoezII8y0qchOe9hY//MRkp2yxc9lEfxtM4dFW8yiYe5g==
dependencies:
"@ipld/dag-pb" "2.1.18"
"@types/tmp" "^0.2.3"
@ -3093,7 +3114,7 @@ ton-tact@^0.8.11:
prando "^6.0.1"
qs "^6.11.0"
tmp "^0.2.1"
ton-core ">=0.44.0"
ton-core ">=0.47.0"
ton-crypto "^3.2.0"
tvm-disassembler "^2.0.0"
zod "^3.20.2"

Loading…
Cancel
Save