diff --git a/sources/foundation.tact b/sources/foundation.tact index 9a1cf87..1eafd89 100644 --- a/sources/foundation.tact +++ b/sources/foundation.tact @@ -4,7 +4,8 @@ import "./messages"; struct Proposal { type: Int; // 0 - Blacklist, 1 - Full liquidation, 2 - Change percents - data: Cell; // Address for blacklist, Distribution for percents + blacklistAddress: Address?; + distribution: Distribution?; } struct Vote { @@ -17,16 +18,6 @@ struct Vote { result: Bool?; // None - no result, True - passed, False - failed } -fun vote_res(prop: Proposal): Cell? { - if (prop.type == 0) { - return BlacklistWallet { - wallet: prop.data.readAddress() - }.asCell(); - } - if (prop.type == 1) { - // todo - } -} contract Foundation { founders: AddressList; // aka superadmins @@ -34,7 +25,7 @@ contract Foundation { tonb: Address; votes: map[Int]Vote; profits: map[Address]Int; - n_votes: Int; + n_votes: Int = 0; init(admins: Distribution, founders: AddressList, tonb: Address) { self.admins = admins; @@ -43,8 +34,8 @@ contract Foundation { } receive(msg: FinishVote) { - require(msg.vote_id < self.n_votes, "Invalid vote id"); - let vote: Vote = self.votes.get(msg.vote_id)!!; + require(msg.voteId < self.n_votes, "Invalid vote id"); + let vote: Vote = self.votes.get(msg.voteId)!!; require(vote.ended == false, "Vote already ended"); require(vote.vote_end < now(), "Vote is not finished yet"); let n_yes: Int = 0; @@ -52,7 +43,7 @@ contract Foundation { let n_abstain: Int = 0; let i: Int = 0; while (i < self.admins.addresses.length) { - let vote_: Int = vote.votes.get(i)!!; + let vote_i: Int = vote.votes.get(i)!!; if (vote_i == 1) { n_yes = n_yes + 1; } else if (vote_i == 2) { @@ -72,79 +63,61 @@ contract Foundation { vote.result = false; } vote.ended = true; - self.votes.set(msg.vote_id, vote); + self.votes.set(msg.voteId, vote); if (vote.result == true) { - let vres: Cell? = vote_res(vote.proposal); - if (vres != null) { + let prop: Proposal = vote.proposal; + if (prop.type == 0) { send(SendParameters{ to: self.tonb, value: 0, mode: SendRemainingValue, - body: vres!! - }); + body: BlacklistWallet { + wallet: prop.blacklistAddress!! + }.toCell() + }); } - if(vote.proposal.type == 2) { - // self.admins = Distribution { - // addresses: vote.proposal.data.readAddressList(), - // percents: vote.proposal.data.readPercents() - // }; + if (prop.type == 1) { + // todo + } + if (prop.type == 2) { + self.admins = prop.distribution!!; } } } - receive(msg: Vote) { - require(msg.adminIndex < self.admins.addresses.length, "Invalid admin index") + receive(msg: VoteMsg) { + require(msg.adminIndex < self.admins.addresses.length, "Invalid admin index"); let ctx: Context = context(); require(ctx.sender == self.admins.addresses.addresses.get(msg.adminIndex), "Only an admin can vote"); - require(msg.vote_id < self.n_votes, "Invalid vote id"); - let vote: Vote = self.votes.get(msg.vote_id)!!; + require(msg.voteId < self.n_votes, "Invalid vote id"); + let vote: Vote = self.votes.get(msg.voteId)!!; require(vote.ended == false, "Vote already ended"); require(vote.vote_end > now(), "Vote is finished"); require(msg.vote >= 0 && msg.vote <= 2, "Invalid vote"); vote.votes.set(msg.adminIndex, msg.vote); - self.votes.set(msg.vote_id, vote); + self.votes.set(msg.voteId, vote); } receive(msg: InitiateBlacklistVote) { let ctx: Context = context(); require(ctx.sender == self.admins.addresses.addresses.get(msg.adminIndex), "Only an admin can initiate a vote"); - require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees") + require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees"); require(msg.quorum_percent > 20 && msg.quorum_percent <= 100, "Invalid quorum percent"); require(msg.vote_time > 0 && msg.vote_time < 3 * 24 * 3600, "Invalid vote time"); - let vote = Vote { - id: self.n_votes, - vote_end: now() + msg.vote_time, - proposal: Proposal { - type: 0, - data: msg.address - }, - quorum_percent: msg.quorum_percent + let proposal: Proposal = Proposal { + type: 0, + blacklistAddress: msg.wallet, + distribution: null }; - let i: Int = 0; - while (i < self.admins.addresses.length) { - vote.votes.set(i, -1); - i = i + 1; - } - self.votes.set(self.n_votes, vote); - self.n_votes = self.n_votes + 1; - } - - receive(msg: InitiateDistributionVote) { - let ctx: Context = context(); - require(ctx.sender == self.admins.addresses.addresses.get(msg.adminIndex), "Only an admin can initiate a vote"); - require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees") - require(msg.quorum_percent > 20 && msg.quorum_percent <= 100, "Invalid quorum percent"); - require(msg.vote_time > 0 && msg.vote_time < 3 * 24 * 3600, "Invalid vote time"); - let vote = Vote { + let vote: Vote = Vote { id: self.n_votes, vote_end: now() + msg.vote_time, - proposal: Proposal { - type: 2, - data: msg.distribution - }, - quorum_percent: msg.quorum_percent + proposal: proposal, + quorum_percent: msg.quorum_percent, + votes: emptyMap(), + result: null }; let i: Int = 0; while (i < self.admins.addresses.length) { @@ -155,20 +128,52 @@ contract Foundation { self.n_votes = self.n_votes + 1; } - receive(msg: InitiateFullLiquidationVote) { + // receive(msg: InitiateDistributionVote) { + // let ctx: Context = context(); + // require(ctx.sender == self.admins.addresses.addresses.get(msg.adminIndex), "Only an admin can initiate a vote"); + // require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees"); + // require(msg.quorum_percent > 20 && msg.quorum_percent <= 100, "Invalid quorum percent"); + // require(msg.vote_time > 0 && msg.vote_time < 3 * 24 * 3600, "Invalid vote time"); + // let proposal: Proposal = Proposal { + // type: 2, + // blacklistAddress: null, + // distribution: msg.distribution + // }; + + // let vote: Vote = Vote { + // id: self.n_votes, + // vote_end: now() + msg.vote_time, + // proposal: proposal, + // quorum_percent: msg.quorum_percent, + // votes: emptyMap(), + // result: null + // }; + // let i: Int = 0; + // while (i < self.admins.addresses.length) { + // vote.votes.set(i, -1); + // i = i + 1; + // } + // self.votes.set(self.n_votes, vote); + // self.n_votes = self.n_votes + 1; + // } + + receive(msg: InitiateLiquidationVote) { let ctx: Context = context(); require(ctx.sender == self.admins.addresses.addresses.get(msg.adminIndex), "Only an admin can initiate a vote"); - require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees") + require(ctx.value >= ton("1.0"), "Voting requires at least 1 ton for the fees"); require(msg.quorum_percent > 85 && msg.quorum_percent <= 100, "Invalid quorum percent"); require(msg.vote_time > 0 && msg.vote_time < 3 * 24 * 3600, "Invalid vote time"); - let vote = Vote { + let vote: Vote = Vote { id: self.n_votes, vote_end: now() + msg.vote_time, proposal: Proposal { type: 1, - data: beginCell().endCell() + blacklistAddress: null, + distribution: null }, - quorum_percent: msg.quorum_percent + quorum_percent: msg.quorum_percent, + votes: emptyMap(), + result: null }; let i: Int = 0; while (i < self.admins.addresses.length) { @@ -187,7 +192,7 @@ contract Foundation { let i: Int = 0; while (i < self.admins.addresses.length) { let addr: Address = self.admins.addresses.addresses.get(i)!!; - let percent: Int = self.admins.percents.percents.get(i)!!; + let percent: Int = self.admins.percents.get(addr)!!; let amount: Int = value * percent / 100; // todo: record the profit let current_profit: Int = 0; @@ -204,10 +209,10 @@ contract Foundation { receive(msg: RequestUnstake) { // If this is sent by one of the founders, it means that the user wants to unstake let ctx: Context = context(); - require(self.founders.get(msg.founderIndex) == ctx.sender, "Only a founder can request unstake"); + require(self.founders.addresses.get(msg.founderIndex) == ctx.sender, "Only a founder can request unstake"); send(SendParameters{ to: self.tonb, - value: msg.amount, + value: 0, mode: SendRemainingValue, body: Unstake { amount: 0 }.toCell() }); diff --git a/sources/jetton.tact b/sources/jetton.tact index addcb58..f12c8ff 100644 --- a/sources/jetton.tact +++ b/sources/jetton.tact @@ -6,6 +6,7 @@ import "./jetton_trait"; import "./staking"; import "./constants"; import "./pseudostaking"; +import "./foundation"; message Deposit { amount: Int as coins; @@ -60,4 +61,9 @@ contract TONB with TONBTrait { receive(msg: SetStakingPool) { self.staking_pool = msg.staking_pool; } + + receive(msg: SetOwner) { + require(self.owner == context().sender, "only the owner can set a new owner"); + self.owner = msg.owner; + } } \ No newline at end of file diff --git a/sources/messages.tact b/sources/messages.tact index fb5a552..e9875e6 100644 --- a/sources/messages.tact +++ b/sources/messages.tact @@ -105,7 +105,7 @@ message FinishVote { voteId: Int; } -message Vote { +message VoteMsg { voteId: Int; adminIndex: Int; vote: Int; // 0 - abstain, 1 - yes, 2 - no @@ -145,4 +145,8 @@ message RequestUnstake { message CollectProfit { adminIndex: Int; +} + +message SetOwner { + owner: Address; } \ No newline at end of file diff --git a/sources/output/jetton_Linker.abi b/sources/output/jetton_Linker.abi index 4913b9c..64c8f3e 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":"setLinker","type":{"kind":"simple","type":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Vote","header":3060856014,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"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"}},{"receiver":"internal","message":{"kind":"typed","type":"ForwardToWallet"}}],"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"},"41207":{"message":"invalid sender"},"44816":{"message":"Wallet is blacklisted"},"61265":{"message":"Only the owner can trigger un-staking"},"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":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"VoteMsg","header":1493035179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"SetOwner","header":3072093686,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"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":"Proposal","header":null,"fields":[{"name":"type","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"blacklistAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":true}}]},{"name":"Vote","header":null,"fields":[{"name":"id","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"votes","type":{"kind":"dict","key":"int","value":"int"}},{"name":"vote_end","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"proposal","type":{"kind":"simple","type":"Proposal","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"ended","type":{"kind":"simple","type":"bool","optional":false}},{"name":"result","type":{"kind":"simple","type":"bool","optional":true}}]},{"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"}},{"receiver":"internal","message":{"kind":"typed","type":"ForwardToWallet"}}],"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"},"6873":{"message":"Only an admin can initiate a vote"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"16994":{"message":"Vote is finished"},"18474":{"message":"only the owner can set a new owner"},"19362":{"message":"Invalid quorum percent"},"29720":{"message":"Invalid vote"},"29821":{"message":"Voting requires at least 1 ton for the fees"},"30386":{"message":"Vote already ended"},"32366":{"message":"not enough money for deposit"},"34326":{"message":"Vote is not finished yet"},"37444":{"message":"Only a founder can request unstake"},"41207":{"message":"invalid sender"},"42983":{"message":"No profit to collect"},"44816":{"message":"Wallet is blacklisted"},"46931":{"message":"Invalid vote id"},"49606":{"message":"Invalid admin index"},"53981":{"message":"Only an admin can collect profit"},"56549":{"message":"Only an admin can vote"},"61070":{"message":"Invalid vote time"},"61265":{"message":"Only the owner can trigger un-staking"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_Linker.code.fc b/sources/output/jetton_Linker.code.fc index 6761e88..3df4470 100644 --- a/sources/output/jetton_Linker.code.fc +++ b/sources/output/jetton_Linker.code.fc @@ -229,5 +229,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmeGA7QUi3FCDzQtd9VhqDi1VpHx2sbycwoWaDsMsQNDS3"; + return "ipfs://QmPdxwain9Y3xSr42K9ApJ5UsTURQZGtDmdhUSMQqrzYux"; } \ No newline at end of file diff --git a/sources/output/jetton_Linker.code.fif b/sources/output/jetton_Linker.code.fif index 0b07d1b..5ad6450 100644 --- a/sources/output/jetton_Linker.code.fif +++ b/sources/output/jetton_Linker.code.fif @@ -354,6 +354,6 @@ PROGRAM{ 209801025412363888721030803524359905849 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d65474137515569334643447a51746439566871446931567048783273627963776f576144734d73514e445333} PUSHSLICE + x{697066733a2f2f516d5064787761696e39593378537234324b3941704a355573545552515a4774446d646855534d5171727a597578} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_Linker.md b/sources/output/jetton_Linker.md index c8c4706..301140f 100644 --- a/sources/output/jetton_Linker.md +++ b/sources/output/jetton_Linker.md @@ -3,7 +3,7 @@ Contract: Linker BOC Size: 645 bytes # Types -Total Types: 33 +Total Types: 36 ## StateInit TLB: `_ code:^cell data:^cell = StateInit` @@ -85,9 +85,9 @@ Signature: `InitiateLiquidationVote{adminIndex:int257,quorum_percent:int257,vote TLB: `finish_vote#2a574443 voteId:int257 = FinishVote` Signature: `FinishVote{voteId:int257}` -## Vote -TLB: `vote#b670f4ce voteId:int257 adminIndex:int257 vote:int257 = Vote` -Signature: `Vote{voteId:int257,adminIndex:int257,vote:int257}` +## VoteMsg +TLB: `vote_msg#58fde8ab voteId:int257 adminIndex:int257 vote:int257 = VoteMsg` +Signature: `VoteMsg{voteId:int257,adminIndex:int257,vote:int257}` ## AddressList TLB: `_ addresses:dict length:int257 = AddressList` @@ -121,10 +121,22 @@ Signature: `RequestUnstake{founderIndex:int257}` TLB: `collect_profit#51912735 adminIndex:int257 = CollectProfit` Signature: `CollectProfit{adminIndex:int257}` +## SetOwner +TLB: `set_owner#b71c6df6 owner:address = SetOwner` +Signature: `SetOwner{owner:address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` +## Proposal +TLB: `_ type:int257 blacklistAddress:Maybe address distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict} = Proposal` +Signature: `Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}}` + +## Vote +TLB: `_ id:int257 votes:dict vote_end:int257 proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}} quorum_percent:int257 ended:bool result:Maybe bool = Vote` +Signature: `Vote{id:int257,votes:dict,vote_end:int257,proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}},quorum_percent:int257,ended:bool,result:Maybe bool}` + ## ChangeOwner TLB: `change_owner#0f474d03 newOwner:address = ChangeOwner` Signature: `ChangeOwner{newOwner:address}` diff --git a/sources/output/jetton_Linker.pkg b/sources/output/jetton_Linker.pkg index 5f58c2b..144393e 100644 --- a/sources/output/jetton_Linker.pkg +++ b/sources/output/jetton_Linker.pkg @@ -1 +1 @@ -{"name":"Linker","code":"te6ccgECDwEAAnkAART/APSkE/S88sgLAQIBYgIDAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAggQFAgEgCQoBuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0BwKy7UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFATTHwGCEF0doru68uCB1AExEDRBMPhBbyRbgRFNMiXHBfL0fwFwgEAlA21t2zwGBwH2yHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkx/AcoAyHABygBwAcoAJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4iRus51/AcoABCBu8tCAUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6zCABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVAAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsAAV++KO9qJoagD8MUCAgOuAfSAAgP0gAIDqAOh9IBDrhYDhgEiAyRi28RiKIZg2Cm2eQLAgEgDA0ABhNfAwBNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAV+5W97UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFNs8gOAAgQI18D","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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Vote\",\"header\":3060856014,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"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\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"ForwardToWallet\"}}],\"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\"},\"41207\":{\"message\":\"invalid sender\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEASQABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAS2W0EyMxQJFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMm","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":"te6cckECEQEAAoMAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWILBAIBIAkFAgEgCAYBX7lb3tRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwU2zyAcACBAjXwMATbu9GCcFzsPV0srnsehOw51kqFG2aCcJ3WNS0rZHyzItOvLf3xYjmAFfvijvaiaGoA/DFAgIDrgH0gAID9IACA6gDofSAQ64WA4YBIgMkYtvEYiiGYNgptnkCgAGE18DAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAgg8MArLtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQXR2iu7ry4IHUATEQNEEw+EFvJFuBEU0yJccF8vR/AXCAQCUDbW3bPA0QAfbIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GOTH8BygDIcAHKAHABygAkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDiJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrMOADCcfwHKAAEgbvLQgAHMlTFwAcoA4skB+wABuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0EABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVIvqqJE="}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file +{"name":"Linker","code":"te6ccgECDwEAAnkAART/APSkE/S88sgLAQIBYgIDAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAggQFAgEgCQoBuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0BwKy7UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFATTHwGCEF0doru68uCB1AExEDRBMPhBbyRbgRFNMiXHBfL0fwFwgEAlA21t2zwGBwH2yHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkx/AcoAyHABygBwAcoAJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4iRus51/AcoABCBu8tCAUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6zCABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVAAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsAAV++KO9qJoagD8MUCAgOuAfSAAgP0gAIDqAOh9IBDrhYDhgEiAyRi28RiKIZg2Cm2eQLAgEgDA0ABhNfAwBNu70YJwXOw9XSyuex6E7DnWSoUbZoJwndY1LStkfLMi068t/fFiOYAV+5W97UTQ1AH4YoEBAdcA+kABAfpAAQHUAdD6QCHXCwHDAJEBkjFt4jEUQzBsFNs8gOAAgQI18D","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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"VoteMsg\",\"header\":1493035179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"SetOwner\",\"header\":3072093686,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"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\":\"Proposal\",\"header\":null,\"fields\":[{\"name\":\"type\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"blacklistAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":true}}]},{\"name\":\"Vote\",\"header\":null,\"fields\":[{\"name\":\"id\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"votes\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"vote_end\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"proposal\",\"type\":{\"kind\":\"simple\",\"type\":\"Proposal\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"ended\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"result\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":true}}]},{\"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\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"ForwardToWallet\"}}],\"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\"},\"6873\":{\"message\":\"Only an admin can initiate a vote\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"16994\":{\"message\":\"Vote is finished\"},\"18474\":{\"message\":\"only the owner can set a new owner\"},\"19362\":{\"message\":\"Invalid quorum percent\"},\"29720\":{\"message\":\"Invalid vote\"},\"29821\":{\"message\":\"Voting requires at least 1 ton for the fees\"},\"30386\":{\"message\":\"Vote already ended\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"34326\":{\"message\":\"Vote is not finished yet\"},\"37444\":{\"message\":\"Only a founder can request unstake\"},\"41207\":{\"message\":\"invalid sender\"},\"42983\":{\"message\":\"No profit to collect\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"46931\":{\"message\":\"Invalid vote id\"},\"49606\":{\"message\":\"Invalid admin index\"},\"53981\":{\"message\":\"Only an admin can collect profit\"},\"56549\":{\"message\":\"Only an admin can vote\"},\"61070\":{\"message\":\"Invalid vote time\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEASQABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAS2W0EyMxQJFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMm","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":"te6cckECEQEAAoMAAQHAAQEFodSXAgEU/wD0pBP0vPLICwMCAWILBAIBIAkFAgEgCAYBX7lb3tRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwU2zyAcACBAjXwMATbu9GCcFzsPV0srnsehOw51kqFG2aCcJ3WNS0rZHyzItOvLf3xYjmAFfvijvaiaGoA/DFAgIDrgH0gAID9IACA6gDofSAQ64WA4YBIgMkYtvEYiiGYNgptnkCgAGE18DAoLQcCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQKRW+AgghCz/PTBuuMCghBdHaK7uuMCMPLAgg8MArLtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQXR2iu7ry4IHUATEQNEEw+EFvJFuBEU0yJccF8vR/AXCAQCUDbW3bPA0QAfbIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GOTH8BygDIcAHKAHABygAkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDiJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrMOADCcfwHKAAEgbvLQgAHMlTFwAcoA4skB+wABuDDtRNDUAfhigQEB1wD6QAEB+kABAdQB0PpAIdcLAcMAkQGSMW3iMRRDMGwUBNMfAYIQs/z0wbry4IH6QCHXCwHDAJEBkjFt4jEQNEEwMfhBbyRbgRFNMiTHBfL0EABQyPhCAcxVMFA0gQEBzwABzxYBzxbIWCBulTBwAcsBks8W4skBzMntVIvqqJE="}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file diff --git a/sources/output/jetton_Linker.ts b/sources/output/jetton_Linker.ts index 6dbdf42..d5a13ae 100644 --- a/sources/output/jetton_Linker.ts +++ b/sources/output/jetton_Linker.ts @@ -1065,40 +1065,40 @@ function dictValueParserFinishVote(): DictionaryValue { } } } -export type Vote = { - $$type: 'Vote'; +export type VoteMsg = { + $$type: 'VoteMsg'; voteId: bigint; adminIndex: bigint; vote: bigint; } -export function storeVote(src: Vote) { +export function storeVoteMsg(src: VoteMsg) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3060856014, 32); + b_0.storeUint(1493035179, 32); b_0.storeInt(src.voteId, 257); b_0.storeInt(src.adminIndex, 257); b_0.storeInt(src.vote, 257); }; } -export function loadVote(slice: Slice) { +export function loadVoteMsg(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3060856014) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1493035179) { throw Error('Invalid prefix'); } let _voteId = sc_0.loadIntBig(257); let _adminIndex = sc_0.loadIntBig(257); let _vote = sc_0.loadIntBig(257); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function loadTupleVote(source: TupleReader) { +function loadTupleVoteMsg(source: TupleReader) { let _voteId = source.readBigNumber(); let _adminIndex = source.readBigNumber(); let _vote = source.readBigNumber(); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function storeTupleVote(source: Vote) { +function storeTupleVoteMsg(source: VoteMsg) { let builder = new TupleBuilder(); builder.writeNumber(source.voteId); builder.writeNumber(source.adminIndex); @@ -1106,13 +1106,13 @@ function storeTupleVote(source: Vote) { return builder.build(); } -function dictValueParserVote(): DictionaryValue { +function dictValueParserVoteMsg(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + buidler.storeRef(beginCell().store(storeVoteMsg(src)).endCell()); }, parse: (src) => { - return loadVote(src.loadRef().beginParse()); + return loadVoteMsg(src.loadRef().beginParse()); } } } @@ -1468,6 +1468,47 @@ function dictValueParserCollectProfit(): DictionaryValue { } } } +export type SetOwner = { + $$type: 'SetOwner'; + owner: Address; +} + +export function storeSetOwner(src: SetOwner) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeUint(3072093686, 32); + b_0.storeAddress(src.owner); + }; +} + +export function loadSetOwner(slice: Slice) { + let sc_0 = slice; + if (sc_0.loadUint(32) !== 3072093686) { throw Error('Invalid prefix'); } + let _owner = sc_0.loadAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function loadTupleSetOwner(source: TupleReader) { + let _owner = source.readAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function storeTupleSetOwner(source: SetOwner) { + let builder = new TupleBuilder(); + builder.writeAddress(source.owner); + return builder.build(); +} + +function dictValueParserSetOwner(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeSetOwner(src)).endCell()); + }, + parse: (src) => { + return loadSetOwner(src.loadRef().beginParse()); + } + } +} export type WithdrawalRequests = { $$type: 'WithdrawalRequests'; addresses: Dictionary; @@ -1517,6 +1558,135 @@ function dictValueParserWithdrawalRequests(): DictionaryValue { + let b_0 = builder; + b_0.storeInt(src.type, 257); + b_0.storeAddress(src.blacklistAddress); + if (src.distribution !== null && src.distribution !== undefined) { b_0.storeBit(true); b_0.store(storeDistribution(src.distribution)); } else { b_0.storeBit(false); } + }; +} + +export function loadProposal(slice: Slice) { + let sc_0 = slice; + let _type = sc_0.loadIntBig(257); + let _blacklistAddress = sc_0.loadMaybeAddress(); + let _distribution = sc_0.loadBit() ? loadDistribution(sc_0) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function loadTupleProposal(source: TupleReader) { + let _type = source.readBigNumber(); + let _blacklistAddress = source.readAddressOpt(); + const _distribution_p = source.readTupleOpt(); + const _distribution = _distribution_p ? loadTupleDistribution(_distribution_p) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function storeTupleProposal(source: Proposal) { + let builder = new TupleBuilder(); + builder.writeNumber(source.type); + builder.writeAddress(source.blacklistAddress); + if (source.distribution !== null && source.distribution !== undefined) { + builder.writeTuple(storeTupleDistribution(source.distribution)); + } else { + builder.writeTuple(null); + } + return builder.build(); +} + +function dictValueParserProposal(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeProposal(src)).endCell()); + }, + parse: (src) => { + return loadProposal(src.loadRef().beginParse()); + } + } +} +export type Vote = { + $$type: 'Vote'; + id: bigint; + votes: Dictionary; + vote_end: bigint; + proposal: Proposal; + quorum_percent: bigint; + ended: boolean; + result: boolean | null; +} + +export function storeVote(src: Vote) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeInt(src.id, 257); + b_0.storeDict(src.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)); + b_0.storeInt(src.vote_end, 257); + let b_1 = new Builder(); + b_1.store(storeProposal(src.proposal)); + let b_2 = new Builder(); + b_2.storeInt(src.quorum_percent, 257); + b_2.storeBit(src.ended); + if (src.result !== null && src.result !== undefined) { b_2.storeBit(true).storeBit(src.result); } else { b_2.storeBit(false); } + b_1.storeRef(b_2.endCell()); + b_0.storeRef(b_1.endCell()); + }; +} + +export function loadVote(slice: Slice) { + let sc_0 = slice; + let _id = sc_0.loadIntBig(257); + let _votes = Dictionary.load(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), sc_0); + let _vote_end = sc_0.loadIntBig(257); + let sc_1 = sc_0.loadRef().beginParse(); + let _proposal = loadProposal(sc_1); + let sc_2 = sc_1.loadRef().beginParse(); + let _quorum_percent = sc_2.loadIntBig(257); + let _ended = sc_2.loadBit(); + let _result = sc_2.loadBit() ? sc_2.loadBit() : null; + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function loadTupleVote(source: TupleReader) { + let _id = source.readBigNumber(); + let _votes = Dictionary.loadDirect(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), source.readCellOpt()); + let _vote_end = source.readBigNumber(); + const _proposal = loadTupleProposal(source.readTuple()); + let _quorum_percent = source.readBigNumber(); + let _ended = source.readBoolean(); + let _result = source.readBooleanOpt(); + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function storeTupleVote(source: Vote) { + let builder = new TupleBuilder(); + builder.writeNumber(source.id); + builder.writeCell(source.votes.size > 0 ? beginCell().storeDictDirect(source.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)).endCell() : null); + builder.writeNumber(source.vote_end); + builder.writeTuple(storeTupleProposal(source.proposal)); + builder.writeNumber(source.quorum_percent); + builder.writeBoolean(source.ended); + builder.writeBoolean(source.result); + return builder.build(); +} + +function dictValueParserVote(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + }, + parse: (src) => { + return loadVote(src.loadRef().beginParse()); + } + } +} export type ChangeOwner = { $$type: 'ChangeOwner'; newOwner: Address; @@ -1695,11 +1865,26 @@ const Linker_errors: { [key: number]: { message: string } } = { 136: { message: `Invalid address` }, 4429: { message: `Invalid sender` }, 6384: { message: `not enough money for withdraw` }, + 6873: { message: `Only an admin can initiate a vote` }, 13650: { message: `Invalid bounced message` }, 16059: { message: `Invalid value` }, + 16994: { message: `Vote is finished` }, + 18474: { message: `only the owner can set a new owner` }, + 19362: { message: `Invalid quorum percent` }, + 29720: { message: `Invalid vote` }, + 29821: { message: `Voting requires at least 1 ton for the fees` }, + 30386: { message: `Vote already ended` }, 32366: { message: `not enough money for deposit` }, + 34326: { message: `Vote is not finished yet` }, + 37444: { message: `Only a founder can request unstake` }, 41207: { message: `invalid sender` }, + 42983: { message: `No profit to collect` }, 44816: { message: `Wallet is blacklisted` }, + 46931: { message: `Invalid vote id` }, + 49606: { message: `Invalid admin index` }, + 53981: { message: `Only an admin can collect profit` }, + 56549: { message: `Only an admin can vote` }, + 61070: { message: `Invalid vote time` }, 61265: { message: `Only the owner can trigger un-staking` }, 62972: { message: `Invalid balance` }, } diff --git a/sources/output/jetton_PseudoStaking.abi b/sources/output/jetton_PseudoStaking.abi index 56dc2d8..863090e 100644 --- a/sources/output/jetton_PseudoStaking.abi +++ b/sources/output/jetton_PseudoStaking.abi @@ -1 +1 @@ -{"name":"PseudoStaking","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":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Vote","header":3060856014,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"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":"text","text":"Deposit"}},{"receiver":"internal","message":{"kind":"typed","type":"StakingWithdraw"}},{"receiver":"internal","message":{"kind":"any"}}],"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"},"41207":{"message":"invalid sender"},"44816":{"message":"Wallet is blacklisted"},"61265":{"message":"Only the owner can trigger un-staking"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file +{"name":"PseudoStaking","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":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"VoteMsg","header":1493035179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"SetOwner","header":3072093686,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"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":"Proposal","header":null,"fields":[{"name":"type","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"blacklistAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":true}}]},{"name":"Vote","header":null,"fields":[{"name":"id","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"votes","type":{"kind":"dict","key":"int","value":"int"}},{"name":"vote_end","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"proposal","type":{"kind":"simple","type":"Proposal","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"ended","type":{"kind":"simple","type":"bool","optional":false}},{"name":"result","type":{"kind":"simple","type":"bool","optional":true}}]},{"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":"text","text":"Deposit"}},{"receiver":"internal","message":{"kind":"typed","type":"StakingWithdraw"}},{"receiver":"internal","message":{"kind":"any"}}],"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"},"6873":{"message":"Only an admin can initiate a vote"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"16994":{"message":"Vote is finished"},"18474":{"message":"only the owner can set a new owner"},"19362":{"message":"Invalid quorum percent"},"29720":{"message":"Invalid vote"},"29821":{"message":"Voting requires at least 1 ton for the fees"},"30386":{"message":"Vote already ended"},"32366":{"message":"not enough money for deposit"},"34326":{"message":"Vote is not finished yet"},"37444":{"message":"Only a founder can request unstake"},"41207":{"message":"invalid sender"},"42983":{"message":"No profit to collect"},"44816":{"message":"Wallet is blacklisted"},"46931":{"message":"Invalid vote id"},"49606":{"message":"Invalid admin index"},"53981":{"message":"Only an admin can collect profit"},"56549":{"message":"Only an admin can vote"},"61070":{"message":"Invalid vote time"},"61265":{"message":"Only the owner can trigger un-staking"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_PseudoStaking.code.fc b/sources/output/jetton_PseudoStaking.code.fc index 497d968..b2aca64 100644 --- a/sources/output/jetton_PseudoStaking.code.fc +++ b/sources/output/jetton_PseudoStaking.code.fc @@ -284,5 +284,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmTpVYvpJy7wvLrPak1F6KJSC44yccvcdix7pmrnjZmAHa"; + return "ipfs://QmauXGiekdCW4GNrULhiN8JhMuRfKgUTpLsD9DTSjKjW2f"; } \ No newline at end of file diff --git a/sources/output/jetton_PseudoStaking.code.fif b/sources/output/jetton_PseudoStaking.code.fif index 62eff4e..8e099e6 100644 --- a/sources/output/jetton_PseudoStaking.code.fif +++ b/sources/output/jetton_PseudoStaking.code.fif @@ -490,6 +490,6 @@ PROGRAM{ 209801025412363888721030803524359905849 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d5470565976704a793777764c7250616b3146364b4a53433434796363766364697837706d726e6a5a6d414861} PUSHSLICE + x{697066733a2f2f516d6175584769656b64435734474e72554c68694e384a684d7552664b675554704c7344394454536a4b6a573266} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_PseudoStaking.md b/sources/output/jetton_PseudoStaking.md index c981967..bbb9e77 100644 --- a/sources/output/jetton_PseudoStaking.md +++ b/sources/output/jetton_PseudoStaking.md @@ -3,7 +3,7 @@ Contract: PseudoStaking BOC Size: 876 bytes # Types -Total Types: 33 +Total Types: 36 ## StateInit TLB: `_ code:^cell data:^cell = StateInit` @@ -85,9 +85,9 @@ Signature: `InitiateLiquidationVote{adminIndex:int257,quorum_percent:int257,vote TLB: `finish_vote#2a574443 voteId:int257 = FinishVote` Signature: `FinishVote{voteId:int257}` -## Vote -TLB: `vote#b670f4ce voteId:int257 adminIndex:int257 vote:int257 = Vote` -Signature: `Vote{voteId:int257,adminIndex:int257,vote:int257}` +## VoteMsg +TLB: `vote_msg#58fde8ab voteId:int257 adminIndex:int257 vote:int257 = VoteMsg` +Signature: `VoteMsg{voteId:int257,adminIndex:int257,vote:int257}` ## AddressList TLB: `_ addresses:dict length:int257 = AddressList` @@ -121,10 +121,22 @@ Signature: `RequestUnstake{founderIndex:int257}` TLB: `collect_profit#51912735 adminIndex:int257 = CollectProfit` Signature: `CollectProfit{adminIndex:int257}` +## SetOwner +TLB: `set_owner#b71c6df6 owner:address = SetOwner` +Signature: `SetOwner{owner:address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` +## Proposal +TLB: `_ type:int257 blacklistAddress:Maybe address distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict} = Proposal` +Signature: `Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}}` + +## Vote +TLB: `_ id:int257 votes:dict vote_end:int257 proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}} quorum_percent:int257 ended:bool result:Maybe bool = Vote` +Signature: `Vote{id:int257,votes:dict,vote_end:int257,proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}},quorum_percent:int257,ended:bool,result:Maybe bool}` + ## ChangeOwner TLB: `change_owner#0f474d03 newOwner:address = ChangeOwner` Signature: `ChangeOwner{newOwner:address}` diff --git a/sources/output/jetton_PseudoStaking.pkg b/sources/output/jetton_PseudoStaking.pkg index 38180ac..9c14e08 100644 --- a/sources/output/jetton_PseudoStaking.pkg +++ b/sources/output/jetton_PseudoStaking.pkg @@ -1 +1 @@ -{"name":"PseudoStaking","code":"te6ccgECDwEAA2AAART/APSkE/S88sgLAQIBYgIDAgLNBAUATaF3owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwPp120Xb9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfAQQQhtQB9+3UdWGHaiaGoA/DF6AgCYgOmPgMEIbUAfft15cED9AACY7Z5kfCEA5gCA+gBk9qpwYABxgHaiaGoA/DF6AgCYgMBgcIACNohbpVbWfRZMODIAc8AQTP0QYC9vhBbyQQI18DIcAAjiQxIYEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbvLQgKdugGSpBAHegQELVHMBgQEBQTP0Cm+hlAHXADCSW23iIG7y0IAjoSIQNQGBAQHwBiCBAQskgQEBQTP0Cm+hlAHXADCSW23iIG7y0IDBAOMAfwkKAO4g+QGC8C3LGaW4nbnTN3/GUcb5trktub5iQGDGKlBXLNyXloY4uo5OMO1E0NQB+GL0BAEx+EFvJDAyIoEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbpIwcN6BAQsBIG7y0IBQA6CBAQHwBsj4QgHMAQH0AMntVNsx4ACa0x8wghB7zR/vuo40+EFvJDAyIoEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbpIwcN6BAQsBIG7y0IBQA6CBAQHwBt7I+EIBzAEB9ADJ7VQAFIEBCyNwgQEB8AYCQHCNBJXaXRoZHJhdyBjb21wbGV0ZWSDbPBAkEDVtbds8CwwBQshwAcsfbwABb4xtb4wB2zxvIgHJkyFus5YBbyJZzMnoMQ0B9shxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5MfwHKAMhwAcoAcAHKACRus51/AcoABCBu8tCAUATMljQDcAHKAOIkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFusw4AuiDXSiHXSZcgwgAiwgCxjkoDbyKAfyLPMasCoQWrAlFVtgggwgCcIKoCFdcYUDPPFkAU3llvAlNBocIAmcgBbwJQRKGqAo4SMTPCAJnUMNAg10oh10mScCDi4uhfAwAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsA","abi":"{\"name\":\"PseudoStaking\",\"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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Vote\",\"header\":3060856014,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"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\":\"text\",\"text\":\"Deposit\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"StakingWithdraw\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"any\"}}],\"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\"},\"41207\":{\"message\":\"invalid sender\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEALQABFP8A9KQT9LzyyAsBAgFiAgMCAs4EBQAJoUrd4AUAAUgAE0bQHIzAEB9ADJg=","args":[],"deployment":{"kind":"system-cell","system":"te6cckECEQEAA2oAAQHAAQEFoGa7AgEU/wD0pBP0vPLICwMCAWIFBABNoXejBOC52Hq6WVz2PQnYc6yVCjbNBOE7rGpaVsj5ZkWnXlv74sRzAgLNBwYAI2iFulVtZ9Fkw4MgBzwBBM/RBgPp120Xb9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfAQQQhtQB9+3UdWGHaiaGoA/DF6AgCYgOmPgMEIbUAfft15cED9AACY7Z5kfCEA5gCA+gBk9qpwYABxgHaiaGoA/DF6AgCYgMCgkIAJrTHzCCEHvNH++6jjT4QW8kMDIigQELIoEBAUEz9ApvoZQB1wAwkltt4iBukjBw3oEBCwEgbvLQgFADoIEBAfAG3sj4QgHMAQH0AMntVADuIPkBgvAtyxmluJ250zd/xlHG+ba5Lbm+YkBgxipQVyzcl5aGOLqOTjDtRNDUAfhi9AQBMfhBbyQwMiKBAQsigQEBQTP0Cm+hlAHXADCSW23iIG6SMHDegQELASBu8tCAUAOggQEB8AbI+EIBzAEB9ADJ7VTbMeAC9vhBbyQQI18DIcAAjiQxIYEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbvLQgKdugGSpBAHegQELVHMBgQEBQTP0Cm+hlAHXADCSW23iIG7y0IAjoSIQNQGBAQHwBiCBAQskgQEBQTP0Cm+hlAHXADCSW23iIG7y0IDBAOMAfxALAkBwjQSV2l0aGRyYXcgY29tcGxldGVkg2zwQJBA1bW3bPA4MAfbIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GOTH8BygDIcAHKAHABygAkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDiJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrMNADCcfwHKAAEgbvLQgAHMlTFwAcoA4skB+wABQshwAcsfbwABb4xtb4wB2zxvIgHJkyFus5YBbyJZzMnoMQ8AuiDXSiHXSZcgwgAiwgCxjkoDbyKAfyLPMasCoQWrAlFVtgggwgCcIKoCFdcYUDPPFkAU3llvAlNBocIAmcgBbwJQRKGqAo4SMTPCAJnUMNAg10oh10mScCDi4uhfAwAUgQELI3CBAQHwBpIeRwU="}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file +{"name":"PseudoStaking","code":"te6ccgECDwEAA2AAART/APSkE/S88sgLAQIBYgIDAgLNBAUATaF3owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwPp120Xb9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfAQQQhtQB9+3UdWGHaiaGoA/DF6AgCYgOmPgMEIbUAfft15cED9AACY7Z5kfCEA5gCA+gBk9qpwYABxgHaiaGoA/DF6AgCYgMBgcIACNohbpVbWfRZMODIAc8AQTP0QYC9vhBbyQQI18DIcAAjiQxIYEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbvLQgKdugGSpBAHegQELVHMBgQEBQTP0Cm+hlAHXADCSW23iIG7y0IAjoSIQNQGBAQHwBiCBAQskgQEBQTP0Cm+hlAHXADCSW23iIG7y0IDBAOMAfwkKAO4g+QGC8C3LGaW4nbnTN3/GUcb5trktub5iQGDGKlBXLNyXloY4uo5OMO1E0NQB+GL0BAEx+EFvJDAyIoEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbpIwcN6BAQsBIG7y0IBQA6CBAQHwBsj4QgHMAQH0AMntVNsx4ACa0x8wghB7zR/vuo40+EFvJDAyIoEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbpIwcN6BAQsBIG7y0IBQA6CBAQHwBt7I+EIBzAEB9ADJ7VQAFIEBCyNwgQEB8AYCQHCNBJXaXRoZHJhdyBjb21wbGV0ZWSDbPBAkEDVtbds8CwwBQshwAcsfbwABb4xtb4wB2zxvIgHJkyFus5YBbyJZzMnoMQ0B9shxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5MfwHKAMhwAcoAcAHKACRus51/AcoABCBu8tCAUATMljQDcAHKAOIkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFusw4AuiDXSiHXSZcgwgAiwgCxjkoDbyKAfyLPMasCoQWrAlFVtgggwgCcIKoCFdcYUDPPFkAU3llvAlNBocIAmcgBbwJQRKGqAo4SMTPCAJnUMNAg10oh10mScCDi4uhfAwAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsA","abi":"{\"name\":\"PseudoStaking\",\"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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"VoteMsg\",\"header\":1493035179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"SetOwner\",\"header\":3072093686,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"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\":\"Proposal\",\"header\":null,\"fields\":[{\"name\":\"type\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"blacklistAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":true}}]},{\"name\":\"Vote\",\"header\":null,\"fields\":[{\"name\":\"id\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"votes\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"vote_end\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"proposal\",\"type\":{\"kind\":\"simple\",\"type\":\"Proposal\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"ended\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"result\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":true}}]},{\"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\":\"text\",\"text\":\"Deposit\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"StakingWithdraw\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"any\"}}],\"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\"},\"6873\":{\"message\":\"Only an admin can initiate a vote\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"16994\":{\"message\":\"Vote is finished\"},\"18474\":{\"message\":\"only the owner can set a new owner\"},\"19362\":{\"message\":\"Invalid quorum percent\"},\"29720\":{\"message\":\"Invalid vote\"},\"29821\":{\"message\":\"Voting requires at least 1 ton for the fees\"},\"30386\":{\"message\":\"Vote already ended\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"34326\":{\"message\":\"Vote is not finished yet\"},\"37444\":{\"message\":\"Only a founder can request unstake\"},\"41207\":{\"message\":\"invalid sender\"},\"42983\":{\"message\":\"No profit to collect\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"46931\":{\"message\":\"Invalid vote id\"},\"49606\":{\"message\":\"Invalid admin index\"},\"53981\":{\"message\":\"Only an admin can collect profit\"},\"56549\":{\"message\":\"Only an admin can vote\"},\"61070\":{\"message\":\"Invalid vote time\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEALQABFP8A9KQT9LzyyAsBAgFiAgMCAs4EBQAJoUrd4AUAAUgAE0bQHIzAEB9ADJg=","args":[],"deployment":{"kind":"system-cell","system":"te6cckECEQEAA2oAAQHAAQEFoGa7AgEU/wD0pBP0vPLICwMCAWIFBABNoXejBOC52Hq6WVz2PQnYc6yVCjbNBOE7rGpaVsj5ZkWnXlv74sRzAgLNBwYAI2iFulVtZ9Fkw4MgBzwBBM/RBgPp120Xb9uBDrpOEPypgQa4WP7wFoaYGAuNhgAMi/yLhxAP0gESgzN4J8MIFIrfAQQQhtQB9+3UdWGHaiaGoA/DF6AgCYgOmPgMEIbUAfft15cED9AACY7Z5kfCEA5gCA+gBk9qpwYABxgHaiaGoA/DF6AgCYgMCgkIAJrTHzCCEHvNH++6jjT4QW8kMDIigQELIoEBAUEz9ApvoZQB1wAwkltt4iBukjBw3oEBCwEgbvLQgFADoIEBAfAG3sj4QgHMAQH0AMntVADuIPkBgvAtyxmluJ250zd/xlHG+ba5Lbm+YkBgxipQVyzcl5aGOLqOTjDtRNDUAfhi9AQBMfhBbyQwMiKBAQsigQEBQTP0Cm+hlAHXADCSW23iIG6SMHDegQELASBu8tCAUAOggQEB8AbI+EIBzAEB9ADJ7VTbMeAC9vhBbyQQI18DIcAAjiQxIYEBCyKBAQFBM/QKb6GUAdcAMJJbbeIgbvLQgKdugGSpBAHegQELVHMBgQEBQTP0Cm+hlAHXADCSW23iIG7y0IAjoSIQNQGBAQHwBiCBAQskgQEBQTP0Cm+hlAHXADCSW23iIG7y0IDBAOMAfxALAkBwjQSV2l0aGRyYXcgY29tcGxldGVkg2zwQJBA1bW3bPA4MAfbIcQHKAVAHAcoAcAHKAlAFzxZQA/oCcAHKaCNusyVus7GOTH8BygDIcAHKAHABygAkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDiJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4nABygACfwHKAALJWMyXMzMBcAHKAOIhbrMNADCcfwHKAAEgbvLQgAHMlTFwAcoA4skB+wABQshwAcsfbwABb4xtb4wB2zxvIgHJkyFus5YBbyJZzMnoMQ8AuiDXSiHXSZcgwgAiwgCxjkoDbyKAfyLPMasCoQWrAlFVtgggwgCcIKoCFdcYUDPPFkAU3llvAlNBocIAmcgBbwJQRKGqAo4SMTPCAJnUMNAg10oh10mScCDi4uhfAwAUgQELI3CBAQHwBpIeRwU="}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file diff --git a/sources/output/jetton_PseudoStaking.ts b/sources/output/jetton_PseudoStaking.ts index 5e17a95..baa4930 100644 --- a/sources/output/jetton_PseudoStaking.ts +++ b/sources/output/jetton_PseudoStaking.ts @@ -1065,40 +1065,40 @@ function dictValueParserFinishVote(): DictionaryValue { } } } -export type Vote = { - $$type: 'Vote'; +export type VoteMsg = { + $$type: 'VoteMsg'; voteId: bigint; adminIndex: bigint; vote: bigint; } -export function storeVote(src: Vote) { +export function storeVoteMsg(src: VoteMsg) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3060856014, 32); + b_0.storeUint(1493035179, 32); b_0.storeInt(src.voteId, 257); b_0.storeInt(src.adminIndex, 257); b_0.storeInt(src.vote, 257); }; } -export function loadVote(slice: Slice) { +export function loadVoteMsg(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3060856014) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1493035179) { throw Error('Invalid prefix'); } let _voteId = sc_0.loadIntBig(257); let _adminIndex = sc_0.loadIntBig(257); let _vote = sc_0.loadIntBig(257); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function loadTupleVote(source: TupleReader) { +function loadTupleVoteMsg(source: TupleReader) { let _voteId = source.readBigNumber(); let _adminIndex = source.readBigNumber(); let _vote = source.readBigNumber(); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function storeTupleVote(source: Vote) { +function storeTupleVoteMsg(source: VoteMsg) { let builder = new TupleBuilder(); builder.writeNumber(source.voteId); builder.writeNumber(source.adminIndex); @@ -1106,13 +1106,13 @@ function storeTupleVote(source: Vote) { return builder.build(); } -function dictValueParserVote(): DictionaryValue { +function dictValueParserVoteMsg(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + buidler.storeRef(beginCell().store(storeVoteMsg(src)).endCell()); }, parse: (src) => { - return loadVote(src.loadRef().beginParse()); + return loadVoteMsg(src.loadRef().beginParse()); } } } @@ -1468,6 +1468,47 @@ function dictValueParserCollectProfit(): DictionaryValue { } } } +export type SetOwner = { + $$type: 'SetOwner'; + owner: Address; +} + +export function storeSetOwner(src: SetOwner) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeUint(3072093686, 32); + b_0.storeAddress(src.owner); + }; +} + +export function loadSetOwner(slice: Slice) { + let sc_0 = slice; + if (sc_0.loadUint(32) !== 3072093686) { throw Error('Invalid prefix'); } + let _owner = sc_0.loadAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function loadTupleSetOwner(source: TupleReader) { + let _owner = source.readAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function storeTupleSetOwner(source: SetOwner) { + let builder = new TupleBuilder(); + builder.writeAddress(source.owner); + return builder.build(); +} + +function dictValueParserSetOwner(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeSetOwner(src)).endCell()); + }, + parse: (src) => { + return loadSetOwner(src.loadRef().beginParse()); + } + } +} export type WithdrawalRequests = { $$type: 'WithdrawalRequests'; addresses: Dictionary; @@ -1517,6 +1558,135 @@ function dictValueParserWithdrawalRequests(): DictionaryValue { + let b_0 = builder; + b_0.storeInt(src.type, 257); + b_0.storeAddress(src.blacklistAddress); + if (src.distribution !== null && src.distribution !== undefined) { b_0.storeBit(true); b_0.store(storeDistribution(src.distribution)); } else { b_0.storeBit(false); } + }; +} + +export function loadProposal(slice: Slice) { + let sc_0 = slice; + let _type = sc_0.loadIntBig(257); + let _blacklistAddress = sc_0.loadMaybeAddress(); + let _distribution = sc_0.loadBit() ? loadDistribution(sc_0) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function loadTupleProposal(source: TupleReader) { + let _type = source.readBigNumber(); + let _blacklistAddress = source.readAddressOpt(); + const _distribution_p = source.readTupleOpt(); + const _distribution = _distribution_p ? loadTupleDistribution(_distribution_p) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function storeTupleProposal(source: Proposal) { + let builder = new TupleBuilder(); + builder.writeNumber(source.type); + builder.writeAddress(source.blacklistAddress); + if (source.distribution !== null && source.distribution !== undefined) { + builder.writeTuple(storeTupleDistribution(source.distribution)); + } else { + builder.writeTuple(null); + } + return builder.build(); +} + +function dictValueParserProposal(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeProposal(src)).endCell()); + }, + parse: (src) => { + return loadProposal(src.loadRef().beginParse()); + } + } +} +export type Vote = { + $$type: 'Vote'; + id: bigint; + votes: Dictionary; + vote_end: bigint; + proposal: Proposal; + quorum_percent: bigint; + ended: boolean; + result: boolean | null; +} + +export function storeVote(src: Vote) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeInt(src.id, 257); + b_0.storeDict(src.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)); + b_0.storeInt(src.vote_end, 257); + let b_1 = new Builder(); + b_1.store(storeProposal(src.proposal)); + let b_2 = new Builder(); + b_2.storeInt(src.quorum_percent, 257); + b_2.storeBit(src.ended); + if (src.result !== null && src.result !== undefined) { b_2.storeBit(true).storeBit(src.result); } else { b_2.storeBit(false); } + b_1.storeRef(b_2.endCell()); + b_0.storeRef(b_1.endCell()); + }; +} + +export function loadVote(slice: Slice) { + let sc_0 = slice; + let _id = sc_0.loadIntBig(257); + let _votes = Dictionary.load(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), sc_0); + let _vote_end = sc_0.loadIntBig(257); + let sc_1 = sc_0.loadRef().beginParse(); + let _proposal = loadProposal(sc_1); + let sc_2 = sc_1.loadRef().beginParse(); + let _quorum_percent = sc_2.loadIntBig(257); + let _ended = sc_2.loadBit(); + let _result = sc_2.loadBit() ? sc_2.loadBit() : null; + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function loadTupleVote(source: TupleReader) { + let _id = source.readBigNumber(); + let _votes = Dictionary.loadDirect(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), source.readCellOpt()); + let _vote_end = source.readBigNumber(); + const _proposal = loadTupleProposal(source.readTuple()); + let _quorum_percent = source.readBigNumber(); + let _ended = source.readBoolean(); + let _result = source.readBooleanOpt(); + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function storeTupleVote(source: Vote) { + let builder = new TupleBuilder(); + builder.writeNumber(source.id); + builder.writeCell(source.votes.size > 0 ? beginCell().storeDictDirect(source.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)).endCell() : null); + builder.writeNumber(source.vote_end); + builder.writeTuple(storeTupleProposal(source.proposal)); + builder.writeNumber(source.quorum_percent); + builder.writeBoolean(source.ended); + builder.writeBoolean(source.result); + return builder.build(); +} + +function dictValueParserVote(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + }, + parse: (src) => { + return loadVote(src.loadRef().beginParse()); + } + } +} export type ChangeOwner = { $$type: 'ChangeOwner'; newOwner: Address; @@ -1692,11 +1862,26 @@ const PseudoStaking_errors: { [key: number]: { message: string } } = { 136: { message: `Invalid address` }, 4429: { message: `Invalid sender` }, 6384: { message: `not enough money for withdraw` }, + 6873: { message: `Only an admin can initiate a vote` }, 13650: { message: `Invalid bounced message` }, 16059: { message: `Invalid value` }, + 16994: { message: `Vote is finished` }, + 18474: { message: `only the owner can set a new owner` }, + 19362: { message: `Invalid quorum percent` }, + 29720: { message: `Invalid vote` }, + 29821: { message: `Voting requires at least 1 ton for the fees` }, + 30386: { message: `Vote already ended` }, 32366: { message: `not enough money for deposit` }, + 34326: { message: `Vote is not finished yet` }, + 37444: { message: `Only a founder can request unstake` }, 41207: { message: `invalid sender` }, + 42983: { message: `No profit to collect` }, 44816: { message: `Wallet is blacklisted` }, + 46931: { message: `Invalid vote id` }, + 49606: { message: `Invalid admin index` }, + 53981: { message: `Only an admin can collect profit` }, + 56549: { message: `Only an admin can vote` }, + 61070: { message: `Invalid vote time` }, 61265: { message: `Only the owner can trigger un-staking` }, 62972: { message: `Invalid balance` }, } diff --git a/sources/output/jetton_TONB.abi b/sources/output/jetton_TONB.abi index 0928926..a13c0da 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":"setLinker","type":{"kind":"simple","type":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Vote","header":3060856014,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"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":"SetStakingPool"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenUpdateContent"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurnNotification"}},{"receiver":"internal","message":{"kind":"typed","type":"BlacklistWallet"}},{"receiver":"internal","message":{"kind":"typed","type":"RequestLinker"}},{"receiver":"internal","message":{"kind":"text","text":"Withdraw completed"}},{"receiver":"internal","message":{"kind":"typed","type":"Unstake"}}],"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"},"41207":{"message":"invalid sender"},"44816":{"message":"Wallet is blacklisted"},"61265":{"message":"Only the owner can trigger un-staking"},"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":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"VoteMsg","header":1493035179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"SetOwner","header":3072093686,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"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":"Proposal","header":null,"fields":[{"name":"type","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"blacklistAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":true}}]},{"name":"Vote","header":null,"fields":[{"name":"id","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"votes","type":{"kind":"dict","key":"int","value":"int"}},{"name":"vote_end","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"proposal","type":{"kind":"simple","type":"Proposal","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"ended","type":{"kind":"simple","type":"bool","optional":false}},{"name":"result","type":{"kind":"simple","type":"bool","optional":true}}]},{"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":"SetStakingPool"}},{"receiver":"internal","message":{"kind":"typed","type":"SetOwner"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenUpdateContent"}},{"receiver":"internal","message":{"kind":"typed","type":"TokenBurnNotification"}},{"receiver":"internal","message":{"kind":"typed","type":"BlacklistWallet"}},{"receiver":"internal","message":{"kind":"typed","type":"RequestLinker"}},{"receiver":"internal","message":{"kind":"text","text":"Withdraw completed"}},{"receiver":"internal","message":{"kind":"typed","type":"Unstake"}}],"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"},"6873":{"message":"Only an admin can initiate a vote"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"16994":{"message":"Vote is finished"},"18474":{"message":"only the owner can set a new owner"},"19362":{"message":"Invalid quorum percent"},"29720":{"message":"Invalid vote"},"29821":{"message":"Voting requires at least 1 ton for the fees"},"30386":{"message":"Vote already ended"},"32366":{"message":"not enough money for deposit"},"34326":{"message":"Vote is not finished yet"},"37444":{"message":"Only a founder can request unstake"},"41207":{"message":"invalid sender"},"42983":{"message":"No profit to collect"},"44816":{"message":"Wallet is blacklisted"},"46931":{"message":"Invalid vote id"},"49606":{"message":"Invalid admin index"},"53981":{"message":"Only an admin can collect profit"},"56549":{"message":"Only an admin can vote"},"61070":{"message":"Invalid vote time"},"61265":{"message":"Only the owner can trigger un-staking"},"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 bba5a66..7af0a72 100644 Binary files a/sources/output/jetton_TONB.code.boc and b/sources/output/jetton_TONB.code.boc differ diff --git a/sources/output/jetton_TONB.code.fc b/sources/output/jetton_TONB.code.fc index a0bbab6..62bd66a 100644 --- a/sources/output/jetton_TONB.code.fc +++ b/sources/output/jetton_TONB.code.fc @@ -229,6 +229,12 @@ cell __gen_writecell_Unstake((int) v) inline_ref { return (sc_0, (v'amount)); } +(slice, ((slice))) __gen_read_SetOwner(slice sc_0) inline { + throw_unless(129, sc_0~load_uint(32) == 3072093686); + var v'owner = sc_0~__tact_load_address(); + return (sc_0, (v'owner)); +} + builder __gen_write_WithdrawalRequests(builder build_0, (cell, cell, int) v) inline { var (v'addresses, v'amounts, v'n_requests) = v; build_0 = build_0.store_dict(v'addresses); @@ -590,6 +596,14 @@ _ $__gen_get_owner() method_id(83229) { return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ()); } +(((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_SetOwner((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (slice) $msg) impure inline { + var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self; + var ($msg'owner) = $msg; + throw_unless(18474, __tact_address_eq($self'owner, __gen_Context_get_sender(__tact_context_get()))); + $self'owner = $msg'owner; + return (($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)), ()); +} + (((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int))), ()) $__gen_TONB_receive_TokenUpdateContent((int, slice, cell, int, slice, slice, int, slice, int, (cell, cell, int)) $self, (cell) $msg) impure inline { var ($self'totalSupply, $self'owner, $self'content, $self'mintable, $self'first_linker, $self'last_linker, $self'n_linkers, $self'staking_pool, $self'in_the_pool, ($self'withdrawal_requests'addresses, $self'withdrawal_requests'amounts, $self'withdrawal_requests'n_requests)) = $self; var ($msg'content) = $msg; @@ -731,6 +745,15 @@ _ $__gen_get_owner() method_id(83229) { return (); } + ;; Receive SetOwner message + if (op == 3072093686) { + var self = __gen_load_TONB(); + var msg = in_msg~__gen_read_SetOwner(); + self~$__gen_TONB_receive_SetOwner(msg); + __gen_store_TONB(self); + return (); + } + ;; Receive TokenUpdateContent message if (op == 201882270) { var self = __gen_load_TONB(); @@ -802,5 +825,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmZei32YRHJRnTCv7qY3WpT16zADJCXJ6BC996CpHaiRqG"; + return "ipfs://QmdViWXtZGNYCoQZNSUs9hgbK9arhozuqfVQidHJKMgjor"; } \ No newline at end of file diff --git a/sources/output/jetton_TONB.code.fif b/sources/output/jetton_TONB.code.fif index df6facf..1508017 100644 --- a/sources/output/jetton_TONB.code.fif +++ b/sources/output/jetton_TONB.code.fif @@ -33,6 +33,7 @@ PROGRAM{ DECLPROC __gen_write_Unstake DECLPROC __gen_writecell_Unstake DECLPROC __gen_read_Unstake + DECLPROC __gen_read_SetOwner DECLPROC __gen_write_WithdrawalRequests DECLPROC __gen_read_WithdrawalRequests DECLPROC __gen_read_Deposit @@ -74,6 +75,7 @@ PROGRAM{ DECLPROC $__gen_TONB_receive DECLPROC $__gen_TONB_receive_Withdraw DECLPROC $__gen_TONB_receive_SetStakingPool + DECLPROC $__gen_TONB_receive_SetOwner DECLPROC $__gen_TONB_receive_TokenUpdateContent DECLPROC $__gen_TONB_receive_TokenBurnNotification DECLPROC $__gen_TONB_receive_BlacklistWallet @@ -405,6 +407,14 @@ PROGRAM{ LDIX SWAP }> + __gen_read_SetOwner PROCINLINE:<{ + 32 LDU + SWAP + 3072093686 PUSHINT + EQUAL + 129 THROWIFNOT + __tact_load_address INLINECALLDICT + }> __gen_write_WithdrawalRequests PROCINLINE:<{ s2 s3 XCHG2 STDICT @@ -1023,6 +1033,15 @@ PROGRAM{ $__gen_TONB_receive_SetStakingPool PROCINLINE:<{ s5 POP }> + $__gen_TONB_receive_SetOwner PROCINLINE:<{ + 18474 PUSHINT + __tact_context_get INLINECALLDICT + __gen_Context_get_sender INLINECALLDICT + s1 s13 XCHG + __tact_address_eq INLINECALLDICT + s1 s12 XCHG + THROWANYIFNOT + }> $__gen_TONB_receive_TokenUpdateContent PROCINLINE:<{ 12 -ROLL $__gen_TONB_requireOwner INLINECALLDICT @@ -1389,6 +1408,28 @@ PROGRAM{ __gen_store_TONB INLINECALLDICT }> DUP + 3072093686 PUSHINT + EQUAL + IFJMP:<{ + DROP + __gen_load_TONB INLINECALLDICT + s0 s12 XCHG + __gen_read_SetOwner INLINECALLDICT + NIP + s11 s12 XCHG + s10 s11 XCHG + s9 s10 XCHG + s8 s9 XCHG + s7 s8 XCHG + s6 s7 XCHG + s5 s6 XCHG + s4 s5 XCHG + s3 s4 XCHG + s1 s3 s0 XCHG3 + $__gen_TONB_receive_SetOwner INLINECALLDICT + __gen_store_TONB INLINECALLDICT + }> + DUP 201882270 PUSHINT EQUAL IFJMP:<{ @@ -1523,6 +1564,6 @@ PROGRAM{ 86142586315491086060343270784266291122 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d5a656933325952484a526e5443763771593357705431367a41444a43584a3642433939364370486169527147} PUSHSLICE + x{697066733a2f2f516d6456695758745a474e59436f515a4e535573396867624b396172686f7a75716656516964484a4b4d676a6f72} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_TONB.code.rev.fif b/sources/output/jetton_TONB.code.rev.fif index fcbefec..e2f5ddc 100644 --- a/sources/output/jetton_TONB.code.rev.fif +++ b/sources/output/jetton_TONB.code.rev.fif @@ -170,7 +170,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 2DUP <{ @@ -207,7 +207,7 @@ SETCP0 2 GETGLOBVAR MYADDR 10 2 -2 PU2XC - 58 CALLDICT + 59 CALLDICT 2DUP <{ 0 PUSHINT @@ -1199,7 +1199,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 2DUP <{ @@ -1717,6 +1717,213 @@ SETCP0 }> PUSHCONT IFJMP s0 PUSH + 3072093686 PUSHINT + EQUAL + <{ + s0 POP + c4 PUSH + CTOS + LDREF + s0 s1 XCHG + 2 SETGLOBVAR + LDGRAMS + LDMSGADDR + s0 s1 XCHG + s0 s1 XCHG + 1 LDI + s0 s1 XCHG + <{ + LDREF + }> PUSHCONT + <{ + PUSHNULL + s0 s1 XCHG + }> PUSHCONT + IFELSE + 1 LDI + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s0 s1 XCHG + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s0 s1 XCHG + LDREF + s0 s1 XCHG + CTOS + 257 PUSHINT + LDI + LDMSGADDR + s1 PUSH + 2 PLDU + 0 NEQINT + <{ + s0 s1 XCHG + }> PUSHCONT + <{ + s1 POP + PUSHNULL + }> PUSHCONT + IFELSE + s0 s1 XCHG + 257 PUSHINT + LDI + LDREF + s0 POP + CTOS + LDDICT + LDDICT + 257 PUSHINT + LDI + 3 1 BLKSWAP + s3 POP + s6 s12 XCHG + s6 s11 XCHG + s6 s10 XCHG + s6 s9 XCHG + s6 s8 XCHG + s6 s7 XCHG + ROT + 1 12 BLKDROP2 + s0 s12 XCHG + 32 LDU + s0 s1 XCHG + 3072093686 PUSHINT + EQUAL + 129 THROWIFNOT + LDMSGADDR + s0 s1 XCHG + s1 POP + s11 s12 XCHG + s10 s11 XCHG + s9 s10 XCHG + s8 s9 XCHG + s7 s8 XCHG + s6 s7 XCHG + s5 s6 XCHG + s4 s5 XCHG + s3 s4 XCHG + s1 s3 s0 XCHG3 + 18474 PUSHINT + 1 GETGLOBVAR + 4 UNTUPLE + s2 s3 XCHG + 3 BLKDROP + s1 s13 XCHG + SDEQ + s1 s12 XCHG + THROWANYIFNOT + NEWC + 2 GETGLOBVAR + s0 s1 XCHG + STREF + 12 1 BLKSWAP + s12 s11 XCHG2 + STGRAMS + s0 s9 XCHG2 + STSLICER + s7 PUSH + ISNULL + NOT + <{ + -1 PUSHINT + s0 s1 XCHG + 1 STI + s1 s7 XCHG + STREF + }> PUSHCONT + <{ + s7 POP + 0 PUSHINT + s0 s7 XCHG2 + 1 STI + }> PUSHCONT + IFELSE + s1 s5 XCHG + 1 STI + s0 s3 XCHG2 + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + s0 s1 XCHG + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + s0 s1 XCHG + NEWC + 257 PUSHINT + STIX + ROT + s0 PUSH + ISNULL + <{ + s0 POP + 0 PUSHINT + s0 s1 XCHG + 2 STU + }> PUSHCONT + <{ + STSLICER + }> PUSHCONT + IFELSE + s1 s2 XCHG + 257 PUSHINT + STIX + NEWC + s3 s1 s3 XCHG3 + s5 s4 XCHG2 + s2 s3 XCHG2 + STDICT + STDICT + 257 PUSHINT + STIX + ENDC + ROT + STREF + ENDC + s0 s1 XCHG + STREF + ENDC + c4 POP + }> IFJMPREF + s0 PUSH 201882270 PUSHINT EQUAL <{ @@ -1936,7 +2143,8 @@ SETCP0 STREF ENDC c4 POP - }> IFJMPREF + }> PUSHCONT + IFJMP s0 PUSH 2078119902 PUSHINT EQUAL @@ -2077,7 +2285,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF s0 s1 XCHG 4429 PUSHINT @@ -2508,7 +2716,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 12 2 BLKDROP2 <{ @@ -3094,7 +3302,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF <{ 0 PUSHINT @@ -3484,7 +3692,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 2DUP <{ @@ -3531,7 +3739,7 @@ SETCP0 s9 s-1 PUXC s17 PUSH s0 s1 XCHG - 58 CALLDICT + 59 CALLDICT 2DUP <{ 0 PUSHINT @@ -4958,7 +5166,7 @@ SETCP0 IFELSE 130 THROW - 55: + 56: 0 PUSHINT PUSHNULL PUSHNULL @@ -5014,7 +5222,7 @@ SETCP0 STREF ENDC - 56: + 57: s0 s2 XCHG CTOS LDDICT @@ -5037,9 +5245,9 @@ SETCP0 STDICT ENDC s0 s0 s3 XCHG3 - 55 CALLDICT + 56 CALLDICT - 57: + 58: PUSHNULL s0 s4 XCHG NEWC @@ -5071,7 +5279,7 @@ SETCP0 STREF ENDC - 58: + 59: s0 s3 XCHG CTOS LDDICT @@ -5095,7 +5303,7 @@ SETCP0 ENDC 3 1 BLKSWAP s0 s4 XCHG - 57 CALLDICT + 58 CALLDICT owner: c4 PUSH @@ -5276,7 +5484,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 12 2 BLKDROP2 <{ @@ -5402,7 +5610,7 @@ SETCP0 2 GETGLOBVAR MYADDR ROT - 56 CALLDICT + 57 CALLDICT }> CALLREF 8 2 BLKDROP2 s0 POP diff --git a/sources/output/jetton_TONB.md b/sources/output/jetton_TONB.md index 0b3edf3..3d95251 100644 --- a/sources/output/jetton_TONB.md +++ b/sources/output/jetton_TONB.md @@ -1,9 +1,9 @@ # TACT Compilation Report Contract: TONB -BOC Size: 4090 bytes +BOC Size: 4276 bytes # Types -Total Types: 33 +Total Types: 36 ## StateInit TLB: `_ code:^cell data:^cell = StateInit` @@ -85,9 +85,9 @@ Signature: `InitiateLiquidationVote{adminIndex:int257,quorum_percent:int257,vote TLB: `finish_vote#2a574443 voteId:int257 = FinishVote` Signature: `FinishVote{voteId:int257}` -## Vote -TLB: `vote#b670f4ce voteId:int257 adminIndex:int257 vote:int257 = Vote` -Signature: `Vote{voteId:int257,adminIndex:int257,vote:int257}` +## VoteMsg +TLB: `vote_msg#58fde8ab voteId:int257 adminIndex:int257 vote:int257 = VoteMsg` +Signature: `VoteMsg{voteId:int257,adminIndex:int257,vote:int257}` ## AddressList TLB: `_ addresses:dict length:int257 = AddressList` @@ -121,10 +121,22 @@ Signature: `RequestUnstake{founderIndex:int257}` TLB: `collect_profit#51912735 adminIndex:int257 = CollectProfit` Signature: `CollectProfit{adminIndex:int257}` +## SetOwner +TLB: `set_owner#b71c6df6 owner:address = SetOwner` +Signature: `SetOwner{owner:address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` +## Proposal +TLB: `_ type:int257 blacklistAddress:Maybe address distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict} = Proposal` +Signature: `Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}}` + +## Vote +TLB: `_ id:int257 votes:dict vote_end:int257 proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}} quorum_percent:int257 ended:bool result:Maybe bool = Vote` +Signature: `Vote{id:int257,votes:dict,vote_end:int257,proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}},quorum_percent:int257,ended:bool,result:Maybe bool}` + ## ChangeOwner TLB: `change_owner#0f474d03 newOwner:address = ChangeOwner` Signature: `ChangeOwner{newOwner:address}` diff --git a/sources/output/jetton_TONB.pkg b/sources/output/jetton_TONB.pkg index d4c4d43..fd1aa99 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\":\"setLinker\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Vote\",\"header\":3060856014,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"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\":\"SetStakingPool\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenUpdateContent\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurnNotification\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"BlacklistWallet\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"RequestLinker\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"text\",\"text\":\"Withdraw completed\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Unstake\"}}],\"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\"},\"41207\":{\"message\":\"invalid sender\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAqwABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4A0AAdQBN2m1tcFMAf21tIwzIzAwQSxBKEEkQOBA3EDYQNYGANJQy/oCUAnPFidus5Z/AcoAF8yWN3BQB8oA4hXKAFADIG6VMHABywGSzxbiASBulTBwAcsBks8W4gHIgQEBzwBYIG6VMHABywGSzxbiEoEBAc8AyEMTUFRQI/QA9ACBAQHPAMlYzMkBzMk=","args":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}],"deployment":{"kind":"system-cell","system":"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"}},"compiler":{"name":"tact","version":"0.9.2"}} \ 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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"VoteMsg\",\"header\":1493035179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"SetOwner\",\"header\":3072093686,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"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\":\"Proposal\",\"header\":null,\"fields\":[{\"name\":\"type\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"blacklistAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":true}}]},{\"name\":\"Vote\",\"header\":null,\"fields\":[{\"name\":\"id\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"votes\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"vote_end\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"proposal\",\"type\":{\"kind\":\"simple\",\"type\":\"Proposal\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"ended\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"result\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":true}}]},{\"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\":\"SetStakingPool\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"SetOwner\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenUpdateContent\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"TokenBurnNotification\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"BlacklistWallet\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"RequestLinker\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"text\",\"text\":\"Withdraw completed\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"Unstake\"}}],\"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\"},\"6873\":{\"message\":\"Only an admin can initiate a vote\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"16994\":{\"message\":\"Vote is finished\"},\"18474\":{\"message\":\"only the owner can set a new owner\"},\"19362\":{\"message\":\"Invalid quorum percent\"},\"29720\":{\"message\":\"Invalid vote\"},\"29821\":{\"message\":\"Voting requires at least 1 ton for the fees\"},\"30386\":{\"message\":\"Vote already ended\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"34326\":{\"message\":\"Vote is not finished yet\"},\"37444\":{\"message\":\"Only a founder can request unstake\"},\"41207\":{\"message\":\"invalid sender\"},\"42983\":{\"message\":\"No profit to collect\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"46931\":{\"message\":\"Invalid vote id\"},\"49606\":{\"message\":\"Invalid admin index\"},\"53981\":{\"message\":\"Only an admin can collect profit\"},\"56549\":{\"message\":\"Only an admin can vote\"},\"61070\":{\"message\":\"Invalid vote time\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBwEAqwABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4A0AAdQBN2m1tcFMAf21tIwzIzAwQSxBKEEkQOBA3EDYQNYGANJQy/oCUAnPFidus5Z/AcoAF8yWN3BQB8oA4hXKAFADIG6VMHABywGSzxbiASBulTBwAcsBks8W4gHIgQEBzwBYIG6VMHABywGSzxbiEoEBAc8AyEMTUFRQI/QA9ACBAQHPAMlYzMkBzMk=","args":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":true}},{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}],"deployment":{"kind":"system-cell","system":"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"}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file diff --git a/sources/output/jetton_TONB.ts b/sources/output/jetton_TONB.ts index 6dfc190..37019fb 100644 --- a/sources/output/jetton_TONB.ts +++ b/sources/output/jetton_TONB.ts @@ -1065,40 +1065,40 @@ function dictValueParserFinishVote(): DictionaryValue { } } } -export type Vote = { - $$type: 'Vote'; +export type VoteMsg = { + $$type: 'VoteMsg'; voteId: bigint; adminIndex: bigint; vote: bigint; } -export function storeVote(src: Vote) { +export function storeVoteMsg(src: VoteMsg) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3060856014, 32); + b_0.storeUint(1493035179, 32); b_0.storeInt(src.voteId, 257); b_0.storeInt(src.adminIndex, 257); b_0.storeInt(src.vote, 257); }; } -export function loadVote(slice: Slice) { +export function loadVoteMsg(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3060856014) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1493035179) { throw Error('Invalid prefix'); } let _voteId = sc_0.loadIntBig(257); let _adminIndex = sc_0.loadIntBig(257); let _vote = sc_0.loadIntBig(257); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function loadTupleVote(source: TupleReader) { +function loadTupleVoteMsg(source: TupleReader) { let _voteId = source.readBigNumber(); let _adminIndex = source.readBigNumber(); let _vote = source.readBigNumber(); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function storeTupleVote(source: Vote) { +function storeTupleVoteMsg(source: VoteMsg) { let builder = new TupleBuilder(); builder.writeNumber(source.voteId); builder.writeNumber(source.adminIndex); @@ -1106,13 +1106,13 @@ function storeTupleVote(source: Vote) { return builder.build(); } -function dictValueParserVote(): DictionaryValue { +function dictValueParserVoteMsg(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + buidler.storeRef(beginCell().store(storeVoteMsg(src)).endCell()); }, parse: (src) => { - return loadVote(src.loadRef().beginParse()); + return loadVoteMsg(src.loadRef().beginParse()); } } } @@ -1468,6 +1468,47 @@ function dictValueParserCollectProfit(): DictionaryValue { } } } +export type SetOwner = { + $$type: 'SetOwner'; + owner: Address; +} + +export function storeSetOwner(src: SetOwner) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeUint(3072093686, 32); + b_0.storeAddress(src.owner); + }; +} + +export function loadSetOwner(slice: Slice) { + let sc_0 = slice; + if (sc_0.loadUint(32) !== 3072093686) { throw Error('Invalid prefix'); } + let _owner = sc_0.loadAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function loadTupleSetOwner(source: TupleReader) { + let _owner = source.readAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function storeTupleSetOwner(source: SetOwner) { + let builder = new TupleBuilder(); + builder.writeAddress(source.owner); + return builder.build(); +} + +function dictValueParserSetOwner(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeSetOwner(src)).endCell()); + }, + parse: (src) => { + return loadSetOwner(src.loadRef().beginParse()); + } + } +} export type WithdrawalRequests = { $$type: 'WithdrawalRequests'; addresses: Dictionary; @@ -1517,6 +1558,135 @@ function dictValueParserWithdrawalRequests(): DictionaryValue { + let b_0 = builder; + b_0.storeInt(src.type, 257); + b_0.storeAddress(src.blacklistAddress); + if (src.distribution !== null && src.distribution !== undefined) { b_0.storeBit(true); b_0.store(storeDistribution(src.distribution)); } else { b_0.storeBit(false); } + }; +} + +export function loadProposal(slice: Slice) { + let sc_0 = slice; + let _type = sc_0.loadIntBig(257); + let _blacklistAddress = sc_0.loadMaybeAddress(); + let _distribution = sc_0.loadBit() ? loadDistribution(sc_0) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function loadTupleProposal(source: TupleReader) { + let _type = source.readBigNumber(); + let _blacklistAddress = source.readAddressOpt(); + const _distribution_p = source.readTupleOpt(); + const _distribution = _distribution_p ? loadTupleDistribution(_distribution_p) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function storeTupleProposal(source: Proposal) { + let builder = new TupleBuilder(); + builder.writeNumber(source.type); + builder.writeAddress(source.blacklistAddress); + if (source.distribution !== null && source.distribution !== undefined) { + builder.writeTuple(storeTupleDistribution(source.distribution)); + } else { + builder.writeTuple(null); + } + return builder.build(); +} + +function dictValueParserProposal(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeProposal(src)).endCell()); + }, + parse: (src) => { + return loadProposal(src.loadRef().beginParse()); + } + } +} +export type Vote = { + $$type: 'Vote'; + id: bigint; + votes: Dictionary; + vote_end: bigint; + proposal: Proposal; + quorum_percent: bigint; + ended: boolean; + result: boolean | null; +} + +export function storeVote(src: Vote) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeInt(src.id, 257); + b_0.storeDict(src.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)); + b_0.storeInt(src.vote_end, 257); + let b_1 = new Builder(); + b_1.store(storeProposal(src.proposal)); + let b_2 = new Builder(); + b_2.storeInt(src.quorum_percent, 257); + b_2.storeBit(src.ended); + if (src.result !== null && src.result !== undefined) { b_2.storeBit(true).storeBit(src.result); } else { b_2.storeBit(false); } + b_1.storeRef(b_2.endCell()); + b_0.storeRef(b_1.endCell()); + }; +} + +export function loadVote(slice: Slice) { + let sc_0 = slice; + let _id = sc_0.loadIntBig(257); + let _votes = Dictionary.load(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), sc_0); + let _vote_end = sc_0.loadIntBig(257); + let sc_1 = sc_0.loadRef().beginParse(); + let _proposal = loadProposal(sc_1); + let sc_2 = sc_1.loadRef().beginParse(); + let _quorum_percent = sc_2.loadIntBig(257); + let _ended = sc_2.loadBit(); + let _result = sc_2.loadBit() ? sc_2.loadBit() : null; + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function loadTupleVote(source: TupleReader) { + let _id = source.readBigNumber(); + let _votes = Dictionary.loadDirect(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), source.readCellOpt()); + let _vote_end = source.readBigNumber(); + const _proposal = loadTupleProposal(source.readTuple()); + let _quorum_percent = source.readBigNumber(); + let _ended = source.readBoolean(); + let _result = source.readBooleanOpt(); + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function storeTupleVote(source: Vote) { + let builder = new TupleBuilder(); + builder.writeNumber(source.id); + builder.writeCell(source.votes.size > 0 ? beginCell().storeDictDirect(source.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)).endCell() : null); + builder.writeNumber(source.vote_end); + builder.writeTuple(storeTupleProposal(source.proposal)); + builder.writeNumber(source.quorum_percent); + builder.writeBoolean(source.ended); + builder.writeBoolean(source.result); + return builder.build(); +} + +function dictValueParserVote(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + }, + parse: (src) => { + return loadVote(src.loadRef().beginParse()); + } + } +} export type ChangeOwner = { $$type: 'ChangeOwner'; newOwner: Address; @@ -1642,8 +1812,8 @@ function dictValueParserWithdraw(): DictionaryValue { } async function TONB_init(owner: Address, content: Cell | null, staking_pool: Address | null) { const __init = 'te6ccgEBBwEAqwABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4A0AAdQBN2m1tcFMAf21tIwzIzAwQSxBKEEkQOBA3EDYQNYGANJQy/oCUAnPFidus5Z/AcoAF8yWN3BQB8oA4hXKAFADIG6VMHABywGSzxbiASBulTBwAcsBks8W4gHIgQEBzwBYIG6VMHABywGSzxbiEoEBAc8AyEMTUFRQI/QA9ACBAQHPAMlYzMkBzMk='; - const __code = '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'; - const __system = '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'; + const __code = 'te6ccgECTQEAEKgAART/APSkE/S88sgLAQIBYgIDAgLKBAUCASAZGgSp17aLt+3Ah10nCH5UwINcLH94C0NMDAXGwwAGRf5Fw4gH6QCJQZm8E+GECkVvgIIIQIe62B7rjAiDAACLXScEhsOMCIIIQYFkVELrjAiCCEAdk0Ui6gYHCAkCAnYTFAHkMO1E0NQB+GL6APpAAQHSAAGR1JJtAeLSAPpAIdcLAcMAkQGSMW3iAfpAIdcLAcMAkQGSMW3iAdQB0IEBAdcA+kAh1wsBwwCRAZIxbeIBgQEB1wDUMND0BPQEgQEB1wBVIDMQbBBrEGoQaRBoEGdYbBwMCgHiW+1E0NQB+GL6APpAAQHSAAGR1JJtAeLSAPpAIdcLAcMAkQGSMW3iAfpAIdcLAcMAkQGSMW3iAdQB0IEBAdcA+kAh1wsBwwCRAZIxbeIBgQEB1wDUMND0BPQEgQEB1wBVIDMQbBBrEGoQaRBoEGdYbBxEAeQw7UTQ1AH4YvoA+kABAdIAAZHUkm0B4tIA+kAh1wsBwwCRAZIxbeIB+kAh1wsBwwCRAZIxbeIB1AHQgQEB1wD6QCHXCwHDAJEBkjFt4gGBAQHXANQw0PQE9ASBAQHXAFUgMxBsEGsQahBpEGgQZ1hsHAwQA/6O8jDtRNDUAfhi+gD6QAEB0gABkdSSbQHi0gD6QCHXCwHDAJEBkjFt4gH6QCHXCwHDAJEBkjFt4gHUAdCBAQHXAPpAIdcLAcMAkQGSMW3iAYEBAdcA1DDQ9AT0BIEBAdcAVSAzEGwQaxBqEGkQaBBnWGwcDOAgghC3HG32uuMCISIjA5bTHwGCECHutge68uCB+gABMRC8EKsQmhCJEHgQZxBWEEUQNEEw+EFvJDAygX5uggiYloAkoIIJMS0AoIIL39JAoBO+EvL0Zts82zwLDEQEPFHhoFWx2zxc2zz4QvgoVGow8Dtc2zxwggkxLQBwDzc4OA0CWiRu3PgnbxCCEB3NZQChghAR4aMAoSCCCvrwgLmRMOBRRKAlIG7y0IAV2zzbPA9LBFjbPCMQNkQVAxEQAxIBERAB2zwpCaRw+Cgh2zwkpRBHBhEVBhA1BBEWBFUCDzpLOw4CQts8cAQQP4IL39JAA3BDExES2zwQmxCKEHkQaBBXXiNVEj9LACJ/cMiCEHvNH+8Byx/JECRtbQJ80x8BghBgWRUQuvLggYEBAdcAATEQvBCrEJoQiRB4EGcQVhBFEDRBMPhBbyQwgRjwM4IQCPDRgL4S8vRm2zwRRARaVbIu2zxc2zxwcIBAVEETAhEUAgERFQERE9s8BhEQBhUEEREEAxESAwIBERIBNzhHEgEQ2zwQixB6VSZLAgEgFRYCASAXGACFHBtbXAGyMwGBVUgUFaBAQHPAFADzxYBzxbKAMgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMyYABNALQ9AQwbQGBYIQBgBD0D2+h8uCHAYFghCICgBD0F8j0AMlAA/A4gAEsbQTIzFAkUDSBAQHPAAHPFgHPFshYIG6VMHABywGSzxbiyQHMyYABTAPQ9AQwbQGCAOpLAYAQ9A9vofLghwGCAOpLIgKAEPQXyPQAyVUgBPA6gAem+KO9qJoagD8MX0AfSAAgOkAAMjqSTaA8WkAfSAQ64WA4YBIgMkYtvEA/SAQ64WA4YBIgMkYtvEA6gDoQICA64B9IBDrhYDhgEiAyRi28QDAgIDrgGoYaHoCegJAgIDrgCqQGYg2CDWINQg0iDQIM6w2Dm2eQbAgFIHB0ACBCrXwsCAVgeHwCVt3owTgudh6ullc9j0J2HOslQo2zQThO6xqWlbI+WZFp15b++LEcwThhMiKTJr7fJFy9sM7TqukCwTggZzq084r86ShYDrC3EyPZQAe2tvPaiaGoA/DF9AH0gAIDpAADI6kk2gPFpAH0gEOuFgOGASIDJGLbxAP0gEOuFgOGASIDJGLbxAOoA6ECAgOuAfSAQ64WA4YBIgMkYtvEAwICA64BqGGh6AnoCQICA64AqkBmINgg1iDUINIg0CDOsNg4qhe2eQCwB6a8W9qJoagD8MX0AfSAAgOkAAMjqSTaA8WkAfSAQ64WA4YBIgMkYtvEA/SAQ64WA4YBIgMkYtvEA6gDoQICA64B9IBDrhYDhgEiAyRi28QDAgIDrgGoYaHoCegJAgIDrgCqQGYg2CDWINQg0iDQIM6w2Dm2eQCABEvgo2zxsgjBDMDcBYtMfAYIQB2TRSLry4IH6QCHXCwHDAJEBkjFt4jEQvBCrEJoQiRB4EGcQVhBFEDRBMDVEAeQw7UTQ1AH4YvoA+kABAdIAAZHUkm0B4tIA+kAh1wsBwwCRAZIxbeIB+kAh1wsBwwCRAZIxbeIB1AHQgQEB1wD6QCHXCwHDAJEBkjFt4gGBAQHXANQw0PQE9ASBAQHXAFUgMxBsEGsQahBpEGgQZ1hsHAwkAvwgghAMCHqeuo7yMO1E0NQB+GL6APpAAQHSAAGR1JJtAeLSAPpAIdcLAcMAkQGSMW3iAfpAIdcLAcMAkQGSMW3iAdQB0IEBAdcA+kAh1wsBwwCRAZIxbeIBgQEB1wDUMND0BPQEgQEB1wBVIDMQbBBrEGoQaRBoEGdYbBwM4CAlJgFs0x8BghC3HG32uvLggfpAATEQvBCrEJoQiRB4EGcQVhBFEDRBMIFIKvhBbyQQI18DHccFHPL0RAJu0x8BghAMCHqeuvLggdIAAZHUkm0B4gExELwQqxCaEIkQeBBnEFYQRRA0QTBVsNs8ORCrEJpVBzFEAvqCEHvdl966jvIw7UTQ1AH4YvoA+kABAdIAAZHUkm0B4tIA+kAh1wsBwwCRAZIxbeIB+kAh1wsBwwCRAZIxbeIB1AHQgQEB1wD6QCHXCwHDAJEBkjFt4gGBAQHXANQw0PQE9ASBAQHXAFUgMxBsEGsQahBpEGgQZ1hsHAzgICcoBOzTHwGCEHvdl9668uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4hRDMDQQ7xDeEM0QvBCrEJoQiRB4EGcQVhBFVQIwMlWxLds8Ubyh+CdvEIIQHc1lAKGCEAjw0YChUw25jpQwcA2CEAjw0YChTeBwbW1t2zxVGOMNKUsqRAL4ggqcg5a6jvIw7UTQ1AH4YvoA+kABAdIAAZHUkm0B4tIA+kAh1wsBwwCRAZIxbeIB+kAh1wsBwwCRAZIxbeIB1AHQgQEB1wD6QCHXCwHDAJEBkjFt4gGBAQHXANQw0PQE9ASBAQHXAFUgMxBsEGsQahBpEGgQZ1hsHAzgIC4vAjj4QW8kECNfA1XA2zwBgRFNAts8UA7HBR3y9FUKNzgEhB2hcPgnbxCCEB3NZQChghAI8NGAoVLwcG1tbds8cPgo+Cgi2zwlVTBtbds8VG3AVGzAVGzAVGzAVGzAUsBWFwERGks7PysDWts8cAJwgEBYERFtbds8+EFvJBAjXwMQzRCsEJsQihB5EGgQVxBGEDVEAwLbPCxLLQIM2zxswts8NzgCfBSBAQFUIDYgbpUwWfRaMJRBM/QU4oEBAVQTAFRjYCFulVtZ9FowmMgBzwBBM/RC4gGkJSBu8tCAFNs82zxYQ0sCTNMfAYIKnIOWuvLggfpAATEQvBCrEJoQiRB4EGcQVhBFEDRBMNs8MEQC+oIQWilDHrqO8jDtRNDUAfhi+gD6QAEB0gABkdSSbQHi0gD6QCHXCwHDAJEBkjFt4gH6QCHXCwHDAJEBkjFt4gHUAdCBAQHXAPpAIdcLAcMAkQGSMW3iAYEBAdcA1DDQ9AT0BIEBAdcAVSAzEGwQaxBqEGkQaBBnWGwcDOAgNDUEHlWw2zws2zzbPHBwgEAREDE3ODIAHPhBbyQQI18DK8cF8uCEAhzbPEFAAREQAW1t2zxVCjNLABzIAYIKnIOWWMsfAc8WyQJO0x8BghBaKUMeuvLggfpAATEQvBCrEJoQiRB4EGcQVhBFEDRBMNs8NkQC/IIQulIoIbqO8jDtRNDUAfhi+gD6QAEB0gABkdSSbQHi0gD6QCHXCwHDAJEBkjFt4gH6QCHXCwHDAJEBkjFt4gHUAdCBAQHXAPpAIdcLAcMAkQGSMW3iAYEBAdcA1DDQ9AT0BIEBAdcAVSAzEGwQaxBqEGkQaBBnWGwcDODAAEFCBGj4QW8kECNfA1XA2zxc2zwgggCg9xERxwUBERAB8vT4QvgoUpBWEQHwO1zbPHCCCTEtAHAONzg4OQAO+EL4KFjwOQBKcFnIcAHLAXMBywFwAcsAEszMyfkAyHIBywFwAcsAEsoHy//J0AQ+2zwjEDZEFRA/QfDbPCgIpHAg+Cj4KCLbPCalVQYREDpLOzwAMsgBghCz/PTBWMsfASBulTBwAcsBks8W4skCCNs82zw9PgJI2zxwBAMREAOCC9/SQANwQxMREgHbPBCrEJoQiRB4EGcQRlUDP0sABMjJAALQAQzIVXDbPMlAAJyCEBeNRRlQCcsfF8s/UAX6AlADzxYBIG6VMHABywGSzxbiAfoCAc8WyCJus5p/AcoAEoEBAc8AlTJwWMoA4lggbpUwcAHLAZLPFuLJAcwDkNMfAYIQulIoIbry4IGBAQHXAAExELwQqxCaEIkQeBBnEFYQRRA0QTAlbpEwjxn4QW8kW4IA71EyLccF8vQlIG7y0IDbPNs84kNLRAFejqf5AYLw97GrYHeUWzc3ChVQV0Z1GAz4ffTLBHyGl0aBKoNmfUy64wKRMOLywIJFADR/ggr68IBwyIIQ2oA+/QHLH1AF+gLJQUBtbQDkyPhCAcxVsFDL+gJQCc8WJ26zln8BygAXzJY3cFAHygDiFcoAUAMgbpUwcAHLAZLPFuIBIG6VMHABywGSzxbiAciBAQHPAFggbpUwcAHLAZLPFuISgQEBzwDIQxNQVFAj9AD0AIEBAc8AyVjMyQHMye1UAeDtRNDUAfhi+gD6QAEB0gABkdSSbQHi0gD6QCHXCwHDAJEBkjFt4gH6QCHXCwHDAJEBkjFt4gHUAdCBAQHXAPpAIdcLAcMAkQGSMW3iAYEBAdcA1DDQ9AT0BIEBAdcAVSAzEGwQaxBqEGkQaBBnWGwcRgS+cJNTAbmPRSOBAQEiWfQMb6GSMG3fIG7y0IBwghAExLQAcCCBAQFUWABSgEEz9AxvoZQB1wAwkltt4iBu8tCA+ChSYNs8EDRtbds8pOhfBPhBbyQTXwOhIMEA4wBtbXBHS0hJAEjIVTCCEFlfB7xQBcsfE8s/AfoCAc8WASBulTBwAcsBks8W4skCHqN/cCLbPCoDRERtbds8cEpLAOjI+EIBzFWwUMv6AlAJzxYnbrOWfwHKABfMljdwUAfKAOIVygBQAyBulTBwAcsBks8W4gEgbpUwcAHLAZLPFuIByIEBAc8AWCBulTBwAcsBks8W4hKBAQHPAMhDE1BUUCP0APQAgQEBzwDJWMzJAczJ7VTbMQAiyAGCELpSKCFYyx+BAQHPAMkB9shxAcoBUAcBygBwAcoCUAXPFlAD+gJwAcpoI26zJW6zsY5MfwHKAMhwAcoAcAHKACRus51/AcoABCBu8tCAUATMljQDcAHKAOIkbrOdfwHKAAQgbvLQgFAEzJY0A3ABygDicAHKAAJ/AcoAAslYzJczMwFwAcoA4iFus0wAMJx/AcoAASBu8tCAAcyVMXABygDiyQH7AA=='; + const __system = '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'; let systemCell = Cell.fromBase64(__system); let builder = new TupleBuilder(); builder.writeCell(systemCell); @@ -1695,11 +1865,26 @@ const TONB_errors: { [key: number]: { message: string } } = { 136: { message: `Invalid address` }, 4429: { message: `Invalid sender` }, 6384: { message: `not enough money for withdraw` }, + 6873: { message: `Only an admin can initiate a vote` }, 13650: { message: `Invalid bounced message` }, 16059: { message: `Invalid value` }, + 16994: { message: `Vote is finished` }, + 18474: { message: `only the owner can set a new owner` }, + 19362: { message: `Invalid quorum percent` }, + 29720: { message: `Invalid vote` }, + 29821: { message: `Voting requires at least 1 ton for the fees` }, + 30386: { message: `Vote already ended` }, 32366: { message: `not enough money for deposit` }, + 34326: { message: `Vote is not finished yet` }, + 37444: { message: `Only a founder can request unstake` }, 41207: { message: `invalid sender` }, + 42983: { message: `No profit to collect` }, 44816: { message: `Wallet is blacklisted` }, + 46931: { message: `Invalid vote id` }, + 49606: { message: `Invalid admin index` }, + 53981: { message: `Only an admin can collect profit` }, + 56549: { message: `Only an admin can vote` }, + 61070: { message: `Invalid vote time` }, 61265: { message: `Only the owner can trigger un-staking` }, 62972: { message: `Invalid balance` }, } @@ -1731,7 +1916,7 @@ export class TONB implements Contract { this.init = init; } - async send(provider: ContractProvider, via: Sender, args: { value: bigint, bounce?: boolean| null | undefined }, message: Deposit | null | Withdraw | SetStakingPool | TokenUpdateContent | TokenBurnNotification | BlacklistWallet | RequestLinker | 'Withdraw completed' | Unstake) { + async send(provider: ContractProvider, via: Sender, args: { value: bigint, bounce?: boolean| null | undefined }, message: Deposit | null | Withdraw | SetStakingPool | SetOwner | TokenUpdateContent | TokenBurnNotification | BlacklistWallet | RequestLinker | 'Withdraw completed' | Unstake) { let body: Cell | null = null; if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'Deposit') { @@ -1746,6 +1931,9 @@ export class TONB implements Contract { if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'SetStakingPool') { body = beginCell().store(storeSetStakingPool(message)).endCell(); } + if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'SetOwner') { + body = beginCell().store(storeSetOwner(message)).endCell(); + } if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenUpdateContent') { body = beginCell().store(storeTokenUpdateContent(message)).endCell(); } diff --git a/sources/output/jetton_TONBWallet.abi b/sources/output/jetton_TONBWallet.abi index bdbb43f..7cec0de 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":"setLinker","type":{"kind":"simple","type":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Vote","header":3060856014,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"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"}},{"receiver":"internal","message":{"kind":"typed","type":"BlacklistWallet"}}],"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"},"41207":{"message":"invalid sender"},"44816":{"message":"Wallet is blacklisted"},"61265":{"message":"Only the owner can trigger un-staking"},"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":"int","optional":true,"format":257}},{"name":"setLinkerAddress","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":"StakingWithdraw","header":3665837821,"fields":[{"name":"value","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}}]},{"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":"ForwardToWallet","header":1562223291,"fields":[{"name":"body","type":{"kind":"simple","type":"cell","optional":false}}]},{"name":"BlacklistWallet","header":43811734,"fields":[{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"InitiateBlacklistVote","header":3909090059,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"wallet","type":{"kind":"simple","type":"address","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"InitiateLiquidationVote","header":301696559,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"FinishVote","header":710362179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"VoteMsg","header":1493035179,"fields":[{"name":"voteId","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"AddressList","header":null,"fields":[{"name":"addresses","type":{"kind":"dict","key":"int","value":"address"}},{"name":"length","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"Distribution","header":null,"fields":[{"name":"addresses","type":{"kind":"simple","type":"AddressList","optional":false}},{"name":"percents","type":{"kind":"dict","key":"address","value":"int"}}]},{"name":"InitiateDistributionVote","header":276353205,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"vote_time","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":false}}]},{"name":"SetStakingPool","header":124047688,"fields":[{"name":"staking_pool","type":{"kind":"simple","type":"address","optional":true}}]},{"name":"RequestLinker","header":1512653598,"fields":[{"name":"client","type":{"kind":"simple","type":"address","optional":false}}]},{"name":"Unstake","header":3125946401,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"RequestUnstake","header":3922648959,"fields":[{"name":"founderIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"CollectProfit","header":1368467253,"fields":[{"name":"adminIndex","type":{"kind":"simple","type":"int","optional":false,"format":257}}]},{"name":"SetOwner","header":3072093686,"fields":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}]},{"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":"Proposal","header":null,"fields":[{"name":"type","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"blacklistAddress","type":{"kind":"simple","type":"address","optional":true}},{"name":"distribution","type":{"kind":"simple","type":"Distribution","optional":true}}]},{"name":"Vote","header":null,"fields":[{"name":"id","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"votes","type":{"kind":"dict","key":"int","value":"int"}},{"name":"vote_end","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"proposal","type":{"kind":"simple","type":"Proposal","optional":false}},{"name":"quorum_percent","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"ended","type":{"kind":"simple","type":"bool","optional":false}},{"name":"result","type":{"kind":"simple","type":"bool","optional":true}}]},{"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"}},{"receiver":"internal","message":{"kind":"typed","type":"BlacklistWallet"}}],"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"},"6873":{"message":"Only an admin can initiate a vote"},"13650":{"message":"Invalid bounced message"},"16059":{"message":"Invalid value"},"16994":{"message":"Vote is finished"},"18474":{"message":"only the owner can set a new owner"},"19362":{"message":"Invalid quorum percent"},"29720":{"message":"Invalid vote"},"29821":{"message":"Voting requires at least 1 ton for the fees"},"30386":{"message":"Vote already ended"},"32366":{"message":"not enough money for deposit"},"34326":{"message":"Vote is not finished yet"},"37444":{"message":"Only a founder can request unstake"},"41207":{"message":"invalid sender"},"42983":{"message":"No profit to collect"},"44816":{"message":"Wallet is blacklisted"},"46931":{"message":"Invalid vote id"},"49606":{"message":"Invalid admin index"},"53981":{"message":"Only an admin can collect profit"},"56549":{"message":"Only an admin can vote"},"61070":{"message":"Invalid vote time"},"61265":{"message":"Only the owner can trigger un-staking"},"62972":{"message":"Invalid balance"}}} \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.code.fc b/sources/output/jetton_TONBWallet.code.fc index b2a489a..80e1e3e 100644 --- a/sources/output/jetton_TONBWallet.code.fc +++ b/sources/output/jetton_TONBWallet.code.fc @@ -514,5 +514,5 @@ _ supported_interfaces() method_id { } _ get_abi_ipfs() { - return "ipfs://QmZ8U23MsSzC5NvLwmc6Wh8LzCefCn61CpNQ81T9a6A8dZ"; + return "ipfs://QmWUsMjXBDmUpAiZnwRzPM5E4Q81yVQkRc88XnAJYWif2a"; } \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.code.fif b/sources/output/jetton_TONBWallet.code.fif index fd2d02f..d33798e 100644 --- a/sources/output/jetton_TONBWallet.code.fif +++ b/sources/output/jetton_TONBWallet.code.fif @@ -1008,6 +1008,6 @@ PROGRAM{ 209778528950190195973528115415557644819 PUSHINT }> get_abi_ipfs PROC:<{ - x{697066733a2f2f516d5a385532334d73537a43354e764c776d63365768384c7a436566436e363143704e513831543961364138645a} PUSHSLICE + x{697066733a2f2f516d5755734d6a5842446d557041695a6e77527a504d3545345138317956516b52633838586e414a595769663261} PUSHSLICE }> }END>c diff --git a/sources/output/jetton_TONBWallet.md b/sources/output/jetton_TONBWallet.md index 6d85f56..60da10f 100644 --- a/sources/output/jetton_TONBWallet.md +++ b/sources/output/jetton_TONBWallet.md @@ -3,7 +3,7 @@ Contract: TONBWallet BOC Size: 2111 bytes # Types -Total Types: 33 +Total Types: 36 ## StateInit TLB: `_ code:^cell data:^cell = StateInit` @@ -85,9 +85,9 @@ Signature: `InitiateLiquidationVote{adminIndex:int257,quorum_percent:int257,vote TLB: `finish_vote#2a574443 voteId:int257 = FinishVote` Signature: `FinishVote{voteId:int257}` -## Vote -TLB: `vote#b670f4ce voteId:int257 adminIndex:int257 vote:int257 = Vote` -Signature: `Vote{voteId:int257,adminIndex:int257,vote:int257}` +## VoteMsg +TLB: `vote_msg#58fde8ab voteId:int257 adminIndex:int257 vote:int257 = VoteMsg` +Signature: `VoteMsg{voteId:int257,adminIndex:int257,vote:int257}` ## AddressList TLB: `_ addresses:dict length:int257 = AddressList` @@ -121,10 +121,22 @@ Signature: `RequestUnstake{founderIndex:int257}` TLB: `collect_profit#51912735 adminIndex:int257 = CollectProfit` Signature: `CollectProfit{adminIndex:int257}` +## SetOwner +TLB: `set_owner#b71c6df6 owner:address = SetOwner` +Signature: `SetOwner{owner:address}` + ## WithdrawalRequests TLB: `_ addresses:dict amounts:dict n_requests:int257 = WithdrawalRequests` Signature: `WithdrawalRequests{addresses:dict,amounts:dict,n_requests:int257}` +## Proposal +TLB: `_ type:int257 blacklistAddress:Maybe address distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict} = Proposal` +Signature: `Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}}` + +## Vote +TLB: `_ id:int257 votes:dict vote_end:int257 proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}} quorum_percent:int257 ended:bool result:Maybe bool = Vote` +Signature: `Vote{id:int257,votes:dict,vote_end:int257,proposal:Proposal{type:int257,blacklistAddress:Maybe address,distribution:Maybe Distribution{addresses:AddressList{addresses:dict,length:int257},percents:dict}},quorum_percent:int257,ended:bool,result:Maybe bool}` + ## ChangeOwner TLB: `change_owner#0f474d03 newOwner:address = ChangeOwner` Signature: `ChangeOwner{newOwner:address}` diff --git a/sources/output/jetton_TONBWallet.pkg b/sources/output/jetton_TONBWallet.pkg index 9f65329..f30bcf0 100644 --- a/sources/output/jetton_TONBWallet.pkg +++ b/sources/output/jetton_TONBWallet.pkg @@ -1 +1 @@ -{"name":"TONBWallet","code":"te6ccgECJgEACDMAART/APSkE/S88sgLAQIBYgIDAgLKBAUCASAjJASJ1cCHXScIflTAg1wsf3gLQ0wMBcbDAAZF/kXDiAfpAIlBmbwT4YQLjAiCCEA+KfqW64wIgghAXjUUZuuMCIIIQWV8HvLqBgcICQIBSCEiAdIw7UTQ1AH4YoEBAdcA+kABAfpAAQHSANQB0NIAAZWBAQHXAJJtAeL6QCHXCwHDAJEBkjFt4jEQJhAlECQQI2wWVQWAINch0x/TPzH6ADCBNVIighAXjUUZugOCEHvdl966E7ES8vQWoAUcA6Qw7UTQ1AH4YoEBAdcA+kABAfpAAQHSANQB0NIAAZWBAQHXAJJtAeL6QCHXCwHDAJEBkjFt4jEQJhAlECQQI2wWBts8NxC8EKsQmhCJEHhVBds8CgscAqAw7UTQ1AH4YoEBAdcA+kABAfpAAQHSANQB0NIAAZWBAQHXAJJtAeL6QCHXCwHDAJEBkjFt4jEQJhAlECQQI2wWBts8OBDNELwQqxCaEIlVBg8QA/6O9DDtRNDUAfhigQEB1wD6QAEB+kABAdIA1AHQ0gABlYEBAdcAkm0B4vpAIdcLAcMAkQGSMW3iMRAmECUQJBAjbBYG0x8BghBZXwe8uvLggdM/+gD6QAEB+kAh1wsBwwCRAZIxbeIUQzA0EIkQeBBnEFYQRVUC4IIKnIOWuuMCGBkaAGzTHwGCEA+KfqW68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gHSAAGR1JJtAeL6AFFmFhUUQzAEumwiggCvECiz8vT4QW8kgRFNUz7HBfL0UeehggD1/CHC//L0QzBSP9s8MCLCADCBPrsBggr68IC88vT4QlQglPAoXNs8f1B2cIBAbW1WEARWEQQQOkur2zwQVhA0WRsSDA0BDMhVcNs8yQ4BBNs8HwCcghAXjUUZUAnLHxfLP1AF+gJQA88WASBulTBwAcsBks8W4gH6AgHPFsgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMAKTTHwGCEBeNRRm68uCB0z/6APpAAQH6QCHXCwHDAJEBkjFt4gH6ACDUAdDSAAGVgQEB1wCSbQHi+kAh1wsBwwCRAZIxbeIxECgQJxAmECUQJBAjA7QqjxVfBn9wA4BAVDOZ2zxUEwdQM21t2zzjDsj4QgHMVVBQVoEBAc8AUAPPFgHPFsoAyCJus5p/AcoAEoEBAc8AlTJwWMoA4lggbpUwcAHLAZLPFuLJAczJ7VQeHxEE/vhBbyQtbp4lbrOWPDwQOxAqkjQ04pI0NOJTDccFs46qcCtus54rIG7y0IBSIMcFkjB/3t6zjpL4QlPo8CgBgRFNAts8IscF8vTe3lH4oIIA9fwhwv/y9CP4J28QIaGCCJiWgGa2CKEtbo8TECtfCzZ/cIBAJ9s8J1UgbW3bPOASEx8UAEpwWchwAcsBcwHLAXABywASzMzJ+QDIcgHLAXABywASygfL/8nQAB7IAYIQWilDHljLHwHPFskEgIIImJaAoKEmwgCPoxAjERBQQts8UjCgHaFwcChIE1B02zwrEEZDE1BVbW3bPFAImAcREAdQiV8I4ihusyLCALAbFR8WADTIVTCCEHNi0JxQBcsfE8s/AfoCAc8WAc8WyQI0jxRwCSBu8tCAcATbPBBKQzAabW3bPJI4W+IXHwAcyAGCENUydttYyx/LP8kElFv4QW8kgRFNUzvHBVNLxwWxU0jHBbHy9FG0oYIA9fwhwv/y9EMwUjzbPDCBPrsBggnJw4C88vR/cAOAQFQzmds8VBMHUDNtbds8Gx4fHAGw7UTQ1AH4YoEBAdcA+kABAfpAAQHSANQB0NIAAZWBAQHXAJJtAeL6QCHXCwHDAJEBkjFt4jEQJhAlECQQI2wWBtMfAYIKnIOWuvLggfpAATEQVhBFEDRBMB0ACDDywIIAJGwx+gAxcdch+gAx+gAwpwOrAACAyPhCAcxVUFBWgQEBzwBQA88WAc8WygDIIm6zmn8BygASgQEBzwCVMnBYygDiWCBulTBwAcsBks8W4skBzMntVALeMDL4QW8kECNfA4ERTVMUxwVRJMcFErHy9H9wf1MRgEBUOpnbPCcDBFCqbW3bPALI+EIBzFVQUFaBAQHPAFADzxYBzxbKAMgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMye1UHh8ASMhVMIIQe92X3lAFyx8Tyz8B+gIBzxYBIG6VMHABywGSzxbiyQH2yHEBygFQBwHKAHABygJQBc8WUAP6AnABymgjbrMlbrOxjkx/AcoAyHABygBwAcoAJG6znX8BygAEIG7y0IBQBMyWNANwAcoA4iRus51/AcoABCBu8tCAUATMljQDcAHKAOJwAcoAAn8BygACyVjMlzMzAXABygDiIW6zIAAwnH8BygABIG7y0IABzJUxcAHKAOLJAfsAAIX7g2trgDZGYDAqqQKCtAgIDngCgB54sA54tlAGQRN1nNP4DlAAlAgIDngEqZOCxlAHEsEDdKmDgA5YDJZ4txZIDmZMAE3YFoegIYNoDAsEIAwAh6B7fQ+XBDgMCwQhEBQAh6C+R6AGSgAfgTwBh7/YF2omhqAPwxQICA64B9IACA/SAAgOkAagDoaQAAysCAgOuASTaA8X0gEOuFgOGASIDJGLbxGIgTCBKIEggRtgttnkJQBxvd6ME4LnYerpZXPY9CdhzrJUKNs0E4TusalpWyPlmRadeW/vixHME4TujwAfLZsB5P5B1ZLNZRCcABJfA/hCUxLwKDA=","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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Vote\",\"header\":3060856014,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"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\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"BlacklistWallet\"}}],\"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\"},\"41207\":{\"message\":\"invalid sender\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEAZgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAhWXBtbXAGyMwGBVUgUFaBAQHPAFADzxYBzxbKAMgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMyY=","args":[{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"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"}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file +{"name":"TONBWallet","code":"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","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\":\"int\",\"optional\":true,\"format\":257}},{\"name\":\"setLinkerAddress\",\"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\":\"StakingWithdraw\",\"header\":3665837821,\"fields\":[{\"name\":\"value\",\"type\":{\"kind\":\"simple\",\"type\":\"uint\",\"optional\":false,\"format\":\"coins\"}}]},{\"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\":\"ForwardToWallet\",\"header\":1562223291,\"fields\":[{\"name\":\"body\",\"type\":{\"kind\":\"simple\",\"type\":\"cell\",\"optional\":false}}]},{\"name\":\"BlacklistWallet\",\"header\":43811734,\"fields\":[{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"InitiateBlacklistVote\",\"header\":3909090059,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"wallet\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"InitiateLiquidationVote\",\"header\":301696559,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"FinishVote\",\"header\":710362179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"VoteMsg\",\"header\":1493035179,\"fields\":[{\"name\":\"voteId\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"AddressList\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"address\"}},{\"name\":\"length\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"Distribution\",\"header\":null,\"fields\":[{\"name\":\"addresses\",\"type\":{\"kind\":\"simple\",\"type\":\"AddressList\",\"optional\":false}},{\"name\":\"percents\",\"type\":{\"kind\":\"dict\",\"key\":\"address\",\"value\":\"int\"}}]},{\"name\":\"InitiateDistributionVote\",\"header\":276353205,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"vote_time\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":false}}]},{\"name\":\"SetStakingPool\",\"header\":124047688,\"fields\":[{\"name\":\"staking_pool\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}}]},{\"name\":\"RequestLinker\",\"header\":1512653598,\"fields\":[{\"name\":\"client\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"name\":\"Unstake\",\"header\":3125946401,\"fields\":[{\"name\":\"amount\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"RequestUnstake\",\"header\":3922648959,\"fields\":[{\"name\":\"founderIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"CollectProfit\",\"header\":1368467253,\"fields\":[{\"name\":\"adminIndex\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}}]},{\"name\":\"SetOwner\",\"header\":3072093686,\"fields\":[{\"name\":\"owner\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":false}}]},{\"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\":\"Proposal\",\"header\":null,\"fields\":[{\"name\":\"type\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"blacklistAddress\",\"type\":{\"kind\":\"simple\",\"type\":\"address\",\"optional\":true}},{\"name\":\"distribution\",\"type\":{\"kind\":\"simple\",\"type\":\"Distribution\",\"optional\":true}}]},{\"name\":\"Vote\",\"header\":null,\"fields\":[{\"name\":\"id\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"votes\",\"type\":{\"kind\":\"dict\",\"key\":\"int\",\"value\":\"int\"}},{\"name\":\"vote_end\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"proposal\",\"type\":{\"kind\":\"simple\",\"type\":\"Proposal\",\"optional\":false}},{\"name\":\"quorum_percent\",\"type\":{\"kind\":\"simple\",\"type\":\"int\",\"optional\":false,\"format\":257}},{\"name\":\"ended\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":false}},{\"name\":\"result\",\"type\":{\"kind\":\"simple\",\"type\":\"bool\",\"optional\":true}}]},{\"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\"}},{\"receiver\":\"internal\",\"message\":{\"kind\":\"typed\",\"type\":\"BlacklistWallet\"}}],\"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\"},\"6873\":{\"message\":\"Only an admin can initiate a vote\"},\"13650\":{\"message\":\"Invalid bounced message\"},\"16059\":{\"message\":\"Invalid value\"},\"16994\":{\"message\":\"Vote is finished\"},\"18474\":{\"message\":\"only the owner can set a new owner\"},\"19362\":{\"message\":\"Invalid quorum percent\"},\"29720\":{\"message\":\"Invalid vote\"},\"29821\":{\"message\":\"Voting requires at least 1 ton for the fees\"},\"30386\":{\"message\":\"Vote already ended\"},\"32366\":{\"message\":\"not enough money for deposit\"},\"34326\":{\"message\":\"Vote is not finished yet\"},\"37444\":{\"message\":\"Only a founder can request unstake\"},\"41207\":{\"message\":\"invalid sender\"},\"42983\":{\"message\":\"No profit to collect\"},\"44816\":{\"message\":\"Wallet is blacklisted\"},\"46931\":{\"message\":\"Invalid vote id\"},\"49606\":{\"message\":\"Invalid admin index\"},\"53981\":{\"message\":\"Only an admin can collect profit\"},\"56549\":{\"message\":\"Only an admin can vote\"},\"61070\":{\"message\":\"Invalid vote time\"},\"61265\":{\"message\":\"Only the owner can trigger un-staking\"},\"62972\":{\"message\":\"Invalid balance\"}}}","init":{"code":"te6ccgEBBgEAZgABFP8A9KQT9LzyyAsBAgFiAgMCAs0EBQAJoUrd4AsAAdQAhWXBtbXAGyMwGBVUgUFaBAQHPAFADzxYBzxbKAMgibrOafwHKABKBAQHPAJUycFjKAOJYIG6VMHABywGSzxbiyQHMyY=","args":[{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"deployment":{"kind":"system-cell","system":"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"}},"compiler":{"name":"tact","version":"0.9.2"}} \ No newline at end of file diff --git a/sources/output/jetton_TONBWallet.ts b/sources/output/jetton_TONBWallet.ts index 135baa0..9988c97 100644 --- a/sources/output/jetton_TONBWallet.ts +++ b/sources/output/jetton_TONBWallet.ts @@ -1065,40 +1065,40 @@ function dictValueParserFinishVote(): DictionaryValue { } } } -export type Vote = { - $$type: 'Vote'; +export type VoteMsg = { + $$type: 'VoteMsg'; voteId: bigint; adminIndex: bigint; vote: bigint; } -export function storeVote(src: Vote) { +export function storeVoteMsg(src: VoteMsg) { return (builder: Builder) => { let b_0 = builder; - b_0.storeUint(3060856014, 32); + b_0.storeUint(1493035179, 32); b_0.storeInt(src.voteId, 257); b_0.storeInt(src.adminIndex, 257); b_0.storeInt(src.vote, 257); }; } -export function loadVote(slice: Slice) { +export function loadVoteMsg(slice: Slice) { let sc_0 = slice; - if (sc_0.loadUint(32) !== 3060856014) { throw Error('Invalid prefix'); } + if (sc_0.loadUint(32) !== 1493035179) { throw Error('Invalid prefix'); } let _voteId = sc_0.loadIntBig(257); let _adminIndex = sc_0.loadIntBig(257); let _vote = sc_0.loadIntBig(257); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function loadTupleVote(source: TupleReader) { +function loadTupleVoteMsg(source: TupleReader) { let _voteId = source.readBigNumber(); let _adminIndex = source.readBigNumber(); let _vote = source.readBigNumber(); - return { $$type: 'Vote' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; + return { $$type: 'VoteMsg' as const, voteId: _voteId, adminIndex: _adminIndex, vote: _vote }; } -function storeTupleVote(source: Vote) { +function storeTupleVoteMsg(source: VoteMsg) { let builder = new TupleBuilder(); builder.writeNumber(source.voteId); builder.writeNumber(source.adminIndex); @@ -1106,13 +1106,13 @@ function storeTupleVote(source: Vote) { return builder.build(); } -function dictValueParserVote(): DictionaryValue { +function dictValueParserVoteMsg(): DictionaryValue { return { serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + buidler.storeRef(beginCell().store(storeVoteMsg(src)).endCell()); }, parse: (src) => { - return loadVote(src.loadRef().beginParse()); + return loadVoteMsg(src.loadRef().beginParse()); } } } @@ -1468,6 +1468,47 @@ function dictValueParserCollectProfit(): DictionaryValue { } } } +export type SetOwner = { + $$type: 'SetOwner'; + owner: Address; +} + +export function storeSetOwner(src: SetOwner) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeUint(3072093686, 32); + b_0.storeAddress(src.owner); + }; +} + +export function loadSetOwner(slice: Slice) { + let sc_0 = slice; + if (sc_0.loadUint(32) !== 3072093686) { throw Error('Invalid prefix'); } + let _owner = sc_0.loadAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function loadTupleSetOwner(source: TupleReader) { + let _owner = source.readAddress(); + return { $$type: 'SetOwner' as const, owner: _owner }; +} + +function storeTupleSetOwner(source: SetOwner) { + let builder = new TupleBuilder(); + builder.writeAddress(source.owner); + return builder.build(); +} + +function dictValueParserSetOwner(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeSetOwner(src)).endCell()); + }, + parse: (src) => { + return loadSetOwner(src.loadRef().beginParse()); + } + } +} export type WithdrawalRequests = { $$type: 'WithdrawalRequests'; addresses: Dictionary; @@ -1517,6 +1558,135 @@ function dictValueParserWithdrawalRequests(): DictionaryValue { + let b_0 = builder; + b_0.storeInt(src.type, 257); + b_0.storeAddress(src.blacklistAddress); + if (src.distribution !== null && src.distribution !== undefined) { b_0.storeBit(true); b_0.store(storeDistribution(src.distribution)); } else { b_0.storeBit(false); } + }; +} + +export function loadProposal(slice: Slice) { + let sc_0 = slice; + let _type = sc_0.loadIntBig(257); + let _blacklistAddress = sc_0.loadMaybeAddress(); + let _distribution = sc_0.loadBit() ? loadDistribution(sc_0) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function loadTupleProposal(source: TupleReader) { + let _type = source.readBigNumber(); + let _blacklistAddress = source.readAddressOpt(); + const _distribution_p = source.readTupleOpt(); + const _distribution = _distribution_p ? loadTupleDistribution(_distribution_p) : null; + return { $$type: 'Proposal' as const, type: _type, blacklistAddress: _blacklistAddress, distribution: _distribution }; +} + +function storeTupleProposal(source: Proposal) { + let builder = new TupleBuilder(); + builder.writeNumber(source.type); + builder.writeAddress(source.blacklistAddress); + if (source.distribution !== null && source.distribution !== undefined) { + builder.writeTuple(storeTupleDistribution(source.distribution)); + } else { + builder.writeTuple(null); + } + return builder.build(); +} + +function dictValueParserProposal(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeProposal(src)).endCell()); + }, + parse: (src) => { + return loadProposal(src.loadRef().beginParse()); + } + } +} +export type Vote = { + $$type: 'Vote'; + id: bigint; + votes: Dictionary; + vote_end: bigint; + proposal: Proposal; + quorum_percent: bigint; + ended: boolean; + result: boolean | null; +} + +export function storeVote(src: Vote) { + return (builder: Builder) => { + let b_0 = builder; + b_0.storeInt(src.id, 257); + b_0.storeDict(src.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)); + b_0.storeInt(src.vote_end, 257); + let b_1 = new Builder(); + b_1.store(storeProposal(src.proposal)); + let b_2 = new Builder(); + b_2.storeInt(src.quorum_percent, 257); + b_2.storeBit(src.ended); + if (src.result !== null && src.result !== undefined) { b_2.storeBit(true).storeBit(src.result); } else { b_2.storeBit(false); } + b_1.storeRef(b_2.endCell()); + b_0.storeRef(b_1.endCell()); + }; +} + +export function loadVote(slice: Slice) { + let sc_0 = slice; + let _id = sc_0.loadIntBig(257); + let _votes = Dictionary.load(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), sc_0); + let _vote_end = sc_0.loadIntBig(257); + let sc_1 = sc_0.loadRef().beginParse(); + let _proposal = loadProposal(sc_1); + let sc_2 = sc_1.loadRef().beginParse(); + let _quorum_percent = sc_2.loadIntBig(257); + let _ended = sc_2.loadBit(); + let _result = sc_2.loadBit() ? sc_2.loadBit() : null; + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function loadTupleVote(source: TupleReader) { + let _id = source.readBigNumber(); + let _votes = Dictionary.loadDirect(Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257), source.readCellOpt()); + let _vote_end = source.readBigNumber(); + const _proposal = loadTupleProposal(source.readTuple()); + let _quorum_percent = source.readBigNumber(); + let _ended = source.readBoolean(); + let _result = source.readBooleanOpt(); + return { $$type: 'Vote' as const, id: _id, votes: _votes, vote_end: _vote_end, proposal: _proposal, quorum_percent: _quorum_percent, ended: _ended, result: _result }; +} + +function storeTupleVote(source: Vote) { + let builder = new TupleBuilder(); + builder.writeNumber(source.id); + builder.writeCell(source.votes.size > 0 ? beginCell().storeDictDirect(source.votes, Dictionary.Keys.BigInt(257), Dictionary.Values.BigInt(257)).endCell() : null); + builder.writeNumber(source.vote_end); + builder.writeTuple(storeTupleProposal(source.proposal)); + builder.writeNumber(source.quorum_percent); + builder.writeBoolean(source.ended); + builder.writeBoolean(source.result); + return builder.build(); +} + +function dictValueParserVote(): DictionaryValue { + return { + serialize: (src, buidler) => { + buidler.storeRef(beginCell().store(storeVote(src)).endCell()); + }, + parse: (src) => { + return loadVote(src.loadRef().beginParse()); + } + } +} export type ChangeOwner = { $$type: 'ChangeOwner'; newOwner: Address; @@ -1694,11 +1864,26 @@ const TONBWallet_errors: { [key: number]: { message: string } } = { 136: { message: `Invalid address` }, 4429: { message: `Invalid sender` }, 6384: { message: `not enough money for withdraw` }, + 6873: { message: `Only an admin can initiate a vote` }, 13650: { message: `Invalid bounced message` }, 16059: { message: `Invalid value` }, + 16994: { message: `Vote is finished` }, + 18474: { message: `only the owner can set a new owner` }, + 19362: { message: `Invalid quorum percent` }, + 29720: { message: `Invalid vote` }, + 29821: { message: `Voting requires at least 1 ton for the fees` }, + 30386: { message: `Vote already ended` }, 32366: { message: `not enough money for deposit` }, + 34326: { message: `Vote is not finished yet` }, + 37444: { message: `Only a founder can request unstake` }, 41207: { message: `invalid sender` }, + 42983: { message: `No profit to collect` }, 44816: { message: `Wallet is blacklisted` }, + 46931: { message: `Invalid vote id` }, + 49606: { message: `Invalid admin index` }, + 53981: { message: `Only an admin can collect profit` }, + 56549: { message: `Only an admin can vote` }, + 61070: { message: `Invalid vote time` }, 61265: { message: `Only the owner can trigger un-staking` }, 62972: { message: `Invalid balance` }, } diff --git a/sources/tests/__snapshots__/jetton.spec.ts.snap b/sources/tests/__snapshots__/jetton.spec.ts.snap index 2438db1..d637ce7 100644 --- a/sources/tests/__snapshots__/jetton.spec.ts.snap +++ b/sources/tests/__snapshots__/jetton.spec.ts.snap @@ -13,14 +13,14 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon }, "bounce": true, "from": "kQAI-3FJVc_ywSuY4vq0bYrzR7S4Och4y7bTU_i5yLOB3A6P", - "to": "kQABEUn8yLZqJKZAi4TZjnxqafjqNKCwpuE_-kOXim3gA5il", + "to": "kQAHUsQxZnU4LMhYKHdaISP9rf-1OcdDAPFWD-bZapIcRtpr", "type": "internal", "value": 100200000000n, }, "type": "received", }, { - "gasUsed": 32815n, + "gasUsed": 32790n, "type": "processed", }, { @@ -31,8 +31,8 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon "type": "cell", }, "bounce": false, - "from": "kQABEUn8yLZqJKZAi4TZjnxqafjqNKCwpuE_-kOXim3gA5il", - "to": "kQCMEn5NnRirD8pMXczMDKEXDjBM8tPVXYdj6X3b9ySJdCgP", + "from": "kQAHUsQxZnU4LMhYKHdaISP9rf-1OcdDAPFWD-bZapIcRtpr", + "to": "kQCFVoQORdkDXw6i10RJiDkJAzm-Kj0oq_ldL66vZpovRblF", "type": "internal", "value": 11365000n, }, @@ -43,13 +43,13 @@ exports[`jetton should deploy and deposit the wallet with the correct sum of mon "messages": [ { "body": { - "cell": "x{178D451900000000000000005174876E800800022293F9916CD4494C811709B31CF8D4D3F1D46941614DC27FF4872F14DBC00700023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_} - x{800000000000000000000000000000000000000000000000000000000000000020046093F26CE8C5587E5262EE66606508B8718267969EAAEC3B1F4BEEDFB9244BA4_}", + "cell": "x{178D451900000000000000005174876E8008000EA58862CCEA705990B050EEB44247FB5BFF6A738E8601E2AC1FCDB2D524388D00023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_} + x{800000000000000000000000000000000000000000000000000000000000000020042AB420722EC81AF87516BA224C41C84819CDF151E9455FCAE97D757B34D17A2C_}", "type": "cell", }, "bounce": false, - "from": "kQABEUn8yLZqJKZAi4TZjnxqafjqNKCwpuE_-kOXim3gA5il", - "to": "kQBPWbXsnNaT4jX5J-TIyCfqT9ieWU1c-OxPUejeUisQd5cf", + "from": "kQAHUsQxZnU4LMhYKHdaISP9rf-1OcdDAPFWD-bZapIcRtpr", + "to": "kQDyCsUcb80ZqWzhdTc0Qm-DMCQMp9QyFHBtH0Y2RlTXVSu1", "type": "internal", "value": 41715000n, }, @@ -69,14 +69,14 @@ exports[`jetton should work correctly with the staking 1`] = ` }, "bounce": true, "from": "kQAI-3FJVc_ywSuY4vq0bYrzR7S4Och4y7bTU_i5yLOB3A6P", - "to": "kQCWdkwB2iVEz4eqkgyEp_trwnITQd4LiGEcLGENymBCqgFX", + "to": "kQDwhC8P_RtjQLYFddZ6FFl3wC95KNUcG6s-f7bIe4s6amT_", "type": "internal", "value": 100200000000n, }, "type": "received", }, { - "gasUsed": 36098n, + "gasUsed": 36073n, "type": "processed", }, { @@ -87,8 +87,8 @@ exports[`jetton should work correctly with the staking 1`] = ` "type": "cell", }, "bounce": false, - "from": "kQCWdkwB2iVEz4eqkgyEp_trwnITQd4LiGEcLGENymBCqgFX", - "to": "kQACkI90BJ8sTu1IlFoOtzChElnpXsotC8lrmFMGJknQ_Flx", + "from": "kQDwhC8P_RtjQLYFddZ6FFl3wC95KNUcG6s-f7bIe4s6amT_", + "to": "kQDg1oqtEuoPiStRfbdmM9Bifn4MUekCMD6ufYHXOsuoAizf", "type": "internal", "value": 11365000n, }, @@ -99,13 +99,13 @@ exports[`jetton should work correctly with the staking 1`] = ` "messages": [ { "body": { - "cell": "x{178D451900000000000000005174876E8008012CEC9803B44A899F0F552419094FF6D784E42683BC1710C23858C21B94C0855500023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_} - x{8000000000000000000000000000000000000000000000000000000000000000200014847BA024F962776A44A2D075B9850892CF4AF651685E4B5CC29831324E87E4_}", + "cell": "x{178D451900000000000000005174876E800801E1085E1FFA36C6816C0AEBACF428B2EF805EF251AA3837567CFF6D90F71674D500023EDC525573FCB04AE638BEAD1B62BCD1ED2E0E721E32EDB4D4FE2E722CE07702_} + x{8000000000000000000000000000000000000000000000000000000000000000200706B4556897507C495A8BEDBB319E8313F3F0628F481181F573EC0EB9D65D4014_}", "type": "cell", }, "bounce": false, - "from": "kQCWdkwB2iVEz4eqkgyEp_trwnITQd4LiGEcLGENymBCqgFX", - "to": "kQCO4TveQnMW97esrpa9c9juf5h1ry8gHsxGmUzPjVmBd9Sf", + "from": "kQDwhC8P_RtjQLYFddZ6FFl3wC95KNUcG6s-f7bIe4s6amT_", + "to": "kQBVdGf16yM9JOGzv062bUvEyZGz2yjeJqOnGU_HMPxJxu2S", "type": "internal", "value": 41715000n, }, @@ -120,7 +120,7 @@ exports[`jetton should work correctly with the staking 1`] = ` "type": "cell", }, "bounce": true, - "from": "kQCWdkwB2iVEz4eqkgyEp_trwnITQd4LiGEcLGENymBCqgFX", + "from": "kQDwhC8P_RtjQLYFddZ6FFl3wC95KNUcG6s-f7bIe4s6amT_", "to": "kQC5Y865mUcSTsSpJYbli0KmSiriJUBFHlKmvNqkS7T5VyUx", "type": "internal", "value": 99491421000n, diff --git a/sources/tests/foundation.spec.ts b/sources/tests/foundation.spec.ts new file mode 100644 index 0000000..7b64306 --- /dev/null +++ b/sources/tests/foundation.spec.ts @@ -0,0 +1,23 @@ +import { toNano } from "ton"; +import { ContractSystem } from "ton-emulator"; +import {TONB} from '../output/jetton_TONB'; +import {Foundation} from '../output/jetton_Foundation'; +import { default_content } from '../utils/config'; +import { TONBWallet } from '../output/jetton_TONBWallet'; +import { beginCell } from 'ton-core'; +import { PseudoStaking } from '../output/jetton_PseudoStaking'; +import { createDistribution, createAddressList } from "../utils/interactions"; + +describe('jetton', () => { + it('should be able to create a vote', async () => { + // Create jetton + let system = await ContractSystem.create(); + let owner = system.treasure('owner'); + let tonb = system.open(await TONB.fromInit(owner.address, default_content, null)); + let foundation = system.open(await Foundation.fromInit( + createDistribution([owner.address], [100n]), + createAddressList([]), tonb.address)); + tonb.send(owner, { value: toNano('1') }, { $$type: 'SetOwner', owner: foundation.address }); + let tracker = system.track(foundation.address); + }); +}); \ No newline at end of file diff --git a/sources/tests/voting.spec.ts b/sources/tests/voting.spec.ts deleted file mode 100644 index 1c51624..0000000 --- a/sources/tests/voting.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { toNano, Address } from "ton"; -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'; -import { PseudoStaking } from '../output/jetton_PseudoStaking'; - - - -describe('jetton', () => { - it('should be able to create a vote', async () => { - // Create jetton - let system = await ContractSystem.create(); - let owner = system.treasure('owner'); - let contract = system.open(await TONB.fromInit(owner.address, default_content, null)); - let tracker = system.track(contract.address); - }); -}); \ No newline at end of file diff --git a/sources/utils/interactions.ts b/sources/utils/interactions.ts index 40c3dfe..882d03f 100644 --- a/sources/utils/interactions.ts +++ b/sources/utils/interactions.ts @@ -4,6 +4,8 @@ import { TON } from "./helpers"; import { wallet_data, owner, default_content, workchain } from './config'; import { TONB } from "../output/jetton_TONB"; import { TONBWallet } from '../output/jetton_TONBWallet'; +import { Distribution, AddressList } from '../output/jetton_TONBWallet'; +import { Dictionary } from 'ton-core'; export async function sendMessage(wallet: any, secretKey: Buffer, msg: { value: string | bigint, to: Address, bounce?: boolean, init?: { code?: Cell, data?: Cell }, body?: any }) { let seqno: number = await wallet.getSeqno(); @@ -74,7 +76,31 @@ export async function getTONB(tonb_content?: any) { if (!tonb_content) { tonb_content = default_content; } - return await TONB.fromInit(owner, tonb_content); + return await TONB.fromInit(owner, tonb_content, null); +} + + +export function createAddressList(addresses: Address[]): AddressList { + let dict: Dictionary = Dictionary.empty(); + for (let i = 0; i < addresses.length; i++) { + dict.set(BigInt(i), addresses[i]); + } + return { + $$type: 'AddressList', + addresses: dict, + length: BigInt(addresses.length) + }; +} +export function createDistribution(addresses: Address[], percents: bigint[]): Distribution { + let dict: Dictionary = Dictionary.empty(); + for (let i = 0; i < addresses.length; i++) { + dict.set(addresses[i], percents[i]); + } + return { + $$type: 'Distribution', + addresses: createAddressList(addresses), + percents: dict + }; } export async function deployTONB(tonb_content?: any, cancel: boolean = false) {