From 79ca27256c965799b7413b364c38d3e77bf37738 Mon Sep 17 00:00:00 2001 From: ennucore Date: Fri, 3 Feb 2023 18:55:15 +0100 Subject: [PATCH] Linker --- package.json | 1 + sources/constants.tact | 6 + sources/jetton.tact | 7 +- sources/jetton_trait.tact | 41 +- sources/linker.tact | 17 +- sources/messages.tact | 12 +- sources/output/jetton_Linker.abi | 2 +- sources/output/jetton_Linker.code.boc | Bin 316 -> 348 bytes sources/output/jetton_Linker.code.fc | 28 +- sources/output/jetton_Linker.code.fif | 26 +- sources/output/jetton_Linker.code.rev.fif | 113 ++++-- sources/output/jetton_Linker.init.boc | Bin 107 -> 89 bytes sources/output/jetton_Linker.init.fc | 17 +- sources/output/jetton_Linker.init.fif | 14 +- sources/output/jetton_Linker.init.rev.fif | 23 +- sources/output/jetton_Linker.md | 20 +- sources/output/jetton_Linker.pkg | 2 +- sources/output/jetton_Linker.ts | 133 +++++-- sources/output/jetton_TONB.abi | 2 +- sources/output/jetton_TONB.code.boc | Bin 1506 -> 1684 bytes sources/output/jetton_TONB.code.fc | 79 +++- sources/output/jetton_TONB.code.fif | 146 +++++-- sources/output/jetton_TONB.code.rev.fif | 296 +++++++++++---- sources/output/jetton_TONB.md | 14 +- sources/output/jetton_TONB.pkg | 2 +- sources/output/jetton_TONB.ts | 106 ++++-- sources/output/jetton_TONBWallet.abi | 2 +- sources/output/jetton_TONBWallet.code.boc | Bin 1324 -> 1422 bytes sources/output/jetton_TONBWallet.code.fc | 77 ++-- sources/output/jetton_TONBWallet.code.fif | 145 ++++--- sources/output/jetton_TONBWallet.code.rev.fif | 359 +++++++++++++++--- sources/output/jetton_TONBWallet.init.boc | Bin 72 -> 91 bytes sources/output/jetton_TONBWallet.init.fc | 20 +- sources/output/jetton_TONBWallet.init.fif | 27 +- sources/output/jetton_TONBWallet.init.rev.fif | 29 +- sources/output/jetton_TONBWallet.md | 14 +- sources/output/jetton_TONBWallet.pkg | 2 +- sources/output/jetton_TONBWallet.ts | 108 ++++-- .../tests/__snapshots__/jetton.spec.ts.snap | 51 +-- sources/tests/jetton.spec.ts | 22 +- sources/wallet.tact | 14 +- 41 files changed, 1419 insertions(+), 558 deletions(-) create mode 100644 sources/constants.tact diff --git a/package.json b/package.json index eac4c40..7fcb86c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "scripts": { "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" }, "dependencies": { diff --git a/sources/constants.tact b/sources/constants.tact new file mode 100644 index 0000000..98a636b --- /dev/null +++ b/sources/constants.tact @@ -0,0 +1,6 @@ + +const gas_consumption: Int = ton("0.01"); +const withdraw_gas_consumption: Int = ton("0.01"); +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.04"); // TON to send to the wallet for the fees diff --git a/sources/jetton.tact b/sources/jetton.tact index 7517827..964b8e9 100644 --- a/sources/jetton.tact +++ b/sources/jetton.tact @@ -4,6 +4,7 @@ import "./wallet"; import "./linker"; import "./jetton_trait"; import "./staking"; +import "./constants"; message Deposit { amount: Int as coins; @@ -14,11 +15,6 @@ message Withdraw { } -const gas_consumption: Int = ton("0.01"); -const withdraw_gas_consumption: Int = ton("0.05"); -const deposit_gas_consumption: Int = ton("0.05"); - - contract TONB with TONBTrait { @@ -41,6 +37,7 @@ contract TONB with TONBTrait { receive(msg: Deposit) { let ctx: Context = context(); require(ctx.value >= deposit_gas_consumption, "not enough money for deposit"); + // require(ctx.value >= deposit_gas_consumption + msg.amount + linker_credit + wallet_credit, "not enough money for deposit"); self.mint(ctx.sender, msg.amount, ctx.sender); } diff --git a/sources/jetton_trait.tact b/sources/jetton_trait.tact index 17f2a20..71ef3c3 100644 --- a/sources/jetton_trait.tact +++ b/sources/jetton_trait.tact @@ -2,6 +2,7 @@ import "@stdlib/ownable"; import "./wallet"; import "./linker"; +import "./constants"; @interface("org.ton.jetton.master") @@ -88,34 +89,38 @@ trait TONBTrait with Ownable { // Create message let winit: StateInit = self.getJettonWalletInit(to); let walletAddress: Address = contractAddress(winit); - // let linker_init: StateInit = initOf Linker(self.n_linkers, walletAddress); - // let linker_address: Address = contractAddress(linker_init); - // send(SendParameters{ - // to: linker_address, - // value: 0, - // bounce: false, - // body: SetLinkerNeighbor{ - // neighbor: self.last_linker - // }.toCell(), - // code: linker_init.code, - // data: linker_init.data - // }); + let linker_init: StateInit = initOf Linker(self.n_linkers, walletAddress, myAddress()); + let linker_address: Address = contractAddress(linker_init); + send(SendParameters{ - to: walletAddress, - value: ton("0.2"), + to: linker_address, + value: linker_credit, bounce: false, - body: TokenTransferInternal{ + body: SetLinkerNeighbor{ + neighbor: self.last_linker + }.toCell(), + code: linker_init.code, + data: linker_init.data + }); + self.last_linker = linker_address; + self.n_linkers = self.n_linkers + 1; + let wallet_msg_body: Cell = TokenTransferInternal{ amount: amount, queryId: 0, from: myAddress(), responseAddress: responseAddress, forwardTonAmount: 0, - forwardPayload: emptySlice() - }.toCell(), + forwardPayload: emptySlice(), + setLinker: linker_address + }.toCell(); + send(SendParameters{ + to: walletAddress, + value: wallet_credit, + bounce: false, + body: wallet_msg_body, code: winit.code, data: winit.data }); - } fun burn(from: Address, amount: Int, responseAddress: Address?) { diff --git a/sources/linker.tact b/sources/linker.tact index 2458d72..e100a13 100644 --- a/sources/linker.tact +++ b/sources/linker.tact @@ -1,19 +1,18 @@ import "@stdlib/ownable"; import "./messages"; +import "./constants"; contract Linker { index: Int; master: Address; - owner: Address?; + owner: Address; neighbor: Address?; - init(index: Int, owner: Address) { + init(index: Int, owner: Address, master: Address) { self.index = index; self.owner = owner; - - let ctx: Context = context(); - self.master = ctx.sender; + self.master = master; } receive(msg: SetLinkerNeighbor) { @@ -21,4 +20,12 @@ contract Linker { require(ctx.sender == self.master, "Invalid sender"); self.neighbor = msg.neighbor; } + + get fun owner(): Address? { + return self.owner; + } + + get fun master(): Address { + return self.master; + } } diff --git a/sources/messages.tact b/sources/messages.tact index a88f1d9..0090a33 100644 --- a/sources/messages.tact +++ b/sources/messages.tact @@ -15,6 +15,7 @@ message(0x178d4519) TokenTransferInternal { responseAddress: Address?; forwardTonAmount: Int as coins; forwardPayload: Slice as remaining; + setLinker: Address?; } message(0x7362d09c) TokenNotification { @@ -61,10 +62,15 @@ struct JettonWalletData { walletCode: Cell; } -message InitLinker { - owner: Address; +message SetLinkerNeighbor { + neighbor: Address?; } -message SetLinkerNeighbor { +message InitLinker { neighbor: Address?; + walletAmount: Int; + walletCode: Cell; + walletData: Cell; + walletAddress: Address; + responseAddress: Address?; } diff --git a/sources/output/jetton_Linker.abi b/sources/output/jetton_Linker.abi index dde4a39..fc4733b 100644 --- a/sources/output/jetton_Linker.abi +++ b/sources/output/jetton_Linker.abi @@ -1 +1 @@ -{"name":"Linker","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"InitLinker","header":1161642861,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"SetLinkerNeighbor"}}],"getters":[],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file +{"name":"Linker","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}},{"name":"setLinker","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"InitLinker","header":1740669268,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}},{"name":"walletAmount","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletData","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletAddress","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"SetLinkerNeighbor"}}],"getters":[{"name":"owner","arguments":[],"returnType":{"kind":"simple","type":"address","optional":true}},{"name":"master","arguments":[],"returnType":{"kind":"simple","type":"address","optional":false}}],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_Linker.code.boc b/sources/output/jetton_Linker.code.boc index 295da6bbed02f913032fac62f632fca62c46f56f..a1454b0578dfba2ea9ac18e59f1e79b25aff98cd 100644 GIT binary patch delta 255 zcmV%hn55s5e5eW0aytNk+&;<2mm}#G=TvD&j10>76H!|$XFn5l`wDt%K?(l z7UIbP%m4>bHSjnB0U!$u00{&L*TCQa9}IpFTgevSL{m(OF~NMjAOQ`&DDK(kfNT*0 z0U!?$08P8S7$*hJ!`0Ht=dtKc!<}TPQMPC&3Eg8-(zZv-GA%mt-`^G^m;ntsxm(?{ z&j9EV0T%5<(9{9=V%t1y6cPYLfdK*60Qx`y0s24z0n`D|`amJq3jxCbkpYr1ZQ?N$ FLohUnTLb_A delta 222 zcmcb^w1>%O>$^Ecj7;2&42%X0j3WOTzAO>`vggwYZbl}?BqnAirZX(8489A?7qdLr zd82AqWXv~P&Kt#RrgE8`WqD}5CMzoJ#LqO><#Ex!9~~*4sNtZUck?-8`!p62Hg*mM z`CZ8$n(ldQXHuG#;@QXj^d+O%TbB!07=I+)w#gCUoLHe9#l;ZS$jEq|;g)eco874ALGR%F%c!lu-s)(V8vjIaufC*5;c?QPwVvGuTQw<6jPcu$BFZSp}1Tya= G;~4;+lvViv diff --git a/sources/output/jetton_Linker.code.fc b/sources/output/jetton_Linker.code.fc index f50673d..a515a11 100644 --- a/sources/output/jetton_Linker.code.fc +++ b/sources/output/jetton_Linker.code.fc @@ -52,7 +52,7 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline var (v'index, v'master, v'owner, v'neighbor) = v; build_0 = build_0.store_int(v'index, 257); build_0 = __tact_store_address(build_0, v'master); - build_0 = __tact_store_address_opt(build_0, v'owner); + build_0 = __tact_store_address(build_0, v'owner); var build_1 = begin_cell(); build_1 = __tact_store_address_opt(build_1, v'neighbor); build_0 = store_ref(build_0, build_1.end_cell()); @@ -62,7 +62,7 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline (slice, ((int, slice, slice, slice))) __gen_read_Linker(slice sc_0) inline_ref { var v'index = sc_0~load_int(257); var v'master = sc_0~__tact_load_address(); - var v'owner = sc_0~__tact_load_address_opt(); + var v'owner = sc_0~__tact_load_address(); slice sc_1 = sc_0~load_ref().begin_parse(); var v'neighbor = sc_1~__tact_load_address_opt(); return (sc_0, (v'index, v'master, v'owner, v'neighbor)); @@ -81,6 +81,28 @@ builder __gen_write_Linker(builder build_0, (int, slice, slice, slice) v) inline set_data(b.end_cell()); } +slice $__gen_Linker_owner((int, slice, slice, slice) $self) impure { + var (($self'index, $self'master, $self'owner, $self'neighbor)) = $self; + return $self'owner; +} + +_ $__gen_get_owner() method_id(83229) { + var self = __gen_load_Linker(); + var res = $__gen_Linker_owner(self); + return res; +} + +slice $__gen_Linker_master((int, slice, slice, slice) $self) impure { + var (($self'index, $self'master, $self'owner, $self'neighbor)) = $self; + return $self'master; +} + +_ $__gen_get_master() method_id(120253) { + var self = __gen_load_Linker(); + var res = $__gen_Linker_master(self); + return res; +} + (((int, slice, slice, slice)), ()) $__gen_Linker_receive_SetLinkerNeighbor((int, slice, slice, slice) $self, (slice) $msg) impure { var ($self'index, $self'master, $self'owner, $self'neighbor) = $self; var ($msg'neighbor) = $msg; @@ -129,5 +151,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmT79j24zg2Re4mVCSdgbcXVAfBwfhsZveFUwQHpdgYjCU"; + return "ipfs://QmXsiG6UvpNzjujBxShses6JYADwX9LFvLtVUBva7kHxgm"; } \ No newline at end of file diff --git a/sources/output/jetton_Linker.code.fif b/sources/output/jetton_Linker.code.fif index 39bbc43..2875ed6 100644 --- a/sources/output/jetton_Linker.code.fif +++ b/sources/output/jetton_Linker.code.fif @@ -11,6 +11,10 @@ PROGRAM{ DECLPROC __gen_read_Linker DECLPROC __gen_load_Linker DECLPROC __gen_store_Linker + DECLPROC $__gen_Linker_owner + 83229 DECLMETHOD $__gen_get_owner + DECLPROC $__gen_Linker_master + 120253 DECLMETHOD $__gen_get_master DECLPROC $__gen_Linker_receive_SetLinkerNeighbor DECLPROC recv_internal 113617 DECLMETHOD supported_interfaces @@ -76,7 +80,7 @@ PROGRAM{ SWAP __tact_store_address INLINECALLDICT SWAP - __tact_store_address_opt INLINECALLDICT + __tact_store_address INLINECALLDICT NEWC ROT __tact_store_address_opt INLINECALLDICT @@ -89,7 +93,7 @@ PROGRAM{ LDIX __tact_load_address INLINECALLDICT SWAP - __tact_load_address_opt INLINECALLDICT + __tact_load_address INLINECALLDICT SWAP LDREF SWAP @@ -118,6 +122,22 @@ PROGRAM{ ENDC c4 POP }> + $__gen_Linker_owner PROC:<{ + s1 s3 XCHG + 3 BLKDROP + }> + $__gen_get_owner PROC:<{ + __gen_load_Linker INLINECALLDICT + $__gen_Linker_owner CALLDICT + }> + $__gen_Linker_master PROC:<{ + s2 s3 XCHG + 3 BLKDROP + }> + $__gen_get_master PROC:<{ + __gen_load_Linker INLINECALLDICT + $__gen_Linker_master CALLDICT + }> $__gen_Linker_receive_SetLinkerNeighbor PROC:<{ NIP __tact_context_get INLINECALLDICT @@ -180,6 +200,6 @@ PROGRAM{ 209801025412363888721030803524359905849 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d5437396a32347a67325265346d564353646762635856416642776668735a76654655775148706467596a4355} PUSHSLICE + x{697066733a2f2f516d58736947365576704e7a6a756a42785368736573364a5941447758394c46764c745655427661376b4878676d} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_Linker.code.rev.fif b/sources/output/jetton_Linker.code.rev.fif index 48648ea..eb0a123 100644 --- a/sources/output/jetton_Linker.code.rev.fif +++ b/sources/output/jetton_Linker.code.rev.fif @@ -52,17 +52,7 @@ SETCP0 s0 s1 XCHG s0 s1 XCHG LDMSGADDR - s1 PUSH - 2 PLDU - 0 NEQINT - <{ - s0 s1 XCHG - }> PUSHCONT - <{ - s1 POP - PUSHNULL - }> PUSHCONT - IFELSE + s0 s1 XCHG s0 s1 XCHG LDREF s0 s1 XCHG @@ -108,7 +98,7 @@ SETCP0 s1 POP s3 s4 XCHG s1 s3 s0 XCHG3 - 13 CALLDICT + 15 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -122,18 +112,7 @@ SETCP0 s0 s1 XCHG STSLICER s0 s1 XCHG - s0 PUSH - ISNULL - <{ - s0 POP - 0 PUSHINT - s0 s1 XCHG - 2 STU - }> PUSHCONT - <{ - STSLICER - }> PUSHCONT - IFELSE + STSLICER NEWC ROT s0 PUSH @@ -161,6 +140,14 @@ SETCP0 130 THROW 13: + s1 s3 XCHG + 3 BLKDROP + + 14: + s2 s3 XCHG + 3 BLKDROP + + 15: s1 POP 1 GETGLOBVAR 4 UNTUPLE @@ -171,9 +158,87 @@ SETCP0 SDEQ THROWANYIFNOT + owner: + <{ + c4 PUSH + CTOS + LDREF + s0 s1 XCHG + 2 SETGLOBVAR + <{ + 257 PUSHINT + LDI + LDMSGADDR + s0 s1 XCHG + s0 s1 XCHG + LDMSGADDR + s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG + s3 s3 s0 XCHG3 + }> CALLREF + 1 4 BLKDROP2 + }> CALLREF + 13 CALLDICT + 113617: 123515602279859691144772641439386770278 PUSHINT 209801025412363888721030803524359905849 PUSHINT + + 120253: + <{ + c4 PUSH + CTOS + LDREF + s0 s1 XCHG + 2 SETGLOBVAR + <{ + 257 PUSHINT + LDI + LDMSGADDR + s0 s1 XCHG + s0 s1 XCHG + LDMSGADDR + s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG + s3 s3 s0 XCHG3 + }> CALLREF + 1 4 BLKDROP2 + }> CALLREF + 14 CALLDICT ) 19 DICTPUSHCONST DICTIGETJMPZ 11 THROWARG diff --git a/sources/output/jetton_Linker.init.boc b/sources/output/jetton_Linker.init.boc index 27077edb4f87b9870e92e96e943d2313760c0856..21a6a4c720dd52b513f0e06402d88a36257396ed 100644 GIT binary patch delta 66 zcmd0f __tact_verify_address PROCINLINE:<{ SBITS 267 PUSHINT @@ -41,7 +34,7 @@ PROGRAM{ SWAP __tact_store_address INLINECALLDICT SWAP - __tact_store_address_opt INLINECALLDICT + __tact_store_address INLINECALLDICT NEWC ROT __tact_store_address_opt INLINECALLDICT @@ -51,13 +44,10 @@ PROGRAM{ }> $__gen_Linker_init PROC:<{ PUSHNULL - __tact_context_get INLINECALLDICT - s2 s3 XCHG - 3 BLKDROP s0 s4 XCHG NEWC STREF - s4 s4 s4 XCHG3 + s2 s4 XCHG2 __gen_write_Linker INLINECALLDICT ENDC }> diff --git a/sources/output/jetton_Linker.init.rev.fif b/sources/output/jetton_Linker.init.rev.fif index 1c9798f..f9e55b0 100644 --- a/sources/output/jetton_Linker.init.rev.fif +++ b/sources/output/jetton_Linker.init.rev.fif @@ -2,16 +2,12 @@ SETCP0 (:methods recv_internal: - 6: + 5: PUSHNULL - 1 GETGLOBVAR - 4 UNTUPLE - s2 s3 XCHG - 3 BLKDROP s0 s4 XCHG NEWC STREF - s4 s4 s4 XCHG3 + s2 s4 XCHG2 <{ s3 s4 XCHG2 257 PUSHINT @@ -19,18 +15,7 @@ SETCP0 s0 s1 XCHG STSLICER s0 s1 XCHG - s0 PUSH - ISNULL - <{ - s0 POP - 0 PUSHINT - s0 s1 XCHG - 2 STU - }> PUSHCONT - <{ - STSLICER - }> PUSHCONT - IFELSE + STSLICER NEWC ROT s0 PUSH @@ -52,7 +37,7 @@ SETCP0 ENDC 107886: - 6 CALLDICT + 5 CALLDICT ) 19 DICTPUSHCONST DICTIGETJMPZ 11 THROWARG diff --git a/sources/output/jetton_Linker.md b/sources/output/jetton_Linker.md index db0d284..efb789b 100644 --- a/sources/output/jetton_Linker.md +++ b/sources/output/jetton_Linker.md @@ -1,6 +1,6 @@ # TACT Compilation Report Contract: Linker -BOC Size: 316 bytes +BOC Size: 348 bytes # Types Total Types: 18 @@ -22,8 +22,8 @@ TLB: `token_transfer#0f8a7ea5 queryId:uint64 amount:coins destination:address re Signature: `TokenTransfer{queryId:uint64,amount:coins,destination:address,responseDestination:Maybe address,customPayload:Maybe ^cell,forwardTonAmount:coins,forwardPayload:remainder}` ## TokenTransferInternal -TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder = TokenTransferInternal` -Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder}` +TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder setLinker:Maybe address = TokenTransferInternal` +Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder,setLinker:Maybe address}` ## TokenNotification TLB: `token_notification#7362d09c queryId:uint64 amount:coins from:address forwardPayload:remainder = TokenNotification` @@ -53,14 +53,14 @@ Signature: `JettonData{totalSupply:int257,mintable:bool,owner:address,content:Ma TLB: `_ balance:int257 owner:address master:address walletCode:^cell = JettonWalletData` Signature: `JettonWalletData{balance:int257,owner:address,master:address,walletCode:^cell}` -## InitLinker -TLB: `init_linker#453d436d owner:address = InitLinker` -Signature: `InitLinker{owner:address}` - ## SetLinkerNeighbor TLB: `set_linker_neighbor#b3fcf4c1 neighbor:Maybe address = SetLinkerNeighbor` Signature: `SetLinkerNeighbor{neighbor:Maybe address}` +## InitLinker +TLB: `init_linker#67c08154 neighbor:Maybe address walletAmount:int257 walletCode:^cell walletData:^cell walletAddress:address responseAddress:Maybe address = InitLinker` +Signature: `InitLinker{neighbor:Maybe address,walletAmount:int257,walletCode:^cell,walletData:^cell,walletAddress:address,responseAddress:Maybe address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` @@ -78,4 +78,8 @@ TLB: `withdraw#60591510 amount:int257 = Withdraw` Signature: `Withdraw{amount:int257}` # Get Methods -Total Get Methods: 0 +Total Get Methods: 2 + +## owner + +## master diff --git a/sources/output/jetton_Linker.pkg b/sources/output/jetton_Linker.pkg index cb1e68f..eb5c142 100644 --- a/sources/output/jetton_Linker.pkg +++ b/sources/output/jetton_Linker.pkg @@ -1 +1 @@ -{"name":"Linker","code":"te6ccgECCwEAATAAART/APSkE/S88sgLAQIBYgIDAgLMBAUATaF3owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4Bu2ecBh5YEFAYHCAAfumPwgt5ItwIimmRJjgvl6QEW7UTQ1AH4Yts8bBQJADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBGMj4QgHMVTDbPMntVAoAWoEBAdcA+kABAfpAIdcLAcMAkQGSMW3iAdQB0PpAIdcLAcMAkQGSMW3iMRRDMABQUDSBAQHPAAHPFgEgbpUwcAHLAZLPFuLIWCBulTBwAcsBks8W4skBzA==","abi":"{\"name\":\"Linker\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"InitLinker\",\"header\":1161642861,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"SetLinkerNeighbor\"}}],\"getters\":[],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAYAABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4A0AAdQBI2m34QW8kECNfAwTIzERE2zzJgYAUFA0gQEBzwABzxYBIG6VMHABywGSzxbiyFggbpUwcAHLAZLPFuLJAcw=","args":[{"name":"index","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"te6cckECDQEAAToAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWIFBABNoXejBOC52Hq6WVz2PQnYc6yVCjbNBOE7rGpaVsj5ZkWnXlv74sRzAgLMBwYAH7pj8ILeSLcCIppkSY4L5ekDi9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfBBCFn+emDdR8dtngJtnhiIGiCYeAbtnnAYeWBBQLCggBGMj4QgHMVTDbPMntVAkAUFA0gQEBzwABzxYBIG6VMHABywGSzxbiyFggbpUwcAHLAZLPFuLJAcwANtMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4gEW7UTQ1AH4Yts8bBQMAFqBAQHXAPpAAQH6QCHXCwHDAJEBkjFt4gHUAdD6QCHXCwHDAJEBkjFt4jEUQzD4eYav"}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file +{"name":"Linker","code":"te6ccgECEwEAAVAAART/APSkE/S88sgLAQIBYgIDAgLMBAUCASANDgOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4B+2ecBh5YEFBEGBwIBWAkKADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBGMj4QgHMVTDbPMntVAgAPFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzAAHUTXwOAIBIAsMAAkECNfA4AAfDH4QW8kW4ERTTIkxwXy9IAENviju2eeAbBECASAPEABNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAQ25W92zzwDoEQEW7UTQ1AH4Yts8bBQSAESBAQHXAPpAAQH6QAEB1AHQ+kAh1wsBwwCRAZIxbeIxFEMw","abi":"{\"name\":\"Linker\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}},{\"name\":\"setLinker\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"InitLinker\",\"header\":1740669268,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"walletAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletData\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"SetLinkerNeighbor\"}}],\"getters\":[{\"name\":\"owner\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"master\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEATgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBE2W0EyMxQJNs8yYGADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcw=","args":[{"name":"index","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"te6cckECFQEAAVoAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWIJBAIBIAgFAgEgBwYBDblb3bPPAOgTAE27vRgnBc7D1dLK57HoTsOdZKhRtmgnCd1jUtK2R8syLTry398WI5gBDb4o7tnngGwTAgLMDwoCAVgOCwIBIA0MAB8MfhBbyRbgRFNMiTHBfL0gAAkECNfA4AAHUTXwOAOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4B+2ecBh5YEFBMSEAEYyPhCAcxVMNs8ye1UEQA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBFu1E0NQB+GLbPGwUFABEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMEhMYDc="}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file diff --git a/sources/output/jetton_Linker.ts b/sources/output/jetton_Linker.ts index c23d421..bb74ee0 100644 --- a/sources/output/jetton_Linker.ts +++ b/sources/output/jetton_Linker.ts @@ -247,6 +247,7 @@ export type TokenTransferInternal = { responseAddress: Address | null; forwardTonAmount: bigint; forwardPayload: Cell; + setLinker: Address | null; } export function storeTokenTransferInternal(src: TokenTransferInternal) { @@ -259,6 +260,9 @@ export function storeTokenTransferInternal(src: TokenTransferInternal) { b_0.storeAddress(src.responseAddress); b_0.storeCoins(src.forwardTonAmount); b_0.storeBuilder(src.forwardPayload.asBuilder()); + let b_1 = new Builder(); + b_1.storeAddress(src.setLinker); + b_0.storeRef(b_1.endCell()); }; } @@ -271,7 +275,9 @@ export function loadTokenTransferInternal(slice: Slice) { let _responseAddress = sc_0.loadMaybeAddress(); let _forwardTonAmount = sc_0.loadCoins(); let _forwardPayload = sc_0.asCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let sc_1 = sc_0.loadRef().beginParse(); + let _setLinker = sc_1.loadMaybeAddress(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function loadTupleTokenTransferInternal(source: TupleReader) { @@ -281,7 +287,8 @@ function loadTupleTokenTransferInternal(source: TupleReader) { let _responseAddress = source.readAddressOpt(); let _forwardTonAmount = source.readBigNumber(); let _forwardPayload = source.readCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let _setLinker = source.readAddressOpt(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function storeTupleTokenTransferInternal(source: TokenTransferInternal) { @@ -292,6 +299,7 @@ function storeTupleTokenTransferInternal(source: TokenTransferInternal) { builder.writeAddress(source.responseAddress); builder.writeNumber(source.forwardTonAmount); builder.writeSlice(source.forwardPayload); + builder.writeAddress(source.setLinker); return builder.build(); } @@ -668,85 +676,113 @@ function dictValueParserJettonWalletData(): DictionaryValue { } } } -export type InitLinker = { - $$type: 'InitLinker'; - owner: Address; +export type SetLinkerNeighbor = { + $$type: 'SetLinkerNeighbor'; + neighbor: Address | null; } -export function storeInitLinker(src: InitLinker) { +export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(1161642861, 32); - b_0.storeAddress(src.owner); + b_0.storeUint(3019699393, 32); + b_0.storeAddress(src.neighbor); }; } -export function loadInitLinker(slice: Slice) { +export function loadSetLinkerNeighbor(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 1161642861) { throw Error('Invalid prefix'); } - let _owner = sc_0.loadAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; + if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + let _neighbor = sc_0.loadMaybeAddress(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function loadTupleInitLinker(source: TupleReader) { - let _owner = source.readAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; +function loadTupleSetLinkerNeighbor(source: TupleReader) { + let _neighbor = source.readAddressOpt(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function storeTupleInitLinker(source: InitLinker) { +function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { let builder = new TupleBuilder(); - builder.writeAddress(source.owner); + builder.writeAddress(source.neighbor); return builder.build(); } -function dictValueParserInitLinker(): DictionaryValue { +function dictValueParserSetLinkerNeighbor(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); + buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); }, parse: (src) => { - return loadInitLinker(src.loadRef().beginParse()); + return loadSetLinkerNeighbor(src.loadRef().beginParse()); } } } -export type SetLinkerNeighbor = { - $$type: 'SetLinkerNeighbor'; +export type InitLinker = { + $$type: 'InitLinker'; neighbor: Address | null; + walletAmount: bigint; + walletCode: Cell; + walletData: Cell; + walletAddress: Address; + responseAddress: Address | null; } -export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { +export function storeInitLinker(src: InitLinker) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3019699393, 32); + b_0.storeUint(1740669268, 32); b_0.storeAddress(src.neighbor); + b_0.storeInt(src.walletAmount, 257); + b_0.storeRef(src.walletCode); + b_0.storeRef(src.walletData); + b_0.storeAddress(src.walletAddress); + let b_1 = new Builder(); + b_1.storeAddress(src.responseAddress); + b_0.storeRef(b_1.endCell()); }; } -export function loadSetLinkerNeighbor(slice: Slice) { +export function loadInitLinker(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1740669268) { throw Error('Invalid prefix'); } let _neighbor = sc_0.loadMaybeAddress(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = sc_0.loadIntBig(257); + let _walletCode = sc_0.loadRef(); + let _walletData = sc_0.loadRef(); + let _walletAddress = sc_0.loadAddress(); + let sc_1 = sc_0.loadRef().beginParse(); + let _responseAddress = sc_1.loadMaybeAddress(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function loadTupleSetLinkerNeighbor(source: TupleReader) { +function loadTupleInitLinker(source: TupleReader) { let _neighbor = source.readAddressOpt(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = source.readBigNumber(); + let _walletCode = source.readCell(); + let _walletData = source.readCell(); + let _walletAddress = source.readAddress(); + let _responseAddress = source.readAddressOpt(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { +function storeTupleInitLinker(source: InitLinker) { let builder = new TupleBuilder(); builder.writeAddress(source.neighbor); + builder.writeNumber(source.walletAmount); + builder.writeCell(source.walletCode); + builder.writeCell(source.walletData); + builder.writeAddress(source.walletAddress); + builder.writeAddress(source.responseAddress); return builder.build(); } -function dictValueParserSetLinkerNeighbor(): DictionaryValue { +function dictValueParserInitLinker(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); + buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); }, parse: (src) => { - return loadSetLinkerNeighbor(src.loadRef().beginParse()); + return loadInitLinker(src.loadRef().beginParse()); } } } @@ -922,15 +958,16 @@ function dictValueParserWithdraw(): DictionaryValue { } } } -async function Linker_init(index: bigint, owner: Address) { - const __init = 'te6ccgEBBwEAYAABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4A0AAdQBI2m34QW8kECNfAwTIzERE2zzJgYAUFA0gQEBzwABzxYBIG6VMHABywGSzxbiyFggbpUwcAHLAZLPFuLJAcw='; - const __code = 'te6ccgECCwEAATAAART/APSkE/S88sgLAQIBYgIDAgLMBAUATaF3owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4Bu2ecBh5YEFAYHCAAfumPwgt5ItwIimmRJjgvl6QEW7UTQ1AH4Yts8bBQJADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBGMj4QgHMVTDbPMntVAoAWoEBAdcA+kABAfpAIdcLAcMAkQGSMW3iAdQB0PpAIdcLAcMAkQGSMW3iMRRDMABQUDSBAQHPAAHPFgEgbpUwcAHLAZLPFuLIWCBulTBwAcsBks8W4skBzA=='; - const __system = 'te6cckECDQEAAToAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWIFBABNoXejBOC52Hq6WVz2PQnYc6yVCjbNBOE7rGpaVsj5ZkWnXlv74sRzAgLMBwYAH7pj8ILeSLcCIppkSY4L5ekDi9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfBBCFn+emDdR8dtngJtnhiIGiCYeAbtnnAYeWBBQLCggBGMj4QgHMVTDbPMntVAkAUFA0gQEBzwABzxYBIG6VMHABywGSzxbiyFggbpUwcAHLAZLPFuLJAcwANtMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4gEW7UTQ1AH4Yts8bBQMAFqBAQHXAPpAAQH6QCHXCwHDAJEBkjFt4gHUAdD6QCHXCwHDAJEBkjFt4jEUQzD4eYav'; +async function Linker_init(index: bigint, owner: Address, master: Address) { + const __init = 'te6ccgEBBwEATgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBE2W0EyMxQJNs8yYGADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcw='; + const __code = 'te6ccgECEwEAAVAAART/APSkE/S88sgLAQIBYgIDAgLMBAUCASANDgOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4B+2ecBh5YEFBEGBwIBWAkKADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBGMj4QgHMVTDbPMntVAgAPFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzAAHUTXwOAIBIAsMAAkECNfA4AAfDH4QW8kW4ERTTIkxwXy9IAENviju2eeAbBECASAPEABNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAQ25W92zzwDoEQEW7UTQ1AH4Yts8bBQSAESBAQHXAPpAAQH6QAEB1AHQ+kAh1wsBwwCRAZIxbeIxFEMw'; + const __system = 'te6cckECFQEAAVoAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWIJBAIBIAgFAgEgBwYBDblb3bPPAOgTAE27vRgnBc7D1dLK57HoTsOdZKhRtmgnCd1jUtK2R8syLTry398WI5gBDb4o7tnngGwTAgLMDwoCAVgOCwIBIA0MAB8MfhBbyRbgRFNMiTHBfL0gAAkECNfA4AAHUTXwOAOL24EOuk4Q/KmBBrhY/vAWhpgYC42GAAyL/IuHEA/SARKDM3gnwwgUit8EEIWf56YN1Hx22eAm2eGIgaIJh4B+2ecBh5YEFBMSEAEYyPhCAcxVMNs8ye1UEQA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMADbTHwGCELP89MG68uCB+kAh1wsBwwCRAZIxbeIBFu1E0NQB+GLbPGwUFABEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMEhMYDc='; let systemCell = Cell.fromBase64(__system); let builder = new TupleBuilder(); builder.writeCell(systemCell); builder.writeNumber(index); builder.writeAddress(owner); + builder.writeAddress(master); let __stack = builder.build(); let codeCell = Cell.fromBoc(Buffer.from(__code, 'base64'))[0]; let initCell = Cell.fromBoc(Buffer.from(__init, 'base64'))[0]; @@ -984,12 +1021,12 @@ const Linker_errors: { [key: number]: { message: string } } = { export class Linker implements Contract { - static async init(index: bigint, owner: Address) { - return await Linker_init(index,owner); + static async init(index: bigint, owner: Address, master: Address) { + return await Linker_init(index,owner,master); } - static async fromInit(index: bigint, owner: Address) { - const init = await Linker_init(index,owner); + static async fromInit(index: bigint, owner: Address, master: Address) { + const init = await Linker_init(index,owner,master); const address = contractAddress(0, init); return new Linker(address, init); } @@ -1021,4 +1058,18 @@ export class Linker implements Contract { } + async getOwner(provider: ContractProvider) { + let builder = new TupleBuilder(); + let source = (await provider.get('owner', builder.build())).stack; + let result = source.readAddressOpt(); + return result; + } + + async getMaster(provider: ContractProvider) { + let builder = new TupleBuilder(); + let source = (await provider.get('master', builder.build())).stack; + let result = source.readAddress(); + return result; + } + } \ No newline at end of file diff --git a/sources/output/jetton_TONB.abi b/sources/output/jetton_TONB.abi index 0c152a0..613f7a1 100644 --- a/sources/output/jetton_TONB.abi +++ b/sources/output/jetton_TONB.abi @@ -1 +1 @@ -{"name":"TONB","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"InitLinker","header":1161642861,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"Deposit"}},{"receiver":"internal","message":{"kind":"empty"}},{"receiver":"internal","message":{"kind":"typed","type":"Withdraw"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenUpdateContent"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurnNotification"}}],"getters":[{"name":"get_wallet_address","arguments":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"returnType":{"kind":"simple","type":"address","optional":false}},{"name":"get_jetton_data","arguments":[],"returnType":{"kind":"simple","type":"JettonData","optional":false}},{"name":"owner","arguments":[],"returnType":{"kind":"simple","type":"address","optional":false}}],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file +{"name":"TONB","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}},{"name":"setLinker","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"InitLinker","header":1740669268,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}},{"name":"walletAmount","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletData","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletAddress","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"Deposit"}},{"receiver":"internal","message":{"kind":"empty"}},{"receiver":"internal","message":{"kind":"typed","type":"Withdraw"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenUpdateContent"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurnNotification"}}],"getters":[{"name":"get_wallet_address","arguments":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"returnType":{"kind":"simple","type":"address","optional":false}},{"name":"get_jetton_data","arguments":[],"returnType":{"kind":"simple","type":"JettonData","optional":false}},{"name":"owner","arguments":[],"returnType":{"kind":"simple","type":"address","optional":false}}],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_TONB.code.boc b/sources/output/jetton_TONB.code.boc index 41e813fbb1c2ea12277de6d0da51c4d1517bbb14..1423e6d753bc809e3287fdd9f8ea333f922bc42b 100644 GIT binary patch delta 981 zcmZ{i?{8C87{||Zdk6Pd*R!qn_LdfQL1E*Etn0RJz-f0o?q&zb3dpQFVxup_NTe}p z7MW>#*B8bNO}QXM8q)v3_yYr@%o6)zrAxY?3y`X5W}?1@w{EU`Y`t{Fh>Bb`#39lq}DbD?yOtSfVRPt{dTm~9;gm*KEz$UlZc$s zR1Wi&1Gb##tC6~9;`qxlp8buXk;Hv?Wmd(4Xxr_p5w1qM@g#l|kK4NjJ8DhBZ3HU-3rOfr z(3m#wdXA!}mtuDpg|8c2o(b^xfKytn`s03U+18O1G-&gL{XI@T(AY!A(BmLT9zCAg zd#)H~gSOhAQ`a^Z8|i#1&jys3NE;bj`=KcP{u6P=Rw*Ww{Is zbY@?GqJIE6LU>M4h!971B6_p}pGR#Wfrd#ugBLXBhV$e}d16X*5q^$#%I+B=+$DTY zGY=iqz07KrE7`M6h65)EUk<q-*UeY> z)Q@kUPLpi%`uEtpmj1f)3)4A9y$TOej2@uaZ%{lRfj8JqnGJ@*wq}}-?l?di7UjGe zma$RH7<$H7zglHI!$w=i;q+0>ElZL5FxnHsua;TvZgDA2L=-oU=>`5g^VO}9she^* z-!Osx_woqRt>0PA>S|KsblAZ|6fYb`I~#{3?X}A@b#vR+d{?G$(_Ikj2(*7oBSczL gk~HL!Cx~>`aF^r@di@`-qewCFlK+Dmb+|J4H+Whqn*aa+ delta 783 zcmZvZT}V@57{}k|?5OALL*LDvogKIIG%deMkJC)^G^d^U)z|1l1P2Wx^1@0YLTF@; zbE(8Si5EtA5z$3ZUFbzjS+EOj)+98MSq!@f0!6$KkuG{y1YHC#KOUa{|9Rm5ypK&A z2E+8$liNU@29)(VVsMDrITVOS6M^#pnC8m1*1nJ2;VI}~SPFXd25ld@?N%=j=2y1O zr$g4g+!#?m=H?;Y^H{{)X))|38yE>O)1L-A21FhU=E#@}q{wToofj;$8~bowi?m&nl6k8@w?3TspXyG@=`g=ap5TSsuxLvXB~;CKTv$!toDGHI0W(UTI7;zbdz zS^N9BK!{zHnRQX6_O~B68IPU`F{-JBRz_$hrYf)Kr^ecm7vVV zg33j2lv$?UylV^1axGJuGuu9lDl;CVcx7@l9iEGd)oOHBi0U(^@wE}OcOVe|n%ZRJ zzos= 50000000)); + throw_unless(32366, ($ctx'value >= 10000000)); ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool)~$__gen_TONB_mint($ctx'sender, $msg'amount, $ctx'sender); return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool), ()); } @@ -385,7 +442,7 @@ _ $__gen_get_owner() method_id(83229) { var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool) = $self; var ($msg'amount) = $msg; var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get(); - throw_unless(6384, ($ctx'value >= 50000000)); + throw_unless(6384, ($ctx'value >= 10000000)); ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool)~$__gen_TONB_burn($ctx'sender, $msg'amount, $ctx'sender); return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool), ()); } @@ -485,5 +542,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://Qma6JYPtEyX4isBJUUKdLJZsPe3r5ig6X7NFfzn7hBBCFC"; + return "ipfs://QmPvEiZGrqt4f1VDKeQxyzgba7g5qVaCcnFiXAyVCz4R9o"; } \ No newline at end of file diff --git a/sources/output/jetton_TONB.code.fif b/sources/output/jetton_TONB.code.fif index d769bec..78c838b 100644 --- a/sources/output/jetton_TONB.code.fif +++ b/sources/output/jetton_TONB.code.fif @@ -20,9 +20,12 @@ PROGRAM{ DECLPROC __gen_write_TokenExcesses DECLPROC __gen_writecell_TokenExcesses DECLPROC __gen_read_TokenUpdateContent + DECLPROC __gen_write_SetLinkerNeighbor + DECLPROC __gen_writecell_SetLinkerNeighbor DECLPROC __gen_read_Deposit DECLPROC __gen_read_Withdraw DECLPROC __gen_write_TONBWallet + DECLPROC __gen_write_Linker DECLPROC __gen_write_TONB DECLPROC __gen_read_TONB DECLPROC __gen_StateInit_get_code @@ -37,6 +40,8 @@ PROGRAM{ DECLPROC $send DECLPROC $__gen_TONBWallet_init DECLPROC $__gen_TONBWallet_init_child + DECLPROC $__gen_Linker_init + DECLPROC $__gen_Linker_init_child DECLPROC $__gen_TONB_getJettonWalletInit DECLPROC $__gen_TONB_get_wallet_address 103289 DECLMETHOD $__gen_get_get_wallet_address @@ -157,13 +162,13 @@ PROGRAM{ }> __gen_write_TokenTransferInternal PROCREF:<{ 395134233 PUSHINT - s0 s7 XCHG2 + s0 s8 XCHG2 32 STU - s1 s5 XCHG + s1 s6 XCHG 64 STU - s0 s3 XCHG2 + s0 s4 XCHG2 STGRAMS - SWAP + ROT __tact_store_address INLINECALLDICT SWAP __tact_store_address_opt INLINECALLDICT @@ -171,10 +176,16 @@ PROGRAM{ STGRAMS SWAP STSLICER + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF }> __gen_writecell_TokenTransferInternal PROCREF:<{ NEWC - 6 -ROLL + 7 -ROLL __gen_write_TokenTransferInternal INLINECALLDICT ENDC }> @@ -239,6 +250,19 @@ PROGRAM{ }> SWAP }> + __gen_write_SetLinkerNeighbor PROCREF:<{ + 3019699393 PUSHINT + ROT + 32 STU + SWAP + __tact_store_address_opt INLINECALLDICT + }> + __gen_writecell_SetLinkerNeighbor PROCREF:<{ + NEWC + SWAP + __gen_write_SetLinkerNeighbor INLINECALLDICT + ENDC + }> __gen_read_Deposit PROCREF:<{ 32 LDU SWAP @@ -259,13 +283,34 @@ PROGRAM{ SWAP }> __gen_write_TONBWallet PROCREF:<{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX SWAP __tact_store_address INLINECALLDICT SWAP __tact_store_address INLINECALLDICT + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF + }> + __gen_write_Linker PROCREF:<{ + s3 s4 XCHG2 + 257 PUSHINT + STIX + SWAP + __tact_store_address INLINECALLDICT + SWAP + __tact_store_address INLINECALLDICT + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF }> __gen_write_TONB PROCREF:<{ s8 s7 XCHG2 @@ -477,11 +522,13 @@ PROGRAM{ SENDRAWMSG }> $__gen_TONBWallet_init PROC:<{ + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 __gen_write_TONBWallet INLINECALLDICT ENDC }> @@ -504,6 +551,35 @@ PROGRAM{ s0 s0 s3 XCHG3 $__gen_TONBWallet_init CALLDICT }> + $__gen_Linker_init PROC:<{ + PUSHNULL + s0 s4 XCHG + NEWC + STREF + s2 s4 XCHG2 + __gen_write_Linker INLINECALLDICT + ENDC + }> + $__gen_Linker_init_child PROC:<{ + s0 s3 XCHG + CTOS + LDDICT + DROP + NEWDICT + SWAP + 59979 PUSHINT + __tact_dict_get_code INLINECALLDICT + SWAP + 59979 PUSHINT + s2 PUSH + __tact_dict_set_code INLINECALLDICT + NEWC + STDICT + ENDC + 3 -ROLL + s0 s4 XCHG + $__gen_Linker_init CALLDICT + }> $__gen_TONB_getJettonWalletInit PROC:<{ __tact_context_sys GETGLOB MYADDR @@ -539,24 +615,50 @@ PROGRAM{ $__gen_TONB_getJettonWalletInit CALLDICT 2DUP $contractAddress CALLDICT + __tact_context_sys GETGLOB + MYADDR + s6 s2 s(-2) PU2XC + $__gen_Linker_init_child CALLDICT + 2DUP + $contractAddress CALLDICT FALSE - 200000000 PUSHINT + 20000000 PUSHINT + 0 PUSHINT + s0 s11 XCHG + __gen_writecell_SetLinkerNeighbor INLINECALLDICT + s3 PUSH + s3 s6 XCHG + s4 s1 s5 XCHG3 + s3 s12 XCHG + s1 s12 s0 XCHG3 + $send CALLDICT + s5 PUSH + s0 s5 XCHG + INC 0 PUSHINT - DUP MYADDR OVER $emptySlice CALLDICT - s3 s5 XCHG - s4 18 s() XCHG - s2 s3 XCHG - s2 19 s() XCHG + s3 s6 XCHG + s5 16 s() XCHG + s2 s4 XCHG + s3 17 s() XCHG + s1 s0 s10 XCHG3 __gen_writecell_TokenTransferInternal INLINECALLDICT - s5 s6 s0 XCHG3 - s4 s14 XCHG - s3 s13 XCHG - s0 s14 s13 XCHG3 + FALSE + s0 s4 XCHG + s3 s11 XCHG + 40000000 PUSHINT + s0 s3 XCHG + 0 PUSHINT + s3 s1 s3 XCHG3 + s0 s14 XCHG $send CALLDICT - 2 6 BLKSWAP + s5 s7 XCHG + s4 s6 XCHG + s3 s5 XCHG + s4 s0 s3 XCHG3 + s0 s2 XCHG }> $__gen_TONB_burn PROC:<{ s7 s10 XCHG @@ -622,7 +724,7 @@ PROGRAM{ DROP 32366 PUSHINT s3 POP - 50000000 PUSHINT + 10000000 PUSHINT GEQ s1 s2 XCHG THROWANYIFNOT @@ -636,7 +738,7 @@ PROGRAM{ DROP 6384 PUSHINT s3 POP - 50000000 PUSHINT + 10000000 PUSHINT GEQ s1 s2 XCHG THROWANYIFNOT @@ -814,6 +916,6 @@ PROGRAM{ 86142586315491086060343270784266291122 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d61364a595074457958346973424a55554b644c4a5a73506533723569673658374e46667a6e37684242434643} PUSHSLICE + x{697066733a2f2f516d507645695a4772717434663156444b655178797a67626137673571566143636e466958417956437a3452396f} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_TONB.code.rev.fif b/sources/output/jetton_TONB.code.rev.fif index 32c2d5b..7256f6d 100644 --- a/sources/output/jetton_TONB.code.rev.fif +++ b/sources/output/jetton_TONB.code.rev.fif @@ -133,7 +133,7 @@ SETCP0 s4 s5 XCHG s3 s4 XCHG s1 s3 s0 XCHG3 - 47 CALLDICT + 52 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -298,7 +298,7 @@ SETCP0 }> CALLREF 1 8 BLKDROP2 }> CALLREF - 48 CALLDICT + 53 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -478,7 +478,7 @@ SETCP0 s4 s5 XCHG s3 s4 XCHG s1 s3 s0 XCHG3 - 49 CALLDICT + 54 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -665,7 +665,7 @@ SETCP0 s4 s5 XCHG s3 s4 XCHG s1 s3 s0 XCHG3 - 50 CALLDICT + 55 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -861,7 +861,7 @@ SETCP0 s5 s6 XCHG s4 s5 XCHG 1 3 BLKSWAP - 51 CALLDICT + 56 CALLDICT <{ NEWC 2 GETGLOBVAR @@ -951,20 +951,20 @@ SETCP0 ISNULL 128 THROWIF - 29: - 32: + + 35: NEWC ENDC - 33: + 36: CTOS - 34: - 32 CALLDICT - 33 CALLDICT + 37: + 35 CALLDICT + 36 CALLDICT - 35: + 38: 0 PUSHINT ROTREV NEWC @@ -995,7 +995,7 @@ SETCP0 ENDC CTOS - 36: + 39: NEWC 1 PUSHINT s0 s1 XCHG @@ -1112,24 +1112,43 @@ SETCP0 s0 s1 XCHG 1 STI - 37: + 40: + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC - 38: + 41: s0 s2 XCHG CTOS LDDICT @@ -1152,60 +1171,160 @@ SETCP0 STDICT ENDC s0 s0 s3 XCHG3 - 37 CALLDICT + 40 CALLDICT - 39: + 42: + PUSHNULL + s0 s4 XCHG + NEWC + STREF + s2 s4 XCHG2 + <{ + s3 s4 XCHG2 + 257 PUSHINT + STIX + s0 s1 XCHG + STSLICER + s0 s1 XCHG + STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF + }> CALLREF + ENDC + + 43: + s0 s3 XCHG + CTOS + LDDICT + s0 POP + PUSHNULL + s0 s1 XCHG + 59979 PUSHINT + s0 s1 XCHG + 16 PUSHINT + DICTUGETREF + NULLSWAPIFNOT + 135 THROWIFNOT + s0 s1 XCHG + 59979 PUSHINT + s2 PUSH + s0 s2 XCHG + 16 PUSHINT + DICTUSETREF + NEWC + STDICT + ENDC + 3 1 BLKSWAP + s0 s4 XCHG + 42 CALLDICT + + 44: 2 GETGLOBVAR MYADDR ROT - 38 CALLDICT + 41 CALLDICT - 40: - 39 CALLDICT + 45: + 44 CALLDICT 8 2 BLKDROP2 - 35 CALLDICT + 38 CALLDICT - 41: + 46: MYADDR - 39 CALLDICT + 44 CALLDICT 4 2 BLKDROP2 s0 POP s3 s3 s0 XCHG3 - 42: + 47: s10 s1 XCPU ADD 8 2 BLKSWAP - 39 CALLDICT + 44 CALLDICT 2DUP - 35 CALLDICT + 38 CALLDICT + 2 GETGLOBVAR + MYADDR + 6 2 -2 PU2XC + 43 CALLDICT + 2DUP + 38 CALLDICT 0 PUSHINT - 200000000 PUSHINT + 20000000 PUSHINT + 0 PUSHINT + s0 s11 XCHG + <{ + NEWC + s0 s1 XCHG + <{ + 3019699393 PUSHINT + ROT + 32 STU + s0 s1 XCHG + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + }> CALLREF + ENDC + }> CALLREF + s3 PUSH + s3 s6 XCHG + s4 s1 s5 XCHG3 + s3 s12 XCHG + s1 s12 s0 XCHG3 + 39 CALLDICT + s5 PUSH + s0 s5 XCHG + INC 0 PUSHINT - s0 PUSH MYADDR s1 PUSH - 34 CALLDICT - s3 s5 XCHG - s0 s4 XCHG - s0 s18 XCHG - s0 s4 XCHG - s2 s3 XCHG - s0 s2 XCHG - s0 s19 XCHG - s0 s2 XCHG + 37 CALLDICT + s3 s6 XCHG + s0 s5 XCHG + s0 s16 XCHG + s0 s5 XCHG + s2 s4 XCHG + s0 s3 XCHG + s0 s17 XCHG + s0 s3 XCHG + s1 s0 s10 XCHG3 <{ NEWC - 6 1 BLKSWAP + 7 1 BLKSWAP <{ 395134233 PUSHINT - s0 s7 XCHG2 + s0 s8 XCHG2 32 STU - s1 s5 XCHG + s1 s6 XCHG 64 STU - s0 s3 XCHG2 + s0 s4 XCHG2 STGRAMS - s0 s1 XCHG + ROT STSLICER s0 s1 XCHG s0 PUSH @@ -1224,17 +1343,42 @@ SETCP0 STGRAMS s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC }> CALLREF - s5 s6 s0 XCHG3 - s4 s14 XCHG - s3 s13 XCHG - s0 s14 s13 XCHG3 - 36 CALLDICT - 2 6 BLKSWAP + 0 PUSHINT + s0 s4 XCHG + s3 s11 XCHG + 40000000 PUSHINT + s0 s3 XCHG + 0 PUSHINT + s3 s1 s3 XCHG3 + s0 s14 XCHG + 39 CALLDICT + s5 s7 XCHG + s4 s6 XCHG + s3 s5 XCHG + s4 s0 s3 XCHG3 + s0 s2 XCHG - 43: + 48: s7 s10 XCHG s6 s9 XCHG s5 s8 XCHG @@ -1242,9 +1386,9 @@ SETCP0 s3 s9 XCHG s8 s10 s9 XCHG3 s8 PUSH - 39 CALLDICT + 44 CALLDICT 2DUP - 35 CALLDICT + 38 CALLDICT 0 PUSHINT 0 PUSHINT 64 PUSHINT @@ -1288,28 +1432,28 @@ SETCP0 s4 s14 XCHG s3 s12 XCHG s12 s2 XCHG2 - 36 CALLDICT + 39 CALLDICT s4 s7 XCHG 3 4 BLKSWAP - 44: + 49: 1 GETGLOBVAR 4 UNTUPLE s2 s3 XCHG 3 BLKDROP 9 1 BLKSWAP - 39 CALLDICT + 44 CALLDICT s0 s1 XCHG 4429 PUSHINT s0 s2 XCHG - 35 CALLDICT + 38 CALLDICT s0 s10 XCHG2 SDEQ s1 s9 XCHG THROWANYIFNOT 1 7 BLKSWAP - 45: + 50: 1 GETGLOBVAR 4 UNTUPLE s2 s3 XCHG @@ -1318,47 +1462,47 @@ SETCP0 SDEQ 132 THROWIFNOT - 46: + 51: s6 s7 XCHG 7 BLKDROP - 47: + 52: 1 GETGLOBVAR 4 UNTUPLE s0 POP 32366 PUSHINT s3 POP - 50000000 PUSHINT + 10000000 PUSHINT GEQ s1 s2 XCHG THROWANYIFNOT TUCK - 42 CALLDICT + 47 CALLDICT - 48: + 53: - 49: + 54: 1 GETGLOBVAR 4 UNTUPLE s0 POP 6384 PUSHINT s3 POP - 50000000 PUSHINT + 10000000 PUSHINT GEQ s1 s2 XCHG THROWANYIFNOT TUCK - 43 CALLDICT + 48 CALLDICT - 50: + 55: 8 1 BLKSWAP - 45 CALLDICT + 50 CALLDICT s5 POP s6 s7 XCHG s5 s6 XCHG 1 4 BLKSWAP - 51: + 56: s8 s11 XCHG s7 s10 XCHG s6 s9 XCHG @@ -1366,7 +1510,7 @@ SETCP0 s4 s10 XCHG s3 s9 XCHG s11 s10 s10 XCHG3 - 44 CALLDICT + 49 CALLDICT s7 s10 XCHG2 SUB s8 PUSH @@ -1395,7 +1539,7 @@ SETCP0 s1 s10 XCHG PUSHNULL PUSHNULL - 36 CALLDICT + 39 CALLDICT }> PUSHCONT <{ s7 POP @@ -1483,7 +1627,7 @@ SETCP0 }> CALLREF 1 8 BLKDROP2 }> CALLREF - 46 CALLDICT + 51 CALLDICT get_wallet_address: <{ @@ -1562,7 +1706,7 @@ SETCP0 1 8 BLKDROP2 }> CALLREF 1 8 BLKSWAP - 40 CALLDICT + 45 CALLDICT get_jetton_data: <{ @@ -1640,8 +1784,8 @@ SETCP0 }> CALLREF 1 8 BLKDROP2 }> CALLREF - 41 CALLDICT - 29 CALLDICT + 46 CALLDICT + 32 CALLDICT 113617: 123515602279859691144772641439386770278 PUSHINT diff --git a/sources/output/jetton_TONB.md b/sources/output/jetton_TONB.md index cd3c657..b797434 100644 --- a/sources/output/jetton_TONB.md +++ b/sources/output/jetton_TONB.md @@ -1,6 +1,6 @@ # TACT Compilation Report Contract: TONB -BOC Size: 1506 bytes +BOC Size: 1684 bytes # Types Total Types: 18 @@ -22,8 +22,8 @@ TLB: `token_transfer#0f8a7ea5 queryId:uint64 amount:coins destination:address re Signature: `TokenTransfer{queryId:uint64,amount:coins,destination:address,responseDestination:Maybe address,customPayload:Maybe ^cell,forwardTonAmount:coins,forwardPayload:remainder}` ## TokenTransferInternal -TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder = TokenTransferInternal` -Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder}` +TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder setLinker:Maybe address = TokenTransferInternal` +Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder,setLinker:Maybe address}` ## TokenNotification TLB: `token_notification#7362d09c queryId:uint64 amount:coins from:address forwardPayload:remainder = TokenNotification` @@ -53,14 +53,14 @@ Signature: `JettonData{totalSupply:int257,mintable:bool,owner:address,content:Ma TLB: `_ balance:int257 owner:address master:address walletCode:^cell = JettonWalletData` Signature: `JettonWalletData{balance:int257,owner:address,master:address,walletCode:^cell}` -## InitLinker -TLB: `init_linker#453d436d owner:address = InitLinker` -Signature: `InitLinker{owner:address}` - ## SetLinkerNeighbor TLB: `set_linker_neighbor#b3fcf4c1 neighbor:Maybe address = SetLinkerNeighbor` Signature: `SetLinkerNeighbor{neighbor:Maybe address}` +## InitLinker +TLB: `init_linker#67c08154 neighbor:Maybe address walletAmount:int257 walletCode:^cell walletData:^cell walletAddress:address responseAddress:Maybe address = InitLinker` +Signature: `InitLinker{neighbor:Maybe address,walletAmount:int257,walletCode:^cell,walletData:^cell,walletAddress:address,responseAddress:Maybe address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` diff --git a/sources/output/jetton_TONB.pkg b/sources/output/jetton_TONB.pkg index b188049..6c710c6 100644 --- a/sources/output/jetton_TONB.pkg +++ b/sources/output/jetton_TONB.pkg @@ -1 +1 @@ -{"name":"TONB","code":"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","abi":"{\"name\":\"TONB\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"InitLinker\",\"header\":1161642861,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Deposit\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"empty\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Withdraw\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenUpdateContent\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurnNotification\"}}],\"getters\":[{\"name\":\"get_wallet_address\",\"arguments\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"get_jetton_data\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"JettonData\",\"optional\":false}},{\"name\":\"owner\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAhgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBJWW1tcG0hfwjIzAhEdBYVE9s8yYGAJpQh/oCUAXPFiNus5Z/AcoAE8yWM3BQA8oA4soAASBulTBwAcsBks8W4gEgbpUwcAHLAZLPFuICyIEBAc8AASBulTBwAcsBks8W4skBzA==","args":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}],"deployment":{"kind":"system-cell","system":"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"}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file +{"name":"TONB","code":"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","abi":"{\"name\":\"TONB\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}},{\"name\":\"setLinker\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"InitLinker\",\"header\":1740669268,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"walletAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletData\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Deposit\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"empty\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Withdraw\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenUpdateContent\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurnNotification\"}}],\"getters\":[{\"name\":\"get_wallet_address\",\"arguments\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"get_jetton_data\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"JettonData\",\"optional\":false}},{\"name\":\"owner\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAhgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBJWW1tcG0hfwjIzAhEdBYVE9s8yYGAJpQh/oCUAXPFiNus5Z/AcoAE8yWM3BQA8oA4soAASBulTBwAcsBks8W4gEgbpUwcAHLAZLPFuICyIEBAc8AASBulTBwAcsBks8W4skBzA==","args":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}],"deployment":{"kind":"system-cell","system":"te6cckECkgEADIsAAQHAAQIBIF4CAgFYEwMBBbVJcAQBFP8A9KQT9LzyyAsFAgFiCwYCASAKBwIBIAkIAQ25W92zzwDokABNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAQ2+KO7Z54BskAICzBEMAgFYEA0CASAPDgAfDH4QW8kW4ERTTIkxwXy9IAAJBAjXwOAAB1E18DgDi9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfBBCFn+emDdR8dtngJtnhiIGiCYeAftnnAYeWBBSQEo4ANtMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4gEFtQJwFAEU/wD0pBP0vPLICxUCAWIdFgIBIBwXAgFIGRgAlbd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4YTIikya+3yRcvbDO06rpAsE4IGc6tPOK/OkoWA6wtxMj2UAIBWBsaARGvFu2eeBd4EEBcARGtvO2eKoP4FsBcAQ2+KO7Z54GcXAICyk8eAgEgMh8CASAhIAFv2IRYg9CDSILYglCByl1XgYqD1QlDdZx0m4BPgAuEAhBW2eCCWgmA02tvgTyRub8QgriBsiiaghRuAgEgKSICASAmIwIBICUkABcVXDwMjUQZxBWVQOAAKz4QW8kMIEY8DOCCJiWgL4S8vRm8DCACASAoJwABIAArPhBbyQwgX5uM4IImJaAvhLy9GbwL4AIBIC0qAgEgLCsACQQZ18HgAB0+EFvJBAjXwMnxwXy4ISACASAvLgA5PhBbyQQI18DVYDwLAGBEU0C8CZQCscFGfL0VQaABYwQehBpEFgQShA5SKko8Cxc8CZwcIBAVEETAhERAhEQH9s8EG0VEE4QPFDC8CcQR1UjgMAEMyFUw2zzJMQBAghBZXwe8UAXLHxPLPwH6AgHPFgEgbpUwcAHLAZLPFuICASBDMwIBID00AgEgOjUCASA5NgK7FGhoFVx8Cxc8Cb4QvgoVGYw8Ctc8CZwggkxLQBwC9s8IxA2RBUQPEHA8CclBaRw+Cgh8CUQNgUREAUQJAMREQNBCts8cAQQO4IKYloAA3BDEw7wJxBXEEYQNUQDAoDd2AQrIAds8yTgALIIQs/z0wVjLHwEgbpUwcAHLAZLPFuIAEz4KPAsbEIwQzCACASA8OwANPAsbILwJoAAPPhC+ChY8CmACASBBPgIBIEA/AFMA9D0BDBtAYIA6ksBgBD0D2+h8uCHAYIA6ksiAoAQ9BfI9ADJVSAE8CqABExtBMjMUCTbPMmCPAgEge0IATQC0PQEMG0BgWCEAYAQ9A9vofLghwGBYIQiAoAQ9BfI9ADJQAPwKIAIBIExEAgEgSUUCASBIRgL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPABUATMljQDcAHKAOIkbrOafwHKAATwAVAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AIEeAABJ/AcoAAfABAcwASxwWchwAcsBcwHLAXABywASzMzJ+QDIcgHLAXABywASygfL/8nQgAgEgS0oACTwI/AkgAAM0IAIBIE5NAAVcjJgAAUgCAdJRUAALCBu8tCAgBKkcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghAh7rYHuo+XMNs8CNs8MRB4EGcQVhBFEDRBMPA02zzgIMAAItdJwSGwgXFtZUgQ4jwdb2zzwNds84CCCEGBZFRC64wIgghAMCHqeulxZV1MEQo+XMNs8CNs8MRB4EGcQVhBFEDRBMPA32zzgghB73ZfeulxWWVQDQo+a2zwI2zw0EKsQmhCJEHgQZxBWEEVVAvA42zzgMPLAglxVWQBM0x8BghB73ZfeuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzAALtMfAYIQDAh6nrry4IHSAAGR1JJtAeIBAy4w2zwI2zwxEHgQZxBWEEUQNEEw8DbbPFxYWQAm0x8BghBgWRUQuvLggYEBAdcAAQEYyPhCAcxVcNs8ye1UWgCaUIf6AlAFzxYjbrOWfwHKABPMljNwUAPKAOLKAAEgbpUwcAHLAZLPFuIBIG6VMHABywGSzxbiAsiBAQHPAAEgbpUwcAHLAZLPFuLJAcwAINMfAYIQIe62B7ry4IH6AAEBFu1E0NQB+GLbPGwYXQCk+gD6QAEB0gABkdSSbQHi0gD6QCHXCwHDAJEBkjFt4gH6QCHXCwHDAJEBkjFt4gHUAdCBAQHXAPpAIdcLAcMAkQGSMW3iMRAoECcQJhAlECQQIwEFvwQkXwEU/wD0pBP0vPLIC2ACAWJkYQIBIGNiAHG93owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThO6PAB8tmwHk/kHVks1lEJwBEb/YFtnngTeA9JACAsqDZQIBSHJmAgFIaGcAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0FKADgCASBsaQGjFv4QW8kgRFNUznHBVNJxwWxU0jHBbHy9FGUoYIA9fwhwv/y9EMwUjrwI4E+uwGCCTEtAKCCCJiWgKASvPL0f3ADgEBUM3fbPFQTBVAzbW3wIoGoBDMhVMNs8yWsAQIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbiAvc+EFvJCtukzsQOpE04lMbxwWzUyvHBbOwjhL4QlPI8CUBgRFNAvAhI8cF8vTeUdigggD1/CHC//L0LfgnbxAhoYIImJaAZrYIoYIImJaAoKEmwgCOnlDk8CNSMKChcHAoSBNQdNs8KRBGQxNQVW1t8CJQBpYQflCJXwjigcG0BPCZusyLCALCOkXAH8AJwBNs8EEhDMBhtbfAikjZb4m4BCsgB2zzJbwAWghDVMnbbWMsfyz8BDMhVMNs8yXEALIIQc2LQnFAFyx8Tyz8B+gIBzxYBzxYCASB8cwIBIHl0AgEgeHUBuRsIvhBbySBEU1TPMcF8vRRx6GCAPX8IcL/8vRDMFI98CNxJMIAkjBy3oE+uwKoggkxLQCgggiYloCgErzy9PhCVCB08CVc8CF/UHZwgEBtLVE+A0mp2zwQVlnwIoHYBDMhVYNs8yXcAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMABEMPhCUxLwJTCACASB7egBNALQ9AQwbQGBYIQBgBD0D2+h8uCHAYFghCICgBD0F8j0AMlAA/AkgARcbXAEyMwEUDPbPMmCPAgEggn0CASB/fgAlGwx+gAxcdch+gAx+gAwpwOrAIAL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPACUATMljQDcAHKAOIkbrOafwHKAATwAlAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AIIGAAAoxcAHKAAASfwHKAAHwAgHMAEtXBZyHABywFzAcsBcAHLABLMzMn5AMhyAcsBcAHLABLKB8v/ydCAIBIIWEAAOnQAIBYoeGAAtCBu8tCAgEiUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKPCTDbPFUD8CrbPOAgghAPin6luuMCIIIQF41FGbqJCOjIgEOo+TMNs8BNs8NxCaEIkQeFUF8CjbPOCCEFlfB7y6kIuOiQMyj5LbPATbPDQQZxBWEEVVAvAp2zzgMPLAgpCKjgBM0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzAAftMfAYIQF41FGbry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iAfoAINQB0PpAIdcLAcMAkQGSMW3iMRcWFRRDMAMmMNs8BNs8NxCaEIkQeFUF8CfbPJCNjgBs0x8BghAPin6luvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB0gABkdSSbQHi+gBRZhYVFEMwARjI+EIBzFUw2zzJ7VSPADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcwBFu1E0NQB+GLbPGwUkQBEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMBQGkS0="}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file diff --git a/sources/output/jetton_TONB.ts b/sources/output/jetton_TONB.ts index 02dd3b6..3751e14 100644 --- a/sources/output/jetton_TONB.ts +++ b/sources/output/jetton_TONB.ts @@ -247,6 +247,7 @@ export type TokenTransferInternal = { responseAddress: Address | null; forwardTonAmount: bigint; forwardPayload: Cell; + setLinker: Address | null; } export function storeTokenTransferInternal(src: TokenTransferInternal) { @@ -259,6 +260,9 @@ export function storeTokenTransferInternal(src: TokenTransferInternal) { b_0.storeAddress(src.responseAddress); b_0.storeCoins(src.forwardTonAmount); b_0.storeBuilder(src.forwardPayload.asBuilder()); + let b_1 = new Builder(); + b_1.storeAddress(src.setLinker); + b_0.storeRef(b_1.endCell()); }; } @@ -271,7 +275,9 @@ export function loadTokenTransferInternal(slice: Slice) { let _responseAddress = sc_0.loadMaybeAddress(); let _forwardTonAmount = sc_0.loadCoins(); let _forwardPayload = sc_0.asCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let sc_1 = sc_0.loadRef().beginParse(); + let _setLinker = sc_1.loadMaybeAddress(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function loadTupleTokenTransferInternal(source: TupleReader) { @@ -281,7 +287,8 @@ function loadTupleTokenTransferInternal(source: TupleReader) { let _responseAddress = source.readAddressOpt(); let _forwardTonAmount = source.readBigNumber(); let _forwardPayload = source.readCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let _setLinker = source.readAddressOpt(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function storeTupleTokenTransferInternal(source: TokenTransferInternal) { @@ -292,6 +299,7 @@ function storeTupleTokenTransferInternal(source: TokenTransferInternal) { builder.writeAddress(source.responseAddress); builder.writeNumber(source.forwardTonAmount); builder.writeSlice(source.forwardPayload); + builder.writeAddress(source.setLinker); return builder.build(); } @@ -668,85 +676,113 @@ function dictValueParserJettonWalletData(): DictionaryValue { } } } -export type InitLinker = { - $$type: 'InitLinker'; - owner: Address; +export type SetLinkerNeighbor = { + $$type: 'SetLinkerNeighbor'; + neighbor: Address | null; } -export function storeInitLinker(src: InitLinker) { +export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(1161642861, 32); - b_0.storeAddress(src.owner); + b_0.storeUint(3019699393, 32); + b_0.storeAddress(src.neighbor); }; } -export function loadInitLinker(slice: Slice) { +export function loadSetLinkerNeighbor(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 1161642861) { throw Error('Invalid prefix'); } - let _owner = sc_0.loadAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; + if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + let _neighbor = sc_0.loadMaybeAddress(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function loadTupleInitLinker(source: TupleReader) { - let _owner = source.readAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; +function loadTupleSetLinkerNeighbor(source: TupleReader) { + let _neighbor = source.readAddressOpt(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function storeTupleInitLinker(source: InitLinker) { +function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { let builder = new TupleBuilder(); - builder.writeAddress(source.owner); + builder.writeAddress(source.neighbor); return builder.build(); } -function dictValueParserInitLinker(): DictionaryValue { +function dictValueParserSetLinkerNeighbor(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); + buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); }, parse: (src) => { - return loadInitLinker(src.loadRef().beginParse()); + return loadSetLinkerNeighbor(src.loadRef().beginParse()); } } } -export type SetLinkerNeighbor = { - $$type: 'SetLinkerNeighbor'; +export type InitLinker = { + $$type: 'InitLinker'; neighbor: Address | null; + walletAmount: bigint; + walletCode: Cell; + walletData: Cell; + walletAddress: Address; + responseAddress: Address | null; } -export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { +export function storeInitLinker(src: InitLinker) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3019699393, 32); + b_0.storeUint(1740669268, 32); b_0.storeAddress(src.neighbor); + b_0.storeInt(src.walletAmount, 257); + b_0.storeRef(src.walletCode); + b_0.storeRef(src.walletData); + b_0.storeAddress(src.walletAddress); + let b_1 = new Builder(); + b_1.storeAddress(src.responseAddress); + b_0.storeRef(b_1.endCell()); }; } -export function loadSetLinkerNeighbor(slice: Slice) { +export function loadInitLinker(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1740669268) { throw Error('Invalid prefix'); } let _neighbor = sc_0.loadMaybeAddress(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = sc_0.loadIntBig(257); + let _walletCode = sc_0.loadRef(); + let _walletData = sc_0.loadRef(); + let _walletAddress = sc_0.loadAddress(); + let sc_1 = sc_0.loadRef().beginParse(); + let _responseAddress = sc_1.loadMaybeAddress(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function loadTupleSetLinkerNeighbor(source: TupleReader) { +function loadTupleInitLinker(source: TupleReader) { let _neighbor = source.readAddressOpt(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = source.readBigNumber(); + let _walletCode = source.readCell(); + let _walletData = source.readCell(); + let _walletAddress = source.readAddress(); + let _responseAddress = source.readAddressOpt(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { +function storeTupleInitLinker(source: InitLinker) { let builder = new TupleBuilder(); builder.writeAddress(source.neighbor); + builder.writeNumber(source.walletAmount); + builder.writeCell(source.walletCode); + builder.writeCell(source.walletData); + builder.writeAddress(source.walletAddress); + builder.writeAddress(source.responseAddress); return builder.build(); } -function dictValueParserSetLinkerNeighbor(): DictionaryValue { +function dictValueParserInitLinker(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); + buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); }, parse: (src) => { - return loadSetLinkerNeighbor(src.loadRef().beginParse()); + return loadInitLinker(src.loadRef().beginParse()); } } } @@ -924,8 +960,8 @@ function dictValueParserWithdraw(): DictionaryValue { } async function TONB_init(owner: Address, content: Cell | null) { const __init = 'te6ccgEBBwEAhgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBJWW1tcG0hfwjIzAhEdBYVE9s8yYGAJpQh/oCUAXPFiNus5Z/AcoAE8yWM3BQA8oA4soAASBulTBwAcsBks8W4gEgbpUwcAHLAZLPFuICyIEBAc8AASBulTBwAcsBks8W4skBzA=='; - const __code = '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'; - const __system = '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'; + const __code = 'te6ccgECUQEABogAART/APSkE/S88sgLAQIBYgIDAgLKBAUCASASEwIB0gYHAgEgGhsEqRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhApFb4CCCECHutge6j5cw2zwI2zwxEHgQZxBWEEUQNEEw8DTbPOAgwAAi10nBIbCAYCBAJAAsIG7y0ICAAINMfAYIQIe62B7ry4IH6AAEEOI8HW9s88DXbPOAgghBgWRUQuuMCIIIQDAh6nroYEAoLAy4w2zwI2zwxEHgQZxBWEEUQNEEw8DbbPBgMEARCj5cw2zwI2zwxEHgQZxBWEEUQNEEw8DfbPOCCEHvdl966GA0QDgAm0x8BghBgWRUQuvLggYEBAdcAAQAu0x8BghAMCHqeuvLggdIAAZHUkm0B4gEDQo+a2zwI2zw0EKsQmhCJEHgQZxBWEEVVAvA42zzgMPLAghgPEABM0x8BghB73ZfeuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzABGMj4QgHMVXDbPMntVBEAmlCH+gJQBc8WI26zln8BygATzJYzcFADygDiygABIG6VMHABywGSzxbiASBulTBwAcsBks8W4gLIgQEBzwABIG6VMHABywGSzxbiyQHMAQ2+KO7Z54GcGAIBSBQVAgFYFhcAlbd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4YTIikya+3yRcvbDO06rpAsE4IGc6tPOK/OkoWA6wtxMj2UAERrbztniqD+BbAGAERrxbtnngXeBBAGAEW7UTQ1AH4Yts8bBgZAKT6APpAAQHSAAGR1JJtAeLSAPpAIdcLAcMAkQGSMW3iAfpAIdcLAcMAkQGSMW3iAdQB0IEBAdcA+kAh1wsBwwCRAZIxbeIxECgQJxAmECUQJBAjAgEgHB0CASA9PgIBIB4fAgEgKisCASAgIQIBICIjAAFIAAVcjJgCASAkJQIBICYnAAM0IAAJPAj8CSAASxwWchwAcsBcwHLAXABywASzMzJ+QDIcgHLAXABywASygfL/8nQgAvcyHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkZ/AcoAyHABygBwAcoAJG6zmn8BygAE8AFQBMyWNANwAcoA4iRus5p/AcoABPABUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6z4w/JAfsAgKCkAEn8BygAB8AEBzAAKMXABygACASAsLQIBIDM0AgEgLi8CASAwMQEXG1wBMjMBFAz2zzJgMgBNALQ9AQwbQGBYIQBgBD0D2+h8uCHAYFghCICgBD0F8j0AMlAA/AogARMbQTIzFAk2zzJgMgBTAPQ9AQwbQGCAOpLAYAQ9A9vofLghwGCAOpLIgKAEPQXyPQAyVUgBPAqgADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcwCASA1NgIBIDc4AA8+EL4KFjwKYAANPAsbILwJoAATPgo8CxsQjBDMIAK7FGhoFVx8Cxc8Cb4QvgoVGYw8Ctc8CZwggkxLQBwC9s8IxA2RBUQPEHA8CclBaRw+Cgh8CUQNgUREAUQJAMREQNBCts8cAQQO4IKYloAA3BDEw7wJxBXEEYQNUQDAoDk6AQrIAds8yTsBDMhVYNs8yTwALIIQs/z0wVjLHwEgbpUwcAHLAZLPFuIAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMAgEgP0ABb9iEWIPQg0iC2IJQgcpdV4GKg9UJQ3WcdJuAT4ALhAIQVtnggloJgNNrb4E8kbm/EIK4gbIomoIUTwIBIEFCAgEgSUoCASBDRAIBIEdIAWMEHoQaRBYEEoQOUipKPAsXPAmcHCAQFRBEwIREQIREB/bPBBtFRBOEDxQwvAnEEdVI4EUAOT4QW8kECNfA1WA8CwBgRFNAvAmUArHBRny9FUGgAQzIVTDbPMlGAECCEFlfB7xQBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4gAdPhBbyQQI18DJ8cF8uCEgAAkEGdfB4AIBIEtMAgEgTU4AKz4QW8kMIF+bjOCCJiWgL4S8vRm8C+AAASAAKz4QW8kMIEY8DOCCJiWgL4S8vRm8DCAAFxVcPAyNRBnEFZVA4AEKyAHbPMlQABaCENUydttYyx/LPw=='; + const __system = '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'; let systemCell = Cell.fromBase64(__system); let builder = new TupleBuilder(); builder.writeCell(systemCell); diff --git a/sources/output/jetton_TONBWallet.abi b/sources/output/jetton_TONBWallet.abi index 52eec52..8d556e5 100644 --- a/sources/output/jetton_TONBWallet.abi +++ b/sources/output/jetton_TONBWallet.abi @@ -1 +1 @@ -{"name":"TONBWallet","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"InitLinker","header":1161642861,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"TokenTransfer"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenTransferInternal"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurn"}}],"getters":[{"name":"get_wallet_data","arguments":[],"returnType":{"kind":"simple","type":"JettonWalletData","optional":false}}],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file +{"name":"TONBWallet","types":[{"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},{"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"TokenTransfer","header":260734629,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"destination","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseDestination","type":{"kind":"simple","type":"address","optional":true}},{"name":"customPayload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"forwardTonAmount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}},{"name":"setLinker","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenNotification","header":1935855772,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forwardPayload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},{"name":"TokenBurn","header":1499400124,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"TokenExcesses","header":3576854235,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},{"name":"TokenUpdateContent","header":201882270,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":true}}]},{"name":"JettonData","header":null,"fields":[{"name":"totalSupply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"SetLinkerNeighbor","header":3019699393,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"InitLinker","header":1740669268,"fields":[{"name":"neighbor","type":{"kind":"simple","type":"address","optional":true}},{"name":"walletAmount","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"walletCode","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletData","type":{"kind":"simple","type":"cell","optional":false}},{"name":"walletAddress","type":{"kind":"simple","type":"address","optional":false}},{"name":"responseAddress","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"WithdrawalRequests","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"amounts","type":{"kind":"dict","key":"int","value":"int"}},{"name":"n_requests","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"ChangeOwner","header":256331011,"fields":[{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Deposit","header":569292295,"fields":[{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"name":"Withdraw","header":1616450832,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]}],"receivers":[{"receiver":"internal","message":{"kind":"typed","type":"TokenTransfer"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenTransferInternal"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurn"}}],"getters":[{"name":"get_wallet_data","arguments":[],"returnType":{"kind":"simple","type":"JettonWalletData","optional":false}}],"errors":{"2":{"message":"Stack undeflow"},"3":{"message":"Stack overflow"},"4":{"message":"Integer overflow"},"5":{"message":"Integer out of expected range"},"6":{"message":"Invalid opcode"},"7":{"message":"Type check error"},"8":{"message":"Cell overflow"},"9":{"message":"Cell underflow"},"10":{"message":"Dictionary error"},"13":{"message":"Out of gas error"},"32":{"message":"Method ID not found"},"34":{"message":"Action is invalid or not supported"},"37":{"message":"Not enough TON"},"38":{"message":"Not enough extra-currencies"},"128":{"message":"Null reference exception"},"129":{"message":"Invalid serialization prefix"},"130":{"message":"Invalid incoming message"},"131":{"message":"Constraints error"},"132":{"message":"Access denied"},"133":{"message":"Contract stopped"},"134":{"message":"Invalid argument"},"135":{"message":"Code of a contract was not found"},"136":{"message":"Invalid address"},"4429":{"message":"Invalid sender"},"6384":{"message":"not enough money for withdraw"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"32366":{"message":"not enough money for deposit"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.code.boc b/sources/output/jetton_TONBWallet.code.boc index 46d95d0dfe8d30157c3991a6c926837cb731ea9a..75f0b824f957224beeac947ce200a2fd9520aaca 100644 GIT binary patch delta 661 zcmZ3()yK`f_1&BzMkZrM2G*vD+{+m4CvH;FQZu-1!*bikTwsj(AQHiCS@ zELQ!K(PSq6@no!EK>)eco874ALGR%EsC@v-{;%vZd)ISMqoQXjC z>MV@464$#b)2& zn7-Qq?dH0@(l$TGjwBfkYqoENa!zILWMb_**my6(pBUePD zqiZ;(FfMJ8pQ03gNZ(?CjxOV3v42qCpDR2Va;flOPRJ$0gE_!(NYy|NhrT_NJ6UAv z?|wTk%5pG-=Qhx!1%@D>gQ7`~(MBzAv(h1k4Sf>}*gr580MmwmhqHl1Zte%ANoLWH z^ci%T1d5X`%n4vUEiZi9p79qGBx)GBPA~!uFkldC61Zwqc01yG$BeCQGvl0su!|9{IxKo;ApFs3U1()EEa~}`Z>=nsm87<7vi8=fxf|f`uk?u;|oVF=#MxKtIE*T!o0s22t1KIz5H5?E8*BwY`^6_@iPyku3!Lr_F zulyZ`2LhrzH@BS^WjQFqa~o*O0wYjB03-IKKBH0r+XtosmfJQ0?#>3{xw#*d3>a8U tqZxFX1d5X`%n4vUEkD_bRao4RL99vOs!`ePh|}_??P2 ((($fwdCount * $fwdFee) + (2 * 10000000)) + 10000000))); 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)), $init'code, $init'data)); - return (($self'balance, $self'owner, $self'master), ()); + $send((true, $walletAddress, 0, 64, __gen_writecell_TokenTransferInternal(($msg'queryId, $msg'amount, $self'owner, $self'owner, $msg'forwardTonAmount, $msg'forwardPayload, null())), $init'code, $init'data)); + return (($self'balance, $self'owner, $self'master, $self'linker), ()); } -(((int, slice, slice)), ()) $__gen_TONBWallet_receive_TokenTransferInternal((int, slice, slice) $self, (int, int, slice, slice, int, slice) $msg) impure { - var ($self'balance, $self'owner, $self'master) = $self; - var ($msg'queryId, $msg'amount, $msg'from, $msg'responseAddress, $msg'forwardTonAmount, $msg'forwardPayload) = $msg; +(((int, slice, slice, slice)), ()) $__gen_TONBWallet_receive_TokenTransferInternal((int, slice, slice, slice) $self, (int, int, slice, slice, int, slice, slice) $msg) impure { + var ($self'balance, $self'owner, $self'master, $self'linker) = $self; + var ($msg'queryId, $msg'amount, $msg'from, $msg'responseAddress, $msg'forwardTonAmount, $msg'forwardPayload, $msg'setLinker) = $msg; var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get(); - if (__tact_address_neq($ctx'sender, $self'master)) { + if (null?($self'linker)) { + $self'linker = $msg'setLinker; + } + if ((__tact_address_neq($ctx'sender, $self'master) & __tact_address_neq($ctx'sender, $self'linker))) { 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)); } @@ -345,31 +358,31 @@ _ $__gen_get_get_wallet_data() method_id(97026) { if (((~ null?($msg'responseAddress)) & ($msgValue > 0))) { $send((false, __tact_not_null($msg'responseAddress), $msgValue, 0, __gen_writecell_TokenExcesses(($msg'queryId)), null(), null())); } - return (($self'balance, $self'owner, $self'master), ()); + return (($self'balance, $self'owner, $self'master, $self'linker), ()); } -(((int, slice, slice)), ()) $__gen_TONBWallet_receive_TokenBurn((int, slice, slice) $self, (int, int, slice, slice) $msg) impure { - var ($self'balance, $self'owner, $self'master) = $self; +(((int, slice, slice, slice)), ()) $__gen_TONBWallet_receive_TokenBurn((int, slice, slice, slice) $self, (int, int, slice, slice) $msg) impure { + var ($self'balance, $self'owner, $self'master, $self'linker) = $self; var ($msg'queryId, $msg'amount, $msg'owner, $msg'responseAddress) = $msg; var ($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw) = __tact_context_get(); - throw_unless(4429, (__tact_address_eq($ctx'sender, $self'owner) | __tact_address_eq($ctx'sender, $self'master))); + throw_unless(4429, ((__tact_address_eq($ctx'sender, $self'owner) | __tact_address_eq($ctx'sender, $self'master)) | __tact_address_eq($ctx'sender, $self'linker))); $self'balance = ($self'balance - $msg'amount); throw_unless(62972, ($self'balance >= 0)); int $fwdFee = $__gen_Context_readForwardFee(($ctx'bounced, $ctx'sender, $ctx'value, $ctx'raw)); throw_unless(16059, ($ctx'value > (($fwdFee + (2 * 10000000)) + 10000000))); $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), ()); + return (($self'balance, $self'owner, $self'master, $self'linker), ()); } -((int, slice, slice), ()) $__gen_TONBWallet_receive_bounced((int, slice, slice) $self, slice $msg) impure { - var ($self'balance, $self'owner, $self'master) = $self; +((int, slice, slice, slice), ()) $__gen_TONBWallet_receive_bounced((int, slice, slice, slice) $self, slice $msg) impure { + var ($self'balance, $self'owner, $self'master, $self'linker) = $self; $msg~skip_bits(32); int $op = $msg~load_uint(32); int $queryId = $msg~load_uint(64); int $jettonAmount = $msg~load_coins(); throw_unless(13650, (($op == 395134233) | ($op == 2078119902))); $self'balance = ($self'balance + $jettonAmount); - return (($self'balance, $self'owner, $self'master), ()); + return (($self'balance, $self'owner, $self'master, $self'linker), ()); } @@ -433,5 +446,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmdeQibxp6Bp8gtTKCziJsCfzaEpbxC4zCEomnBb1nCyer"; + return "ipfs://QmWqpvx8PLAjtTJAa4RuwzEXeejSonT37BiA5HxjDFbLvM"; } \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.code.fif b/sources/output/jetton_TONBWallet.code.fif index 994d75d..d30ee21 100644 --- a/sources/output/jetton_TONBWallet.code.fif +++ b/sources/output/jetton_TONBWallet.code.fif @@ -181,13 +181,13 @@ PROGRAM{ }> __gen_write_TokenTransferInternal PROCREF:<{ 395134233 PUSHINT - s0 s7 XCHG2 + s0 s8 XCHG2 32 STU - s1 s5 XCHG + s1 s6 XCHG 64 STU - s0 s3 XCHG2 + s0 s4 XCHG2 STGRAMS - SWAP + ROT __tact_store_address INLINECALLDICT SWAP __tact_store_address_opt INLINECALLDICT @@ -195,10 +195,16 @@ PROGRAM{ STGRAMS SWAP STSLICER + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF }> __gen_writecell_TokenTransferInternal PROCREF:<{ NEWC - 6 -ROLL + 7 -ROLL __gen_write_TokenTransferInternal INLINECALLDICT ENDC }> @@ -215,7 +221,14 @@ PROGRAM{ __tact_load_address_opt INLINECALLDICT SWAP LDGRAMS - s5 s5 XCPU + DUP + LDREF + SWAP + CTOS + __tact_load_address_opt INLINECALLDICT + NIP + s1 s7 XCHG + s1 s6 XCHG s1 s5 XCHG s1 s4 XCHG s3 s3 s0 XCHG3 @@ -285,13 +298,19 @@ PROGRAM{ ENDC }> __gen_write_TONBWallet PROCREF:<{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX SWAP __tact_store_address INLINECALLDICT SWAP __tact_store_address INLINECALLDICT + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF }> __gen_read_TONBWallet PROCREF:<{ 257 PUSHINT @@ -299,6 +318,13 @@ PROGRAM{ __tact_load_address INLINECALLDICT SWAP __tact_load_address INLINECALLDICT + SWAP + LDREF + SWAP + CTOS + __tact_load_address_opt INLINECALLDICT + NIP + s1 s4 XCHG s3 s3 s0 XCHG3 }> __gen_StateInit_get_code PROCINLINE:<{ @@ -313,14 +339,14 @@ PROGRAM{ SWAP __tact_context_sys SETGLOB __gen_read_TONBWallet INLINECALLDICT - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> __gen_store_TONBWallet PROCREF:<{ NEWC __tact_context_sys GETGLOB SWAP STREF - 3 -ROLL + 4 -ROLL __gen_write_TONBWallet INLINECALLDICT ENDC c4 POP @@ -443,11 +469,13 @@ PROGRAM{ 1 RSHIFT# }> $__gen_TONBWallet_init PROC:<{ + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 __gen_write_TONBWallet INLINECALLDICT ENDC }> @@ -471,6 +499,7 @@ PROGRAM{ $__gen_TONBWallet_init CALLDICT }> $__gen_TONBWallet_get_wallet_data PROC:<{ + DROP __tact_context_sys GETGLOB s1 s2 PUSH2 $__gen_TONBWallet_init_child CALLDICT @@ -485,17 +514,17 @@ PROGRAM{ 2 2 BLKDROP2 __tact_context_get INLINECALLDICT 4429 PUSHINT - s3 s11 PUSH2 + s3 s12 PUSH2 __tact_address_eq INLINECALLDICT THROWANYIFNOT - s11 s7 XCPU + s12 s7 XCPU SUB 62972 PUSHINT OVER -1 GTINT THROWANYIFNOT s3 s3 s0 XCHG3 - s3 s11 PUXC + s3 s12 PUXC $__gen_Context_readForwardFee CALLDICT 1 PUSHINT s4 PUSH @@ -515,7 +544,7 @@ PROGRAM{ GREATER THROWANYIFNOT __tact_context_sys GETGLOB - s0 s6 s3 XCPUXC + s0 s7 s3 XCPUXC $__gen_TONBWallet_init_child CALLDICT 2DUP $contractAddress CALLDICT @@ -523,38 +552,50 @@ PROGRAM{ s7 s6 XCHG2 0 PUSHINT 64 PUSHINT - s11 PUSH - s12 s2 s8 PUXC2 - s1 s8 XCHG + PUSHNULL + s13 PUSH + s3 s14 XCPU + s0 s3 XCHG + s9 s10 s9 XCHG3 __gen_writecell_TokenTransferInternal INLINECALLDICT s5 s6 XCHG - s3 s4 XCHG -ROT $send CALLDICT }> $__gen_TONBWallet_receive_TokenTransferInternal PROC:<{ __tact_context_get INLINECALLDICT - s2 s10 PUSH2 + s11 PUSH + ISNULL + IF:<{ + s11 POP + s3 s10 XCHG + }>ELSE<{ + s4 POP + }> + s1 s11 PUSH2 + __tact_address_neq INLINECALLDICT + s2 s11 PUSH2 __tact_address_neq INLINECALLDICT + AND IF:<{ __tact_context_sys GETGLOB - s11 s8 PUSH2 + s12 s8 PUSH2 $__gen_TONBWallet_init_child CALLDICT SWAP 4429 PUSHINT s0 s2 XCHG $contractAddress CALLDICT - s4 PUSH + s3 PUSH __tact_address_eq INLINECALLDICT THROWANYIFNOT }> - s12 s8 XCPU + s13 s8 XCPU ADD 62972 PUSHINT OVER -1 GTINT THROWANYIFNOT - OVER + s13 PUSH __tact_my_balance INLINECALLDICT OVER SUB @@ -568,12 +609,10 @@ PROGRAM{ s6 PUSH 0 GTINT IF:<{ - s4 s13 XCHG2 - s3 s3 s0 XCHG3 + s14 s4 XCHG2 $__gen_Context_readForwardFee CALLDICT s3 s(-1) PUXC ADD - s1 s10 XCHG SUB FALSE 0 PUSHINT @@ -581,20 +620,20 @@ PROGRAM{ s8 s1 s3 XCHG3 s7 s4 XCHG2 __gen_writecell_TokenNotification INLINECALLDICT - s8 PUSH + s9 PUSH s4 s6 XCHG s3 s1 s3 XCHG3 s5 s5 XCHG2 PUSHNULL PUSHNULL $send CALLDICT - s0 s5 XCHG2 + s0 s6 XCHG2 }>ELSE<{ - s7 s13 XCHG + s7 s14 XCHG s8 s9 XCHG2 8 BLKDROP }> - s5 PUSH + s6 PUSH ISNULL NOT s2 PUSH @@ -602,19 +641,19 @@ PROGRAM{ AND IF:<{ FALSE - s0 s6 XCHG + s0 s7 XCHG __tact_not_null CALLDICT 0 PUSHINT s0 s4 XCHG __gen_writecell_TokenExcesses INLINECALLDICT - s4 s7 XCHG + s4 s8 XCHG s3 s3 s0 XCHG3 - s1 s7 XCHG + s1 s8 XCHG PUSHNULL PUSHNULL $send CALLDICT }>ELSE<{ - s5 POP + s6 POP 2DROP }> }> @@ -622,20 +661,23 @@ PROGRAM{ 2DROP __tact_context_get INLINECALLDICT 4429 PUSHINT - s3 s8 PUSH2 + s3 s9 PUSH2 + __tact_address_eq INLINECALLDICT + s4 s9 PUSH2 __tact_address_eq INLINECALLDICT + OR s4 s8 PUSH2 __tact_address_eq INLINECALLDICT OR THROWANYIFNOT - s8 s4 XCPU + s9 s4 XCPU SUB 62972 PUSHINT OVER -1 GTINT THROWANYIFNOT s3 s3 s0 XCHG3 - s3 s8 PUXC + s3 s9 PUXC $__gen_Context_readForwardFee CALLDICT 16059 PUSHINT SWAP @@ -650,9 +692,9 @@ PROGRAM{ 0 PUSHINT s0 s3 XCHG 64 PUSHINT - s3 s6 s6 XCPU2 + s3 s7 s7 XCPU2 __gen_writecell_TokenBurnNotification INLINECALLDICT - s3 s0 s4 XC2PU + s3 s0 s5 XC2PU s3 s3 XCHG2 PUSHNULL PUSHNULL @@ -677,9 +719,9 @@ PROGRAM{ OR s1 s2 XCHG THROWANYIFNOT - s1 s3 XCHG + s1 s4 XCHG ADD - s0 s2 XCHG + s0 s3 XCHG }> recv_internal PROC:<{ 0 PUSHINT @@ -713,7 +755,7 @@ PROGRAM{ IFJMP:<{ DROP __gen_load_TONBWallet INLINECALLDICT - 3 ROLL + 4 ROLL $__gen_TONBWallet_receive_bounced CALLDICT __gen_store_TONBWallet INLINECALLDICT }> @@ -723,9 +765,10 @@ PROGRAM{ IFJMP:<{ DROP __gen_load_TONBWallet INLINECALLDICT - s0 s3 XCHG + s0 s4 XCHG __gen_read_TokenTransfer INLINECALLDICT s7 POP + s9 s10 XCHG s8 s9 XCHG s7 s8 XCHG 6 ROLL @@ -738,12 +781,13 @@ PROGRAM{ IFJMP:<{ DROP __gen_load_TONBWallet INLINECALLDICT - s0 s3 XCHG + s0 s4 XCHG __gen_read_TokenTransferInternal INLINECALLDICT - s6 POP + s7 POP + s9 s10 XCHG + s8 s9 XCHG s7 s8 XCHG - s6 s7 XCHG - 5 ROLL + 6 ROLL $__gen_TONBWallet_receive_TokenTransferInternal CALLDICT __gen_store_TONBWallet INLINECALLDICT }> @@ -751,9 +795,10 @@ PROGRAM{ EQUAL IFJMP:<{ __gen_load_TONBWallet INLINECALLDICT - s0 s3 XCHG + s0 s4 XCHG __gen_read_TokenBurn INLINECALLDICT s4 POP + s6 s7 XCHG s5 s6 XCHG s4 s5 XCHG 3 ROLL @@ -769,6 +814,6 @@ PROGRAM{ 209778528950190195973528115415557644819 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d64655169627870364270386774544b437a694a7343667a614570627843347a43456f6d6e4262316e43796572} PUSHSLICE + x{697066733a2f2f516d577170767838504c416a74544a4161345275777a455865656a536f6e5433374269413548786a4446624c764d} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_TONBWallet.code.rev.fif b/sources/output/jetton_TONBWallet.code.rev.fif index aed9176..4e8be97 100644 --- a/sources/output/jetton_TONBWallet.code.rev.fif +++ b/sources/output/jetton_TONBWallet.code.rev.fif @@ -48,26 +48,61 @@ SETCP0 s0 s1 XCHG LDMSGADDR s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> CALLREF - 1 3 BLKSWAP + 1 4 BLKSWAP 42 CALLDICT <{ NEWC 2 GETGLOBVAR s0 s1 XCHG STREF - 3 1 BLKSWAP + 4 1 BLKSWAP <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC c4 POP @@ -93,11 +128,29 @@ SETCP0 s0 s1 XCHG LDMSGADDR s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> CALLREF - s0 s3 XCHG + s0 s4 XCHG <{ 32 LDU s0 s1 XCHG @@ -140,6 +193,7 @@ SETCP0 s3 s3 s0 XCHG3 }> CALLREF s7 POP + s9 s10 XCHG s8 s9 XCHG s7 s8 XCHG 1 6 BLKSWAP @@ -149,15 +203,32 @@ SETCP0 2 GETGLOBVAR s0 s1 XCHG STREF - 3 1 BLKSWAP + 4 1 BLKSWAP <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC c4 POP @@ -182,11 +253,29 @@ SETCP0 s0 s1 XCHG LDMSGADDR s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> CALLREF - s0 s3 XCHG + s0 s4 XCHG <{ 32 LDU s0 s1 XCHG @@ -212,30 +301,66 @@ SETCP0 IFELSE s0 s1 XCHG LDGRAMS - s5 s5 XCPU + s0 PUSH + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s7 XCHG + s1 s6 XCHG s1 s5 XCHG s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - s6 POP + s7 POP + s9 s10 XCHG + s8 s9 XCHG s7 s8 XCHG - s6 s7 XCHG - 1 5 BLKSWAP + 1 6 BLKSWAP 40 CALLDICT <{ NEWC 2 GETGLOBVAR s0 s1 XCHG STREF - 3 1 BLKSWAP + 4 1 BLKSWAP <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC c4 POP @@ -259,11 +384,29 @@ SETCP0 s0 s1 XCHG LDMSGADDR s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> CALLREF - s0 s3 XCHG + s0 s4 XCHG <{ 32 LDU s0 s1 XCHG @@ -291,6 +434,7 @@ SETCP0 s3 s3 s0 XCHG3 }> CALLREF s4 POP + s6 s7 XCHG s5 s6 XCHG s4 s5 XCHG 1 3 BLKSWAP @@ -300,15 +444,32 @@ SETCP0 2 GETGLOBVAR s0 s1 XCHG STREF - 3 1 BLKSWAP + 4 1 BLKSWAP <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC c4 POP @@ -487,19 +648,38 @@ SETCP0 1 RSHIFT 36: + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC @@ -529,6 +709,7 @@ SETCP0 36 CALLDICT 38: + s0 POP 2 GETGLOBVAR s1 s2 PUSH2 37 CALLDICT @@ -539,17 +720,17 @@ SETCP0 1 GETGLOBVAR 4 UNTUPLE 4429 PUSHINT - s3 s11 PUSH2 + s3 s12 PUSH2 SDEQ THROWANYIFNOT - s11 s7 XCPU + s12 s7 XCPU SUB 62972 PUSHINT s1 PUSH -1 GTINT THROWANYIFNOT s3 s3 s0 XCHG3 - s3 s11 PUXC + s3 s12 PUXC 35 CALLDICT 1 PUSHINT s4 PUSH @@ -570,7 +751,7 @@ SETCP0 GREATER THROWANYIFNOT 2 GETGLOBVAR - 0 6 3 XCPUXC + 0 7 3 XCPUXC 37 CALLDICT 2DUP 33 CALLDICT @@ -578,21 +759,23 @@ SETCP0 s7 s6 XCHG2 0 PUSHINT 64 PUSHINT - s11 PUSH - 12 2 8 PUXC2 - s1 s8 XCHG + PUSHNULL + s13 PUSH + s3 s14 XCPU + s0 s3 XCHG + s9 s10 s9 XCHG3 <{ NEWC - 6 1 BLKSWAP + 7 1 BLKSWAP <{ 395134233 PUSHINT - s0 s7 XCHG2 + s0 s8 XCHG2 32 STU - s1 s5 XCHG + s1 s6 XCHG 64 STU - s0 s3 XCHG2 + s0 s4 XCHG2 STGRAMS - s0 s1 XCHG + ROT STSLICER s0 s1 XCHG s0 PUSH @@ -611,40 +794,70 @@ SETCP0 STGRAMS s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC }> CALLREF s5 s6 XCHG - s3 s4 XCHG ROTREV 34 CALLDICT 40: 1 GETGLOBVAR 4 UNTUPLE - s2 s10 PUSH2 + s11 PUSH + ISNULL + <{ + s11 POP + s3 s10 XCHG + }> PUSHCONT + <{ + s4 POP + }> PUSHCONT + IFELSE + s1 s11 PUSH2 + SDEQ + NOT + s2 s11 PUSH2 SDEQ NOT + AND <{ 2 GETGLOBVAR - s11 s8 PUSH2 + s12 s8 PUSH2 37 CALLDICT s0 s1 XCHG 4429 PUSHINT s0 s2 XCHG 33 CALLDICT - s4 PUSH + s3 PUSH SDEQ THROWANYIFNOT }> PUSHCONT IF - s12 s8 XCPU + s13 s8 XCPU ADD 62972 PUSHINT s1 PUSH -1 GTINT THROWANYIFNOT - s1 PUSH + s13 PUSH BALANCE 0 INDEX s1 PUSH @@ -659,12 +872,10 @@ SETCP0 s6 PUSH 0 GTINT <{ - s4 s13 XCHG2 - s3 s3 s0 XCHG3 + s14 s4 XCHG2 35 CALLDICT s3 s-1 PUXC ADD - s1 s10 XCHG SUB 0 PUSHINT 0 PUSHINT @@ -689,22 +900,22 @@ SETCP0 }> CALLREF ENDC }> CALLREF - s8 PUSH + s9 PUSH s4 s6 XCHG s3 s1 s3 XCHG3 s5 s5 XCHG2 PUSHNULL PUSHNULL 34 CALLDICT - s0 s5 XCHG2 + s0 s6 XCHG2 }> PUSHCONT <{ - s7 s13 XCHG + s7 s14 XCHG s8 s9 XCHG2 8 BLKDROP }> PUSHCONT IFELSE - s5 PUSH + s6 PUSH ISNULL NOT s2 PUSH @@ -712,7 +923,7 @@ SETCP0 AND <{ 0 PUSHINT - s0 s6 XCHG + s0 s7 XCHG 2 CALLDICT 0 PUSHINT s0 s4 XCHG @@ -727,35 +938,41 @@ SETCP0 }> CALLREF ENDC }> CALLREF - s4 s7 XCHG + s4 s8 XCHG s3 s3 s0 XCHG3 - s1 s7 XCHG + s1 s8 XCHG PUSHNULL PUSHNULL 34 CALLDICT - }> IFREFELSEREF - s5 POP - 2DROP + }> PUSHCONT + <{ + s6 POP + 2DROP + }> PUSHCONT + IFELSE 41: 2DROP 1 GETGLOBVAR 4 UNTUPLE 4429 PUSHINT - s3 s8 PUSH2 + s3 s9 PUSH2 SDEQ + s4 s9 PUSH2 + SDEQ + OR s4 s8 PUSH2 SDEQ OR THROWANYIFNOT - s8 s4 XCPU + s9 s4 XCPU SUB 62972 PUSHINT s1 PUSH -1 GTINT THROWANYIFNOT s3 s3 s0 XCHG3 - s3 s8 PUXC + s3 s9 PUXC 35 CALLDICT 16059 PUSHINT s0 s1 XCHG @@ -770,7 +987,7 @@ SETCP0 0 PUSHINT s0 s3 XCHG 64 PUSHINT - 3 6 6 XCPU2 + 3 7 7 XCPU2 <{ NEWC 4 1 BLKSWAP @@ -800,7 +1017,7 @@ SETCP0 }> CALLREF ENDC }> CALLREF - 3 0 4 XC2PU + 3 0 5 XC2PU s3 s3 XCHG2 PUSHNULL PUSHNULL @@ -825,9 +1042,9 @@ SETCP0 OR s1 s2 XCHG THROWANYIFNOT - s1 s3 XCHG + s1 s4 XCHG ADD - s0 s2 XCHG + s0 s3 XCHG get_wallet_data: <{ @@ -844,9 +1061,27 @@ SETCP0 s0 s1 XCHG LDMSGADDR s0 s1 XCHG + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s1 POP + s1 s4 XCHG s3 s3 s0 XCHG3 }> CALLREF - 1 3 BLKDROP2 + 1 4 BLKDROP2 }> CALLREF 38 CALLDICT 30 CALLDICT diff --git a/sources/output/jetton_TONBWallet.init.boc b/sources/output/jetton_TONBWallet.init.boc index 18cd0d9ca423d58fadfdc02374a47b8cdfe17e72..b9a4dfa44ce9e81108b299a335f0a96713e38888 100644 GIT binary patch delta 68 zcmeZ>=GyvhP7xy`J0nBDL@qgFZU)9HjN++V4+tw82s)h4`K-pqU=v`{$jEq}f$_W; Y5S@rn$eU_Vz<8Q*(s{8*CmGKG0IfV01poj5 delta 49 zcma#{;M)3bP7xy`J0pYbL@qf6P6oy+jKY^2 + __tact_store_address_opt PROCINLINE:<{ + DUP + ISNULL + IF:<{ + DROP + 0 PUSHINT + SWAP + 2 STU + }>ELSE<{ + __tact_store_address INLINECALLDICT + }> + }> __gen_write_TONBWallet PROCREF:<{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX SWAP __tact_store_address INLINECALLDICT SWAP __tact_store_address INLINECALLDICT + NEWC + ROT + __tact_store_address_opt INLINECALLDICT + ENDC + SWAP + STREF }> $__gen_TONBWallet_init PROC:<{ + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 __gen_write_TONBWallet INLINECALLDICT ENDC }> diff --git a/sources/output/jetton_TONBWallet.init.rev.fif b/sources/output/jetton_TONBWallet.init.rev.fif index b3909c3..43d14fa 100644 --- a/sources/output/jetton_TONBWallet.init.rev.fif +++ b/sources/output/jetton_TONBWallet.init.rev.fif @@ -2,25 +2,44 @@ SETCP0 (:methods recv_internal: - 4: + 5: + PUSHNULL 0 PUSHINT - s0 s3 XCHG + s0 s4 XCHG NEWC STREF - s3 s1 s3 XCHG3 + s0 s4 XCHG + s3 s3 XCHG2 <{ - s2 s3 XCHG2 + s3 s4 XCHG2 257 PUSHINT STIX s0 s1 XCHG STSLICER s0 s1 XCHG STSLICER + NEWC + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + ENDC + s0 s1 XCHG + STREF }> CALLREF ENDC 107886: - 4 CALLDICT + 5 CALLDICT ) 19 DICTPUSHCONST DICTIGETJMPZ 11 THROWARG diff --git a/sources/output/jetton_TONBWallet.md b/sources/output/jetton_TONBWallet.md index 66d26a2..68394c6 100644 --- a/sources/output/jetton_TONBWallet.md +++ b/sources/output/jetton_TONBWallet.md @@ -1,6 +1,6 @@ # TACT Compilation Report Contract: TONBWallet -BOC Size: 1324 bytes +BOC Size: 1422 bytes # Types Total Types: 18 @@ -22,8 +22,8 @@ TLB: `token_transfer#0f8a7ea5 queryId:uint64 amount:coins destination:address re Signature: `TokenTransfer{queryId:uint64,amount:coins,destination:address,responseDestination:Maybe address,customPayload:Maybe ^cell,forwardTonAmount:coins,forwardPayload:remainder}` ## TokenTransferInternal -TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder = TokenTransferInternal` -Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder}` +TLB: `token_transfer_internal#178d4519 queryId:uint64 amount:coins from:address responseAddress:Maybe address forwardTonAmount:coins forwardPayload:remainder setLinker:Maybe address = TokenTransferInternal` +Signature: `TokenTransferInternal{queryId:uint64,amount:coins,from:address,responseAddress:Maybe address,forwardTonAmount:coins,forwardPayload:remainder,setLinker:Maybe address}` ## TokenNotification TLB: `token_notification#7362d09c queryId:uint64 amount:coins from:address forwardPayload:remainder = TokenNotification` @@ -53,14 +53,14 @@ Signature: `JettonData{totalSupply:int257,mintable:bool,owner:address,content:Ma TLB: `_ balance:int257 owner:address master:address walletCode:^cell = JettonWalletData` Signature: `JettonWalletData{balance:int257,owner:address,master:address,walletCode:^cell}` -## InitLinker -TLB: `init_linker#453d436d owner:address = InitLinker` -Signature: `InitLinker{owner:address}` - ## SetLinkerNeighbor TLB: `set_linker_neighbor#b3fcf4c1 neighbor:Maybe address = SetLinkerNeighbor` Signature: `SetLinkerNeighbor{neighbor:Maybe address}` +## InitLinker +TLB: `init_linker#67c08154 neighbor:Maybe address walletAmount:int257 walletCode:^cell walletData:^cell walletAddress:address responseAddress:Maybe address = InitLinker` +Signature: `InitLinker{neighbor:Maybe address,walletAmount:int257,walletCode:^cell,walletData:^cell,walletAddress:address,responseAddress:Maybe address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` diff --git a/sources/output/jetton_TONBWallet.pkg b/sources/output/jetton_TONBWallet.pkg index bf81c1b..cc85eb1 100644 --- a/sources/output/jetton_TONBWallet.pkg +++ b/sources/output/jetton_TONBWallet.pkg @@ -1 +1 @@ -{"name":"TONBWallet","code":"te6ccgECNAEABSAAART/APSkE/S88sgLAQIBYgIDAgLKBgcCASAEBQERv9gW2eeBN4D0EQBxvd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4TujwAfLZsB5P5B1ZLNZRCcAgEgCAkCAUgVFgIBYgoLAAOnQASJRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhAo8JMNs8VQLwKts84CCCEA+KfqW64wIgghAXjUUZuoERMMDQALQgbvLQgIAyIw2zwD2zw3EIkQeFUF8CfbPBEOEwQ2j5Ew2zwD2zw2EHgQZ1UE8CjbPOCCEFlfB7y6EQ8TEABs0x8BghAPin6luvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB0gABkdSSbQHi+gBRZhYVFEMwAFjTHwGCEBeNRRm68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gH6AFFVFRRDMAMuj5DbPAPbPDQQVhBFVQLwKds84DDywIIREhMBFu1E0NQB+GLbPGwTFABM0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzABGMj4QgHMVSDbPMntVCMAHIEBAdcA+kABAfpAAUMwAgEgFxgCAUgoKQIBIBkaAgEgHyAAS1cFnIcAHLAXMBywFwAcsAEszMyfkAyHIBywFwAcsAEsoHy//J0IAgEgGxwC9zIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GORn8BygDIcAHKAHABygAkbrOafwHKAATwAlAEzJY0A3ABygDiJG6zmn8BygAE8AJQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrPjD8kB+wCAdHgAlGwx+gAxcdch+gAx+gAwpwOrAIAASfwHKAAHwAgHMAAoxcAHKAAIBICEiAgEgJCUBExwA8jMQxPbPMmAjAE0AtD0BDBtAYFghAGAEPQPb6Hy4IcBgWCEIgKAEPQXyPQAyUAD8CSAAGlAjgQEBzwABzxYBzxYADz4QlMS8CUwgAbkbCL4QW8kgRFNUzvHBfL0UbehggD1/CHC//L0QzBSPPAjcSTCAJIwct6BPrsCqIIJMS0AoIIImJaAoBK88vT4QlQgZPAlXPAhf1B2cIBAK1RMORjbPBBWEDRZ8CKAmAQzIVVDbPMknAE6CEBeNRRlQB8sfFcs/UAP6AgHPFgEgbpUwcAHLAZLPFuIB+gIBzxYCASAqKwBPSAINch0x/TPzH6ADCBNVIighAXjUUZugOCEHvdl966E7ES8vQToAKAPxPhBbyRTKscFs44S+EJTuPAlAYERTQLwISTHBfL03lHIoIIA9fwhwv/y9CH4J28QIaGCCJiWgGa2CKGCCJiWgKChJsIAjqFQTUMw8CNSMKAaoXBwKEgTUHTbPCgQRkMTUFVtbfAiUAWWEH1QiV8I4iVusyLCALDjD4CwtLgGZFv4QW8kgRFNUzjHBVNIxwWx8vRRhKGCAPX8IcL/8vRDMFI58COBPrsBggkxLQCgggiYloCgErzy9H9wA4BAVDNm2zxUEwRQM21t8CKAyAQzIVTDbPMkvASJwBvACcATbPBBHQzAXbW3wIjAABDVbACyCEHNi0JxQBcsfE8s/AfoCAc8WAc8WAQrIAds8yTEAFoIQ1TJ221jLH8s/AQzIVTDbPMkzAECCEHvdl95QBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4g==","abi":"{\"name\":\"TONBWallet\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"InitLinker\",\"header\":1161642861,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenTransfer\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenTransferInternal\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurn\"}}],\"getters\":[{\"name\":\"get_wallet_data\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"JettonWalletData\",\"optional\":false}}],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAPQABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AkAAdQBE9OAHkZiGJ7Z5kwGABpQI4EBAc8AAc8WAc8W","args":[{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"te6cckECNgEABSoAAQHAAQEFoMEJAgEU/wD0pBP0vPLICwMCAWIHBAIBIAYFAHG93owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThO6PAB8tmwHk/kHVks1lEJwBEb/YFtnngTeA9DQCAsonCAIBSBYJAgFICwoAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0E6ACgCASAPDAGZFv4QW8kgRFNUzjHBVNIxwWx8vRRhKGCAPX8IcL/8vRDMFI58COBPrsBggkxLQCgggiYloCgErzy9H9wA4BAVDNm2zxUEwRQM21t8CKANAQzIVTDbPMkOAECCEHvdl95QBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4gPxPhBbyRTKscFs44S+EJTuPAlAYERTQLwISTHBfL03lHIoIIA9fwhwv/y9CH4J28QIaGCCJiWgGa2CKGCCJiWgKChJsIAjqFQTUMw8CNSMKAaoXBwKEgTUHTbPCgQRkMTUFVtbfAiUAWWEH1QiV8I4iVusyLCALDjD4BQREAAENVsBInAG8AJwBNs8EEdDMBdtbfAiEgEKyAHbPMkTABaCENUydttYyx/LPwEMyFUw2zzJFQAsghBzYtCcUAXLHxPLPwH6AgHPFgHPFgIBICAXAgEgHRgCASAcGQG5Gwi+EFvJIERTVM7xwXy9FG3oYIA9fwhwv/y9EMwUjzwI3EkwgCSMHLegT67AqiCCTEtAKCCCJiWgKASvPL0+EJUIGTwJVzwIX9QdnCAQCtUTDkY2zwQVhA0WfAigGgEMyFVQ2zzJGwBOghAXjUUZUAfLHxXLP1AD+gIBzxYBIG6VMHABywGSzxbiAfoCAc8WAA8+EJTEvAlMIAIBIB8eAE0AtD0BDBtAYFghAGAEPQPb6Hy4IcBgWCEIgKAEPQXyPQAyUAD8CSABExwA8jMQxPbPMmAzAgEgJiECASAjIgAlGwx+gAxcdch+gAx+gAwpwOrAIAL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPACUATMljQDcAHKAOIkbrOafwHKAATwAlAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AICUkAAoxcAHKAAASfwHKAAHwAgHMAEtXBZyHABywFzAcsBcAHLABLMzMn5AMhyAcsBcAHLABLKB8v/ydCAIBICkoAAOnQAIBYisqAAtCBu8tCAgEiUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKPCTDbPFUC8CrbPOAgghAPin6luuMCIIIQF41FGbqDQyMCwENo+RMNs8A9s8NhB4EGdVBPAo2zzgghBZXwe8ujQvMi0DLo+Q2zwD2zw0EFYQRVUC8CnbPOAw8sCCNC4yAEzTHwGCEFlfB7y68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4hRDMABY0x8BghAXjUUZuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB+gBRVRUUQzADIjDbPAPbPDcQiRB4VQXwJ9s8NDEyAGzTHwGCEA+KfqW68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gHSAAGR1JJtAeL6AFFmFhUUQzABGMj4QgHMVSDbPMntVDMAGlAjgQEBzwABzxYBzxYBFu1E0NQB+GLbPGwTNQAcgQEB1wD6QAEB+kABQzCAxrR7"}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file +{"name":"TONBWallet","code":"te6ccgECMwEABYIAART/APSkE/S88sgLAQIBYgIDAgLKBgcCASAEBQERv9gW2eeBN4D0EQBxvd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4TujwAfLZsB5P5B1ZLNZRCcAgEgCAkCAUgVFgIBYgoLAAOnQASJRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhAo8JMNs8VQPwKts84CCCEA+KfqW64wIgghAXjUUZuoERMMDQALQgbvLQgIAyYw2zwE2zw3EJoQiRB4VQXwJ9s8EQ4TBDqPkzDbPATbPDcQmhCJEHhVBfAo2zzgghBZXwe8uhEPExAAbNMfAYIQD4p+pbry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iAdIAAZHUkm0B4voAUWYWFRRDMAB+0x8BghAXjUUZuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB+gAg1AHQ+kAh1wsBwwCRAZIxbeIxFxYVFEMwAzKPkts8BNs8NBBnEFYQRVUC8CnbPOAw8sCCERITARbtRNDUAfhi2zxsFBQATNMfAYIQWV8HvLry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iFEMwARjI+EIBzFUw2zzJ7VQjAESBAQHXAPpAAQH6QAEB1AHQ+kAh1wsBwwCRAZIxbeIxFEMwAgEgFxgCAUgoKQIBIBkaAgEgHyAAS1cFnIcAHLAXMBywFwAcsAEszMyfkAyHIBywFwAcsAEsoHy//J0IAgEgGxwC9zIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GORn8BygDIcAHKAHABygAkbrOafwHKAATwAlAEzJY0A3ABygDiJG6zmn8BygAE8AJQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrPjD8kB+wCAdHgAlGwx+gAxcdch+gAx+gAwpwOrAIAASfwHKAAHwAgHMAAoxcAHKAAIBICEiAgEgJCUBFxtcATIzARQM9s8yYCMATQC0PQEMG0BgWCEAYAQ9A9vofLghwGBYIQiAoAQ9BfI9ADJQAPwJIAA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMABEMPhCUxLwJTCABuRsIvhBbySBEU1TPMcF8vRRx6GCAPX8IcL/8vRDMFI98CNxJMIAkjBy3oE+uwKoggkxLQCgggiYloCgErzy9PhCVCB08CVc8CF/UHZwgEBtLVE+A0mp2zwQVlnwIoCYBDMhVYNs8yScAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMAgEgKisAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0FKADgC9z4QW8kK26TOxA6kTTiUxvHBbNTK8cFs7COEvhCU8jwJQGBEU0C8CEjxwXy9N5R2KCCAPX8IcL/8vQt+CdvECGhggiYloBmtgihggiYloCgoSbCAI6eUOTwI1IwoKFwcChIE1B02zwpEEZDE1BVbW3wIlAGlhB+UIlfCOKAsLQGjFv4QW8kgRFNUznHBVNJxwWxU0jHBbHy9FGUoYIA9fwhwv/y9EMwUjrwI4E+uwGCCTEtAKCCCJiWgKASvPL0f3ADgEBUM3fbPFQTBVAzbW3wIoDEBDMhVMNs8yS4BPCZusyLCALCOkXAH8AJwBNs8EEhDMBhtbfAikjZb4i8ALIIQc2LQnFAFyx8Tyz8B+gIBzxYBzxYBCsgB2zzJMAAWghDVMnbbWMsfyz8BDMhVMNs8yTIAQIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbi","abi":"{\"name\":\"TONBWallet\",\"types\":[{\"name\":\"StateInit\",\"header\":null,\"fields\":[{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"Context\",\"header\":null,\"fields\":[{\"name\":\"bounced\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"sender\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"raw\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false}}]},{\"name\":\"SendParameters\",\"header\":null,\"fields\":[{\"name\":\"bounce\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"to\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mode\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"code\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"data\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"TokenTransfer\",\"header\":260734629,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"destination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseDestination\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"customPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenTransferInternal\",\"header\":395134233,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"forwardTonAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}},{\"name\":\"setLinker\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenNotification\",\"header\":1935855772,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"from\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"forwardPayload\",\"type\":{\"kind\":\"simple\",\"type\":\"slice\",\"optional\":false,\"format\":\"remainder\"}}]},{\"name\":\"TokenBurn\",\"header\":1499400124,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenBurnNotification\",\"header\":2078119902,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}},{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"TokenExcesses\",\"header\":3576854235,\"fields\":[{\"name\":\"queryId\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":64}}]},{\"name\":\"TokenUpdateContent\",\"header\":201882270,\"fields\":[{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}}]},{\"name\":\"JettonData\",\"header\":null,\"fields\":[{\"name\":\"totalSupply\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"mintable\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"content\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":true}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"JettonWalletData\",\"header\":null,\"fields\":[{\"name\":\"balance\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"master\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"SetLinkerNeighbor\",\"header\":3019699393,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"InitLinker\",\"header\":1740669268,\"fields\":[{\"name\":\"neighbor\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"walletAmount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"walletCode\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletData\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}},{\"name\":\"walletAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"responseAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"WithdrawalRequests\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"amounts\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"n_requests\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"ChangeOwner\",\"header\":256331011,\"fields\":[{\"name\":\"newOwner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Deposit\",\"header\":569292295,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"name\":\"Withdraw\",\"header\":1616450832,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]}],\"receivers\":[{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenTransfer\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenTransferInternal\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurn\"}}],\"getters\":[{\"name\":\"get_wallet_data\",\"arguments\":[],\"returnType\":{\"kind\":\"simple\",\"type\":\"JettonWalletData\",\"optional\":false}}],\"errors\":{\"2\":{\"message\":\"Stack undeflow\"},\"3\":{\"message\":\"Stack overflow\"},\"4\":{\"message\":\"Integer overflow\"},\"5\":{\"message\":\"Integer out of expected range\"},\"6\":{\"message\":\"Invalid opcode\"},\"7\":{\"message\":\"Type check error\"},\"8\":{\"message\":\"Cell overflow\"},\"9\":{\"message\":\"Cell underflow\"},\"10\":{\"message\":\"Dictionary error\"},\"13\":{\"message\":\"Out of gas error\"},\"32\":{\"message\":\"Method ID not found\"},\"34\":{\"message\":\"Action is invalid or not supported\"},\"37\":{\"message\":\"Not enough TON\"},\"38\":{\"message\":\"Not enough extra-currencies\"},\"128\":{\"message\":\"Null reference exception\"},\"129\":{\"message\":\"Invalid serialization prefix\"},\"130\":{\"message\":\"Invalid incoming message\"},\"131\":{\"message\":\"Constraints error\"},\"132\":{\"message\":\"Access denied\"},\"133\":{\"message\":\"Contract stopped\"},\"134\":{\"message\":\"Invalid argument\"},\"135\":{\"message\":\"Code of a contract was not found\"},\"136\":{\"message\":\"Invalid address\"},\"4429\":{\"message\":\"Invalid sender\"},\"6384\":{\"message\":\"not enough money for withdraw\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAUAABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBF2W1wBMjMBFAz2zzJgYAPFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzA==","args":[{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"te6cckECNQEABYwAAQHAAQEFoMEJAgEU/wD0pBP0vPLICwMCAWIHBAIBIAYFAHG93owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThO6PAB8tmwHk/kHVks1lEJwBEb/YFtnngTeA9DMCAsomCAIBSBUJAgFICwoAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0FKADgCASAPDAGjFv4QW8kgRFNUznHBVNJxwWxU0jHBbHy9FGUoYIA9fwhwv/y9EMwUjrwI4E+uwGCCTEtAKCCCJiWgKASvPL0f3ADgEBUM3fbPFQTBVAzbW3wIoA0BDMhVMNs8yQ4AQIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbiAvc+EFvJCtukzsQOpE04lMbxwWzUyvHBbOwjhL4QlPI8CUBgRFNAvAhI8cF8vTeUdigggD1/CHC//L0LfgnbxAhoYIImJaAZrYIoYIImJaAoKEmwgCOnlDk8CNSMKChcHAoSBNQdNs8KRBGQxNQVW1t8CJQBpYQflCJXwjigExABPCZusyLCALCOkXAH8AJwBNs8EEhDMBhtbfAikjZb4hEBCsgB2zzJEgAWghDVMnbbWMsfyz8BDMhVMNs8yRQALIIQc2LQnFAFyx8Tyz8B+gIBzxYBzxYCASAfFgIBIBwXAgEgGxgBuRsIvhBbySBEU1TPMcF8vRRx6GCAPX8IcL/8vRDMFI98CNxJMIAkjBy3oE+uwKoggkxLQCgggiYloCgErzy9PhCVCB08CVc8CF/UHZwgEBtLVE+A0mp2zwQVlnwIoBkBDMhVYNs8yRoAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMABEMPhCUxLwJTCACASAeHQBNALQ9AQwbQGBYIQBgBD0D2+h8uCHAYFghCICgBD0F8j0AMlAA/AkgARcbXAEyMwEUDPbPMmAyAgEgJSACASAiIQAlGwx+gAxcdch+gAx+gAwpwOrAIAL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPACUATMljQDcAHKAOIkbrOafwHKAATwAlAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AICQjAAoxcAHKAAASfwHKAAHwAgHMAEtXBZyHABywFzAcsBcAHLABLMzMn5AMhyAcsBcAHLABLKB8v/ydCAIBICgnAAOnQAIBYiopAAtCBu8tCAgEiUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKPCTDbPFUD8CrbPOAgghAPin6luuMCIIIQF41FGbqDMxLysEOo+TMNs8BNs8NxCaEIkQeFUF8CjbPOCCEFlfB7y6My4xLAMyj5LbPATbPDQQZxBWEEVVAvAp2zzgMPLAgjMtMQBM0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzAAftMfAYIQF41FGbry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iAfoAINQB0PpAIdcLAcMAkQGSMW3iMRcWFRRDMAMmMNs8BNs8NxCaEIkQeFUF8CfbPDMwMQBs0x8BghAPin6luvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB0gABkdSSbQHi+gBRZhYVFEMwARjI+EIBzFUw2zzJ7VQyADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcwBFu1E0NQB+GLbPGwUNABEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGRj05c="}},"compiler":{"name":"tact","version":"0.8.11"}} \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.ts b/sources/output/jetton_TONBWallet.ts index bab03d1..56d5a4e 100644 --- a/sources/output/jetton_TONBWallet.ts +++ b/sources/output/jetton_TONBWallet.ts @@ -247,6 +247,7 @@ export type TokenTransferInternal = { responseAddress: Address | null; forwardTonAmount: bigint; forwardPayload: Cell; + setLinker: Address | null; } export function storeTokenTransferInternal(src: TokenTransferInternal) { @@ -259,6 +260,9 @@ export function storeTokenTransferInternal(src: TokenTransferInternal) { b_0.storeAddress(src.responseAddress); b_0.storeCoins(src.forwardTonAmount); b_0.storeBuilder(src.forwardPayload.asBuilder()); + let b_1 = new Builder(); + b_1.storeAddress(src.setLinker); + b_0.storeRef(b_1.endCell()); }; } @@ -271,7 +275,9 @@ export function loadTokenTransferInternal(slice: Slice) { let _responseAddress = sc_0.loadMaybeAddress(); let _forwardTonAmount = sc_0.loadCoins(); let _forwardPayload = sc_0.asCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let sc_1 = sc_0.loadRef().beginParse(); + let _setLinker = sc_1.loadMaybeAddress(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function loadTupleTokenTransferInternal(source: TupleReader) { @@ -281,7 +287,8 @@ function loadTupleTokenTransferInternal(source: TupleReader) { let _responseAddress = source.readAddressOpt(); let _forwardTonAmount = source.readBigNumber(); let _forwardPayload = source.readCell(); - return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload }; + let _setLinker = source.readAddressOpt(); + return { $$type: 'TokenTransferInternal' as const, queryId: _queryId, amount: _amount, from: _from, responseAddress: _responseAddress, forwardTonAmount: _forwardTonAmount, forwardPayload: _forwardPayload, setLinker: _setLinker }; } function storeTupleTokenTransferInternal(source: TokenTransferInternal) { @@ -292,6 +299,7 @@ function storeTupleTokenTransferInternal(source: TokenTransferInternal) { builder.writeAddress(source.responseAddress); builder.writeNumber(source.forwardTonAmount); builder.writeSlice(source.forwardPayload); + builder.writeAddress(source.setLinker); return builder.build(); } @@ -668,85 +676,113 @@ function dictValueParserJettonWalletData(): DictionaryValue { } } } -export type InitLinker = { - $$type: 'InitLinker'; - owner: Address; +export type SetLinkerNeighbor = { + $$type: 'SetLinkerNeighbor'; + neighbor: Address | null; } -export function storeInitLinker(src: InitLinker) { +export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(1161642861, 32); - b_0.storeAddress(src.owner); + b_0.storeUint(3019699393, 32); + b_0.storeAddress(src.neighbor); }; } -export function loadInitLinker(slice: Slice) { +export function loadSetLinkerNeighbor(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 1161642861) { throw Error('Invalid prefix'); } - let _owner = sc_0.loadAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; + if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + let _neighbor = sc_0.loadMaybeAddress(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function loadTupleInitLinker(source: TupleReader) { - let _owner = source.readAddress(); - return { $$type: 'InitLinker' as const, owner: _owner }; +function loadTupleSetLinkerNeighbor(source: TupleReader) { + let _neighbor = source.readAddressOpt(); + return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; } -function storeTupleInitLinker(source: InitLinker) { +function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { let builder = new TupleBuilder(); - builder.writeAddress(source.owner); + builder.writeAddress(source.neighbor); return builder.build(); } -function dictValueParserInitLinker(): DictionaryValue { +function dictValueParserSetLinkerNeighbor(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); + buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); }, parse: (src) => { - return loadInitLinker(src.loadRef().beginParse()); + return loadSetLinkerNeighbor(src.loadRef().beginParse()); } } } -export type SetLinkerNeighbor = { - $$type: 'SetLinkerNeighbor'; +export type InitLinker = { + $$type: 'InitLinker'; neighbor: Address | null; + walletAmount: bigint; + walletCode: Cell; + walletData: Cell; + walletAddress: Address; + responseAddress: Address | null; } -export function storeSetLinkerNeighbor(src: SetLinkerNeighbor) { +export function storeInitLinker(src: InitLinker) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3019699393, 32); + b_0.storeUint(1740669268, 32); b_0.storeAddress(src.neighbor); + b_0.storeInt(src.walletAmount, 257); + b_0.storeRef(src.walletCode); + b_0.storeRef(src.walletData); + b_0.storeAddress(src.walletAddress); + let b_1 = new Builder(); + b_1.storeAddress(src.responseAddress); + b_0.storeRef(b_1.endCell()); }; } -export function loadSetLinkerNeighbor(slice: Slice) { +export function loadInitLinker(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3019699393) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1740669268) { throw Error('Invalid prefix'); } let _neighbor = sc_0.loadMaybeAddress(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = sc_0.loadIntBig(257); + let _walletCode = sc_0.loadRef(); + let _walletData = sc_0.loadRef(); + let _walletAddress = sc_0.loadAddress(); + let sc_1 = sc_0.loadRef().beginParse(); + let _responseAddress = sc_1.loadMaybeAddress(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function loadTupleSetLinkerNeighbor(source: TupleReader) { +function loadTupleInitLinker(source: TupleReader) { let _neighbor = source.readAddressOpt(); - return { $$type: 'SetLinkerNeighbor' as const, neighbor: _neighbor }; + let _walletAmount = source.readBigNumber(); + let _walletCode = source.readCell(); + let _walletData = source.readCell(); + let _walletAddress = source.readAddress(); + let _responseAddress = source.readAddressOpt(); + return { $$type: 'InitLinker' as const, neighbor: _neighbor, walletAmount: _walletAmount, walletCode: _walletCode, walletData: _walletData, walletAddress: _walletAddress, responseAddress: _responseAddress }; } -function storeTupleSetLinkerNeighbor(source: SetLinkerNeighbor) { +function storeTupleInitLinker(source: InitLinker) { let builder = new TupleBuilder(); builder.writeAddress(source.neighbor); + builder.writeNumber(source.walletAmount); + builder.writeCell(source.walletCode); + builder.writeCell(source.walletData); + builder.writeAddress(source.walletAddress); + builder.writeAddress(source.responseAddress); return builder.build(); } -function dictValueParserSetLinkerNeighbor(): DictionaryValue { +function dictValueParserInitLinker(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeSetLinkerNeighbor(src)).endCell()); + buidler.storeRef(beginCell().store(storeInitLinker(src)).endCell()); }, parse: (src) => { - return loadSetLinkerNeighbor(src.loadRef().beginParse()); + return loadInitLinker(src.loadRef().beginParse()); } } } @@ -923,9 +959,9 @@ function dictValueParserWithdraw(): DictionaryValue { } } async function TONBWallet_init(master: Address, owner: Address) { - const __init = 'te6ccgEBBwEAPQABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AkAAdQBE9OAHkZiGJ7Z5kwGABpQI4EBAc8AAc8WAc8W'; - const __code = 'te6ccgECNAEABSAAART/APSkE/S88sgLAQIBYgIDAgLKBgcCASAEBQERv9gW2eeBN4D0EQBxvd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4TujwAfLZsB5P5B1ZLNZRCcAgEgCAkCAUgVFgIBYgoLAAOnQASJRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhAo8JMNs8VQLwKts84CCCEA+KfqW64wIgghAXjUUZuoERMMDQALQgbvLQgIAyIw2zwD2zw3EIkQeFUF8CfbPBEOEwQ2j5Ew2zwD2zw2EHgQZ1UE8CjbPOCCEFlfB7y6EQ8TEABs0x8BghAPin6luvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB0gABkdSSbQHi+gBRZhYVFEMwAFjTHwGCEBeNRRm68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gH6AFFVFRRDMAMuj5DbPAPbPDQQVhBFVQLwKds84DDywIIREhMBFu1E0NQB+GLbPGwTFABM0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzABGMj4QgHMVSDbPMntVCMAHIEBAdcA+kABAfpAAUMwAgEgFxgCAUgoKQIBIBkaAgEgHyAAS1cFnIcAHLAXMBywFwAcsAEszMyfkAyHIBywFwAcsAEsoHy//J0IAgEgGxwC9zIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GORn8BygDIcAHKAHABygAkbrOafwHKAATwAlAEzJY0A3ABygDiJG6zmn8BygAE8AJQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrPjD8kB+wCAdHgAlGwx+gAxcdch+gAx+gAwpwOrAIAASfwHKAAHwAgHMAAoxcAHKAAIBICEiAgEgJCUBExwA8jMQxPbPMmAjAE0AtD0BDBtAYFghAGAEPQPb6Hy4IcBgWCEIgKAEPQXyPQAyUAD8CSAAGlAjgQEBzwABzxYBzxYADz4QlMS8CUwgAbkbCL4QW8kgRFNUzvHBfL0UbehggD1/CHC//L0QzBSPPAjcSTCAJIwct6BPrsCqIIJMS0AoIIImJaAoBK88vT4QlQgZPAlXPAhf1B2cIBAK1RMORjbPBBWEDRZ8CKAmAQzIVVDbPMknAE6CEBeNRRlQB8sfFcs/UAP6AgHPFgEgbpUwcAHLAZLPFuIB+gIBzxYCASAqKwBPSAINch0x/TPzH6ADCBNVIighAXjUUZugOCEHvdl966E7ES8vQToAKAPxPhBbyRTKscFs44S+EJTuPAlAYERTQLwISTHBfL03lHIoIIA9fwhwv/y9CH4J28QIaGCCJiWgGa2CKGCCJiWgKChJsIAjqFQTUMw8CNSMKAaoXBwKEgTUHTbPCgQRkMTUFVtbfAiUAWWEH1QiV8I4iVusyLCALDjD4CwtLgGZFv4QW8kgRFNUzjHBVNIxwWx8vRRhKGCAPX8IcL/8vRDMFI58COBPrsBggkxLQCgggiYloCgErzy9H9wA4BAVDNm2zxUEwRQM21t8CKAyAQzIVTDbPMkvASJwBvACcATbPBBHQzAXbW3wIjAABDVbACyCEHNi0JxQBcsfE8s/AfoCAc8WAc8WAQrIAds8yTEAFoIQ1TJ221jLH8s/AQzIVTDbPMkzAECCEHvdl95QBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4g=='; - const __system = 'te6cckECNgEABSoAAQHAAQEFoMEJAgEU/wD0pBP0vPLICwMCAWIHBAIBIAYFAHG93owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThO6PAB8tmwHk/kHVks1lEJwBEb/YFtnngTeA9DQCAsonCAIBSBYJAgFICwoAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0E6ACgCASAPDAGZFv4QW8kgRFNUzjHBVNIxwWx8vRRhKGCAPX8IcL/8vRDMFI58COBPrsBggkxLQCgggiYloCgErzy9H9wA4BAVDNm2zxUEwRQM21t8CKANAQzIVTDbPMkOAECCEHvdl95QBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4gPxPhBbyRTKscFs44S+EJTuPAlAYERTQLwISTHBfL03lHIoIIA9fwhwv/y9CH4J28QIaGCCJiWgGa2CKGCCJiWgKChJsIAjqFQTUMw8CNSMKAaoXBwKEgTUHTbPCgQRkMTUFVtbfAiUAWWEH1QiV8I4iVusyLCALDjD4BQREAAENVsBInAG8AJwBNs8EEdDMBdtbfAiEgEKyAHbPMkTABaCENUydttYyx/LPwEMyFUw2zzJFQAsghBzYtCcUAXLHxPLPwH6AgHPFgHPFgIBICAXAgEgHRgCASAcGQG5Gwi+EFvJIERTVM7xwXy9FG3oYIA9fwhwv/y9EMwUjzwI3EkwgCSMHLegT67AqiCCTEtAKCCCJiWgKASvPL0+EJUIGTwJVzwIX9QdnCAQCtUTDkY2zwQVhA0WfAigGgEMyFVQ2zzJGwBOghAXjUUZUAfLHxXLP1AD+gIBzxYBIG6VMHABywGSzxbiAfoCAc8WAA8+EJTEvAlMIAIBIB8eAE0AtD0BDBtAYFghAGAEPQPb6Hy4IcBgWCEIgKAEPQXyPQAyUAD8CSABExwA8jMQxPbPMmAzAgEgJiECASAjIgAlGwx+gAxcdch+gAx+gAwpwOrAIAL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPACUATMljQDcAHKAOIkbrOafwHKAATwAlAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AICUkAAoxcAHKAAASfwHKAAHwAgHMAEtXBZyHABywFzAcsBcAHLABLMzMn5AMhyAcsBcAHLABLKB8v/ydCAIBICkoAAOnQAIBYisqAAtCBu8tCAgEiUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKPCTDbPFUC8CrbPOAgghAPin6luuMCIIIQF41FGbqDQyMCwENo+RMNs8A9s8NhB4EGdVBPAo2zzgghBZXwe8ujQvMi0DLo+Q2zwD2zw0EFYQRVUC8CnbPOAw8sCCNC4yAEzTHwGCEFlfB7y68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4hRDMABY0x8BghAXjUUZuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB+gBRVRUUQzADIjDbPAPbPDcQiRB4VQXwJ9s8NDEyAGzTHwGCEA+KfqW68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gHSAAGR1JJtAeL6AFFmFhUUQzABGMj4QgHMVSDbPMntVDMAGlAjgQEBzwABzxYBzxYBFu1E0NQB+GLbPGwTNQAcgQEB1wD6QAEB+kABQzCAxrR7'; + const __init = 'te6ccgEBBwEAUAABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQBF2W1wBMjMBFAz2zzJgYAPFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzA=='; + const __code = 'te6ccgECMwEABYIAART/APSkE/S88sgLAQIBYgIDAgLKBgcCASAEBQERv9gW2eeBN4D0EQBxvd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4TujwAfLZsB5P5B1ZLNZRCcAgEgCAkCAUgVFgIBYgoLAAOnQASJRwIddJwh+VMCDXCx/eAtDTAwFxsMABkX+RcOIB+kAiUGZvBPhhAo8JMNs8VQPwKts84CCCEA+KfqW64wIgghAXjUUZuoERMMDQALQgbvLQgIAyYw2zwE2zw3EJoQiRB4VQXwJ9s8EQ4TBDqPkzDbPATbPDcQmhCJEHhVBfAo2zzgghBZXwe8uhEPExAAbNMfAYIQD4p+pbry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iAdIAAZHUkm0B4voAUWYWFRRDMAB+0x8BghAXjUUZuvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB+gAg1AHQ+kAh1wsBwwCRAZIxbeIxFxYVFEMwAzKPkts8BNs8NBBnEFYQRVUC8CnbPOAw8sCCERITARbtRNDUAfhi2zxsFBQATNMfAYIQWV8HvLry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iFEMwARjI+EIBzFUw2zzJ7VQjAESBAQHXAPpAAQH6QAEB1AHQ+kAh1wsBwwCRAZIxbeIxFEMwAgEgFxgCAUgoKQIBIBkaAgEgHyAAS1cFnIcAHLAXMBywFwAcsAEszMyfkAyHIBywFwAcsAEsoHy//J0IAgEgGxwC9zIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GORn8BygDIcAHKAHABygAkbrOafwHKAATwAlAEzJY0A3ABygDiJG6zmn8BygAE8AJQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrPjD8kB+wCAdHgAlGwx+gAxcdch+gAx+gAwpwOrAIAASfwHKAAHwAgHMAAoxcAHKAAIBICEiAgEgJCUBFxtcATIzARQM9s8yYCMATQC0PQEMG0BgWCEAYAQ9A9vofLghwGBYIQiAoAQ9BfI9ADJQAPwJIAA8UDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMABEMPhCUxLwJTCABuRsIvhBbySBEU1TPMcF8vRRx6GCAPX8IcL/8vRDMFI98CNxJMIAkjBy3oE+uwKoggkxLQCgggiYloCgErzy9PhCVCB08CVc8CF/UHZwgEBtLVE+A0mp2zwQVlnwIoCYBDMhVYNs8yScAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMAgEgKisAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0FKADgC9z4QW8kK26TOxA6kTTiUxvHBbNTK8cFs7COEvhCU8jwJQGBEU0C8CEjxwXy9N5R2KCCAPX8IcL/8vQt+CdvECGhggiYloBmtgihggiYloCgoSbCAI6eUOTwI1IwoKFwcChIE1B02zwpEEZDE1BVbW3wIlAGlhB+UIlfCOKAsLQGjFv4QW8kgRFNUznHBVNJxwWxU0jHBbHy9FGUoYIA9fwhwv/y9EMwUjrwI4E+uwGCCTEtAKCCCJiWgKASvPL0f3ADgEBUM3fbPFQTBVAzbW3wIoDEBDMhVMNs8yS4BPCZusyLCALCOkXAH8AJwBNs8EEhDMBhtbfAikjZb4i8ALIIQc2LQnFAFyx8Tyz8B+gIBzxYBzxYBCsgB2zzJMAAWghDVMnbbWMsfyz8BDMhVMNs8yTIAQIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbi'; + const __system = 'te6cckECNQEABYwAAQHAAQEFoMEJAgEU/wD0pBP0vPLICwMCAWIHBAIBIAYFAHG93owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThO6PAB8tmwHk/kHVks1lEJwBEb/YFtnngTeA9DMCAsomCAIBSBUJAgFICwoAT0gCDXIdMf0z8x+gAwgTVSIoIQF41FGboDghB73ZfeuhOxEvL0FKADgCASAPDAGjFv4QW8kgRFNUznHBVNJxwWxU0jHBbHy9FGUoYIA9fwhwv/y9EMwUjrwI4E+uwGCCTEtAKCCCJiWgKASvPL0f3ADgEBUM3fbPFQTBVAzbW3wIoA0BDMhVMNs8yQ4AQIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbiAvc+EFvJCtukzsQOpE04lMbxwWzUyvHBbOwjhL4QlPI8CUBgRFNAvAhI8cF8vTeUdigggD1/CHC//L0LfgnbxAhoYIImJaAZrYIoYIImJaAoKEmwgCOnlDk8CNSMKChcHAoSBNQdNs8KRBGQxNQVW1t8CJQBpYQflCJXwjigExABPCZusyLCALCOkXAH8AJwBNs8EEhDMBhtbfAikjZb4hEBCsgB2zzJEgAWghDVMnbbWMsfyz8BDMhVMNs8yRQALIIQc2LQnFAFyx8Tyz8B+gIBzxYBzxYCASAfFgIBIBwXAgEgGxgBuRsIvhBbySBEU1TPMcF8vRRx6GCAPX8IcL/8vRDMFI98CNxJMIAkjBy3oE+uwKoggkxLQCgggiYloCgErzy9PhCVCB08CVc8CF/UHZwgEBtLVE+A0mp2zwQVlnwIoBkBDMhVYNs8yRoAcIIQF41FGVAIyx8Wyz9QBPoCWM8WASBulTBwAcsBks8W4gH6AgHPFshYIG6VMHABywGSzxbiyQHMABEMPhCUxLwJTCACASAeHQBNALQ9AQwbQGBYIQBgBD0D2+h8uCHAYFghCICgBD0F8j0AMlAA/AkgARcbXAEyMwEUDPbPMmAyAgEgJSACASAiIQAlGwx+gAxcdch+gAx+gAwpwOrAIAL3MhxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5GfwHKAMhwAcoAcAHKACRus5p/AcoABPACUATMljQDcAHKAOIkbrOafwHKAATwAlAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus+MPyQH7AICQjAAoxcAHKAAASfwHKAAHwAgHMAEtXBZyHABywFzAcsBcAHLABLMzMn5AMhyAcsBcAHLABLKB8v/ydCAIBICgnAAOnQAIBYiopAAtCBu8tCAgEiUcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKPCTDbPFUD8CrbPOAgghAPin6luuMCIIIQF41FGbqDMxLysEOo+TMNs8BNs8NxCaEIkQeFUF8CjbPOCCEFlfB7y6My4xLAMyj5LbPATbPDQQZxBWEEVVAvAp2zzgMPLAgjMtMQBM0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzAAftMfAYIQF41FGbry4IHTP/oA+kABAfpAIdcLAcMAkQGSMW3iAfoAINQB0PpAIdcLAcMAkQGSMW3iMRcWFRRDMAMmMNs8BNs8NxCaEIkQeFUF8CfbPDMwMQBs0x8BghAPin6luvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIB0gABkdSSbQHi+gBRZhYVFEMwARjI+EIBzFUw2zzJ7VQyADxQNIEBAc8AAc8WAc8WyFggbpUwcAHLAZLPFuLJAcwBFu1E0NQB+GLbPGwUNABEgQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGRj05c='; let systemCell = Cell.fromBase64(__system); let builder = new TupleBuilder(); builder.writeCell(systemCell); diff --git a/sources/tests/__snapshots__/jetton.spec.ts.snap b/sources/tests/__snapshots__/jetton.spec.ts.snap index 67a4fc4..a4bd40c 100644 --- a/sources/tests/__snapshots__/jetton.spec.ts.snap +++ b/sources/tests/__snapshots__/jetton.spec.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`jetton should deploy 1`] = ` +exports[`jetton should deploy and deposit the wallet with the correct sum of money 1`] = ` [ { "type": "deploy", @@ -13,70 +13,45 @@ exports[`jetton should deploy 1`] = ` }, "bounce": true, "from": "kQAI-3FJVc_ywSuY4vq0bYrzR7S4Och4y7bTU_i5yLOB3A6P", - "to": "kQBbN1ES7aHOD-YQDRZ0b8_HFJFJtu99cbmeu79JtaT7mbCh", + "to": "kQCM9AmnDVgUtUtKjTYQmBC1nKt5dR8EsRWQvtvzNws01ZJu", "type": "internal", - "value": 1100000000n, + "value": 1200000000n, }, "type": "received", }, { - "gasUsed": 22607n, + "gasUsed": 36303n, "type": "processed", }, { "messages": [ { "body": { - "cell": "x{178D4519000000000000000043B9ACA00800B66EA225DB439C1FCC201A2CE8DF9F8E2922936DDEFAE3733D777E936B49F73300023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_}", + "cell": "x{B3FCF4C12_}", "type": "cell", }, "bounce": false, - "from": "kQBbN1ES7aHOD-YQDRZ0b8_HFJFJtu99cbmeu79JtaT7mbCh", - "to": "kQBUyXAApVkXHsyW_DjETpmWFHRLXdFHz5XELjf5v7e3oluU", + "from": "kQCM9AmnDVgUtUtKjTYQmBC1nKt5dR8EsRWQvtvzNws01ZJu", + "to": "kQB2vHcaIyjKkO_JMeWRZ8QN_zBjgfX7OHflzG9vrE3cUH-F", "type": "internal", - "value": 182761000n, + "value": 13474000n, }, ], "type": "sent", }, -] -`; - -exports[`jetton should deploy and deposit the correct sub of money 1`] = ` -[ - { - "type": "deploy", - }, - { - "message": { - "body": { - "cell": "x{21EEB60743B9ACA00}", - "type": "cell", - }, - "bounce": true, - "from": "kQAI-3FJVc_ywSuY4vq0bYrzR7S4Och4y7bTU_i5yLOB3A6P", - "to": "kQBbN1ES7aHOD-YQDRZ0b8_HFJFJtu99cbmeu79JtaT7mbCh", - "type": "internal", - "value": 1100000000n, - }, - "type": "received", - }, - { - "gasUsed": 22607n, - "type": "processed", - }, { "messages": [ { "body": { - "cell": "x{178D4519000000000000000043B9ACA00800B66EA225DB439C1FCC201A2CE8DF9F8E2922936DDEFAE3733D777E936B49F73300023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_}", + "cell": "x{178D4519000000000000000043B9ACA0080119E8134E1AB0296A96951A6C2130216B3956F2EA3E09622B217DB7E66E1669AB00023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_} + x{800ED78EE3446519521DF9263CB22CF881BFE60C703EBF670EFCB98DEDF589BB8A1_}", "type": "cell", }, "bounce": false, - "from": "kQBbN1ES7aHOD-YQDRZ0b8_HFJFJtu99cbmeu79JtaT7mbCh", - "to": "kQBUyXAApVkXHsyW_DjETpmWFHRLXdFHz5XELjf5v7e3oluU", + "from": "kQCM9AmnDVgUtUtKjTYQmBC1nKt5dR8EsRWQvtvzNws01ZJu", + "to": "kQCs7NEVQDI566FHvxACpYud6bZ40nPH4s_v39XOEbexYPMS", "type": "internal", - "value": 182761000n, + "value": 21584000n, }, ], "type": "sent", diff --git a/sources/tests/jetton.spec.ts b/sources/tests/jetton.spec.ts index a018025..4e33ebc 100644 --- a/sources/tests/jetton.spec.ts +++ b/sources/tests/jetton.spec.ts @@ -3,33 +3,37 @@ import { ContractSystem } from "ton-emulator"; import {TONB} from '../output/jetton_TONB'; import { default_content } from '../utils/config'; import { TONBWallet } from '../output/jetton_TONBWallet'; +import { beginCell } from 'ton-core'; describe('jetton', () => { - it('should deploy and deposit the correct sum of money', async () => { + it('should deploy and deposit the wallet with the correct sum of money', async () => { // Create jetton let system = await ContractSystem.create(); let owner = system.treasure('owner'); let contract = system.open(await TONB.fromInit(owner.address, default_content)); let tracker = system.track(contract.address); - let wallet_contract = system.open(await TONBWallet.fromInit(contract.address, owner.address)); // Mint - await contract.send(owner, { value: toNano('1.1') }, { $$type: 'Deposit', amount: toNano('1') }); + await contract.send(owner, { value: toNano('1.2') }, { $$type: 'Deposit', amount: toNano('1') }); + let log = await system.run(); await system.run(); let events = tracker.events(); expect(events).toMatchSnapshot(); - let addr = Address.parse((events[3] as any).messages[0].to); - let wallet_contract_2 = system.contract(addr); - let wdata = (await wallet_contract_2.get(97026, [])) as any; - expect(wdata.stack.items[0].value).toEqual(1000000000n); + + let addr = Address.parse((events[4] as any).messages[0].to); + let wallet_contract = system.contract(addr); + let wdata = ((await wallet_contract.get(97026, [])) as any).stack.items; + expect(wdata[0].value).toEqual(1000000000n); + + let linker_contract = system.contract(Address.parse((events[3] as any).messages[0].to)); + let linker_owner = ((await linker_contract.get('owner', [])) as any).stack.items[0]; + expect(linker_owner.cell.toBoc()).toEqual(beginCell().storeAddress(addr).endCell().toBoc()); // Check owner expect((await contract.getOwner()).toString()).toEqual(owner.address.toString()); - // Data - let data = await contract.getGetJettonData(); }); }); \ No newline at end of file diff --git a/sources/wallet.tact b/sources/wallet.tact index 35f5f02..9c6d34d 100644 --- a/sources/wallet.tact +++ b/sources/wallet.tact @@ -1,5 +1,8 @@ import "@stdlib/ownable"; import "./messages"; +import "./linker"; + + @interface("org.ton.jetton.wallet") contract TONBWallet { @@ -10,6 +13,7 @@ contract TONBWallet { balance: Int; owner: Address; master: Address; + linker: Address?; init(master: Address, owner: Address) { self.balance = 0; @@ -49,7 +53,8 @@ contract TONBWallet { from: self.owner, responseAddress: self.owner, forwardTonAmount: msg.forwardTonAmount, - forwardPayload: msg.forwardPayload + forwardPayload: msg.forwardPayload, + setLinker: null }.toCell(), code: init.code, data: init.data @@ -60,7 +65,10 @@ contract TONBWallet { // Check sender let ctx: Context = context(); - if (ctx.sender != self.master) { + if (self.linker == null) { + self.linker = msg.setLinker; + } + if (ctx.sender != self.master && ctx.sender != self.linker) { let sinit: StateInit = initOf TONBWallet(self.master, msg.from); require(contractAddress(sinit) == ctx.sender, "Invalid sender"); } @@ -109,7 +117,7 @@ contract TONBWallet { // Check sender let ctx: Context = context(); - require(ctx.sender == self.owner || ctx.sender == self.master, "Invalid sender"); + require(ctx.sender == self.owner || ctx.sender == self.master || ctx.sender == self.linker, "Invalid sender"); // Update balance self.balance = self.balance - msg.amount;