@pizzaton/ton 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CONTRACTS.md +239 -0
  2. package/README.md +505 -2
  3. package/dist/airdrop/index.d.mts +18 -0
  4. package/dist/airdrop/index.mjs +86 -0
  5. package/dist/connect/errors.d.mts +4 -0
  6. package/dist/connect/errors.mjs +21 -0
  7. package/dist/connect/index.d.mts +23 -0
  8. package/dist/connect/index.mjs +34 -0
  9. package/dist/contracts/catalog/index.d.mts +361 -0
  10. package/dist/contracts/catalog/index.mjs +403 -0
  11. package/dist/contracts/client.d.mts +18 -0
  12. package/dist/contracts/client.mjs +31 -0
  13. package/dist/contracts/codecs.d.mts +14 -0
  14. package/dist/contracts/codecs.mjs +61 -0
  15. package/dist/contracts/hipo.d.mts +138 -0
  16. package/dist/contracts/hipo.mjs +198 -0
  17. package/dist/contracts/index.d.mts +23 -0
  18. package/dist/contracts/index.mjs +20 -0
  19. package/dist/contracts/metadata.d.mts +38 -0
  20. package/dist/contracts/metadata.mjs +50 -0
  21. package/dist/contracts/module-client.d.mts +20 -0
  22. package/dist/contracts/module-client.mjs +34 -0
  23. package/dist/contracts/module.d.mts +8 -0
  24. package/dist/contracts/module.mjs +11 -0
  25. package/dist/contracts/wrappers/base.d.mts +18 -0
  26. package/dist/contracts/wrappers/base.mjs +31 -0
  27. package/dist/contracts/wrappers/index.d.mts +12 -0
  28. package/dist/contracts/wrappers/index.mjs +12 -0
  29. package/dist/contracts/wrappers/jvault-protocols.d.mts +206 -0
  30. package/dist/contracts/wrappers/jvault-protocols.mjs +432 -0
  31. package/dist/contracts/wrappers/jvault-support.d.mts +135 -0
  32. package/dist/contracts/wrappers/jvault-support.mjs +269 -0
  33. package/dist/contracts/wrappers/jvault.d.mts +123 -0
  34. package/dist/contracts/wrappers/jvault.mjs +258 -0
  35. package/dist/contracts/wrappers/memeland.d.mts +253 -0
  36. package/dist/contracts/wrappers/memeland.mjs +396 -0
  37. package/dist/contracts/wrappers/multix.d.mts +92 -0
  38. package/dist/contracts/wrappers/multix.mjs +156 -0
  39. package/dist/contracts/wrappers/pizzabox.d.mts +66 -0
  40. package/dist/contracts/wrappers/pizzabox.mjs +105 -0
  41. package/dist/contracts/wrappers/ton-raffles.d.mts +215 -0
  42. package/dist/contracts/wrappers/ton-raffles.mjs +398 -0
  43. package/dist/contracts/wrappers/tonresistor.d.mts +189 -0
  44. package/dist/contracts/wrappers/tonresistor.mjs +276 -0
  45. package/dist/core/address.d.mts +31 -0
  46. package/dist/core/address.mjs +53 -0
  47. package/dist/core/amount.d.mts +8 -0
  48. package/dist/core/amount.mjs +34 -0
  49. package/dist/core/bytes.d.mts +5 -0
  50. package/dist/core/bytes.mjs +18 -0
  51. package/dist/core/constants.d.mts +14 -0
  52. package/dist/core/constants.mjs +15 -0
  53. package/dist/core/errors.d.mts +9 -0
  54. package/dist/core/errors.mjs +16 -0
  55. package/dist/core/http.mjs +39 -0
  56. package/dist/core/index.d.mts +8 -0
  57. package/dist/core/index.mjs +8 -0
  58. package/dist/core/metadata.d.mts +12 -0
  59. package/dist/core/metadata.mjs +35 -0
  60. package/dist/core/network.d.mts +24 -0
  61. package/dist/core/network.mjs +41 -0
  62. package/dist/emulator/index.d.mts +20 -0
  63. package/dist/emulator/index.mjs +24 -0
  64. package/dist/index.d.mts +21 -0
  65. package/dist/index.mjs +19 -0
  66. package/dist/indexer/index.d.mts +90 -0
  67. package/dist/indexer/index.mjs +279 -0
  68. package/dist/jetton/details.d.mts +27 -0
  69. package/dist/jetton/details.mjs +116 -0
  70. package/dist/jetton/index.d.mts +54 -0
  71. package/dist/jetton/index.mjs +92 -0
  72. package/dist/jetton/versions.d.mts +12 -0
  73. package/dist/jetton/versions.mjs +50 -0
  74. package/dist/nft/collection.d.mts +57 -0
  75. package/dist/nft/collection.mjs +148 -0
  76. package/dist/nft/content.d.mts +34 -0
  77. package/dist/nft/content.mjs +142 -0
  78. package/dist/nft/index.d.mts +35 -0
  79. package/dist/nft/index.mjs +51 -0
  80. package/dist/nft/versions.d.mts +11 -0
  81. package/dist/nft/versions.mjs +29 -0
  82. package/dist/proof/index.d.mts +62 -0
  83. package/dist/proof/index.mjs +227 -0
  84. package/dist/provider/index.d.mts +32 -0
  85. package/dist/provider/index.mjs +1 -0
  86. package/dist/react/index.d.mts +13 -0
  87. package/dist/react/index.mjs +48 -0
  88. package/dist/server/index.d.mts +11 -0
  89. package/dist/server/index.mjs +55 -0
  90. package/dist/simulation/index.d.mts +112 -0
  91. package/dist/simulation/index.mjs +310 -0
  92. package/dist/transactions/index.d.mts +33 -0
  93. package/dist/transactions/index.mjs +51 -0
  94. package/dist/vesting/index.d.mts +12 -0
  95. package/dist/vesting/index.mjs +25 -0
  96. package/dist/wallet/index.d.mts +23 -0
  97. package/dist/wallet/index.mjs +71 -0
  98. package/package.json +176 -5
@@ -0,0 +1,258 @@
1
+ import { addressFlagDictionary, uint32FlagDictionary } from "../codecs.mjs";
2
+ import { JETTON_OPCODES, buildJettonTransferBody } from "../../jetton/index.mjs";
3
+ import { buildOnchainMetadata } from "../../nft/content.mjs";
4
+ import { ContractWrapper } from "./base.mjs";
5
+ import { Dictionary, TupleBuilder, beginCell, contractAddress } from "@ton/core";
6
+ //#region src/contracts/wrappers/jvault.ts
7
+ /** JVault staking-v2 source: https://github.com/JVault-app/staking-v2 */
8
+ const JVAULT_STAKING_V2_COMMIT = "f7e83860ba7138c88bf63da13884f54d04589191";
9
+ const JVAULT_OPCODES = {
10
+ transferJetton: JETTON_OPCODES.transfer,
11
+ claimRewards: 2027548937,
12
+ unstakeJettons: 1234866786,
13
+ unstakeRequest: 23647415,
14
+ cancelUnstakeRequest: 2760970010,
15
+ addRewardJettons: 275213031,
16
+ addRewards: 3675696277,
17
+ claimCommissions: 3165188199,
18
+ claimReferralRewards: 2027548937,
19
+ deployNewPool: 3666222871,
20
+ setLockWallet: 3513996288,
21
+ deployReferrerWallets: 3736195191,
22
+ changeCreationFee: 1725256331,
23
+ changeContent: 247632384,
24
+ updatePoolsCode: 3736195208,
25
+ updateCodes: 2244551631,
26
+ sendWithdrawTon: 3854050959,
27
+ requestUpdateReferrer: 1438866240,
28
+ sendReferrerRewards: 3087954386,
29
+ updateReferrer: 124708064,
30
+ upgradeReferrerWallet: 2529429272,
31
+ setData: 942936554
32
+ };
33
+ const MAX_UINT32 = 4294967295;
34
+ const MAX_UINT64 = 18446744073709551615n;
35
+ const SECONDS_PER_DAY = 86400;
36
+ const MAX_COINS = (1n << 120n) - 1n;
37
+ function queryId(value) {
38
+ const result = value ?? 0n;
39
+ if (result < 0n || result > MAX_UINT64) throw new RangeError("queryId must be a uint64");
40
+ return result;
41
+ }
42
+ function uint(value, max, field) {
43
+ if (!Number.isSafeInteger(value) || value < 0 || value > max) throw new RangeError(`${field} must be an unsigned integer <= ${String(max)}`);
44
+ return value;
45
+ }
46
+ function positive(value, field) {
47
+ if (value <= 0n) throw new RangeError(`${field} must be positive`);
48
+ return value;
49
+ }
50
+ function bodyWithHeader(op, id) {
51
+ return beginCell().storeUint(op, 32).storeUint(queryId(id), 64);
52
+ }
53
+ function buildJVaultStakeForwardPayload(input) {
54
+ const seconds = uint(input.lockPeriodDays * SECONDS_PER_DAY, MAX_UINT32, "lockPeriodDays");
55
+ const builder = bodyWithHeader(3818940809).storeUint(seconds, 32);
56
+ return (input.referrer ? builder.storeMaybeRef(beginCell().storeAddress(input.referrer).endCell()) : builder.storeBit(0)).endCell();
57
+ }
58
+ function buildJVaultStakeBody(input) {
59
+ positive(input.jettonAmount, "jettonAmount");
60
+ const transfer = {
61
+ amount: input.jettonAmount,
62
+ destination: input.pool,
63
+ responseDestination: input.owner,
64
+ forwardAmount: 390000000n,
65
+ forwardPayload: buildJVaultStakeForwardPayload(input)
66
+ };
67
+ return input.queryId === void 0 ? buildJettonTransferBody(transfer) : buildJettonTransferBody({
68
+ ...transfer,
69
+ queryId: input.queryId
70
+ });
71
+ }
72
+ function buildJVaultAddRewardsBody(input) {
73
+ positive(input.jettonAmount, "jettonAmount");
74
+ uint(input.startTime, MAX_UINT32, "startTime");
75
+ uint(input.endTime, MAX_UINT32, "endTime");
76
+ if (input.endTime <= input.startTime) throw new RangeError("endTime must be after startTime");
77
+ const transfer = {
78
+ amount: input.jettonAmount,
79
+ destination: input.pool,
80
+ responseDestination: input.owner,
81
+ forwardAmount: 100000000n,
82
+ forwardPayload: beginCell().storeUint(JVAULT_OPCODES.addRewards, 32).storeUint(input.startTime, 32).storeUint(input.endTime, 32).endCell()
83
+ };
84
+ return input.queryId === void 0 ? buildJettonTransferBody(transfer) : buildJettonTransferBody({
85
+ ...transfer,
86
+ queryId: input.queryId
87
+ });
88
+ }
89
+ /** Encodes PoolFactory::deploy_new_pool from staking-v2/functions.fc. */
90
+ function buildJVaultDeployPoolBody(input) {
91
+ if (input.periods.length === 0) throw new RangeError("periods must not be empty");
92
+ if (input.poolName.length === 0 || input.poolName.length > 127) throw new RangeError("poolName must contain between 1 and 127 characters");
93
+ if (input.jettonSymbol.length === 0 || input.jettonSymbol.length > 127) throw new RangeError("jettonSymbol must contain between 1 and 127 characters");
94
+ if (input.jettonFullName.length === 0 || input.jettonFullName.length > 127) throw new RangeError("jettonFullName must contain between 1 and 127 characters");
95
+ if (!input.imageUrl.startsWith("https://")) throw new RangeError("imageUrl must use https://");
96
+ uint(input.jettonDecimals, 255, "jettonDecimals");
97
+ if (input.minDeposit < 0n || input.minDeposit >= 1n << 120n) throw new RangeError("minDeposit must fit in TON coins");
98
+ if (input.maxDeposit !== null && input.maxDeposit < input.minDeposit) throw new RangeError("maxDeposit must be at least minDeposit");
99
+ if (input.maxDeposit !== null && input.maxDeposit >= 1n << 120n) throw new RangeError("maxDeposit must fit in TON coins");
100
+ const periods = Dictionary.empty(Dictionary.Keys.Uint(32), {
101
+ serialize: (value, builder) => builder.storeSlice(value.beginParse()).endCell(),
102
+ parse: (slice) => slice.asCell()
103
+ });
104
+ for (const period of input.periods) {
105
+ if (period.days <= 0) throw new RangeError("period.days must be positive");
106
+ const seconds = uint(period.days * SECONDS_PER_DAY, MAX_UINT32, "period.days");
107
+ periods.set(seconds, beginCell().storeCoins(period.tvlLimit ?? MAX_COINS).storeUint(uint(period.rewardMultiplierPerMille, 65535, "rewardMultiplierPerMille"), 16).storeUint(uint(period.depositCommissionBps, 1e4, "depositCommissionBps"), 16).storeUint(uint(period.unstakeCommissionBps, 1e4, "unstakeCommissionBps"), 16).storeMaybeRef(buildOnchainMetadata({
108
+ name: `${input.jettonSymbol} staked on JVault.xyz`,
109
+ symbol: `st-${input.jettonSymbol}-${String(period.days)}D`,
110
+ decimals: String(input.jettonDecimals),
111
+ image: input.imageUrl,
112
+ description: `These jettons confirm ownership of ${input.jettonFullName} staked on JVault.xyz.`
113
+ })).endCell());
114
+ }
115
+ const payload = beginCell().storeUint(JVAULT_OPCODES.deployNewPool, 32).storeAddress(input.lockJettonMaster).storeCoins(input.minDeposit).storeCoins(input.maxDeposit ?? MAX_COINS).storeDict(periods).storeDict(addressFlagDictionary(input.whitelist ?? [])).storeUint(uint(input.rewardsCommissionBps, 1e4, "rewardsCommissionBps"), 16).storeMaybeRef(buildOnchainMetadata({
116
+ name: input.poolName,
117
+ description: "This staking pool was created on JVault.xyz",
118
+ image: input.imageUrl,
119
+ lock_jetton_address: input.lockJettonMaster.toString()
120
+ })).endCell();
121
+ const transfer = {
122
+ amount: positive(input.creationFee, "creationFee"),
123
+ destination: input.factory,
124
+ responseDestination: input.sender,
125
+ forwardAmount: 150000000n,
126
+ forwardPayload: payload
127
+ };
128
+ return input.queryId === void 0 ? buildJettonTransferBody(transfer) : buildJettonTransferBody({
129
+ ...transfer,
130
+ queryId: input.queryId
131
+ });
132
+ }
133
+ var JVaultStakingPool = class JVaultStakingPool extends ContractWrapper {
134
+ static createFromAddress(address) {
135
+ return new JVaultStakingPool(address);
136
+ }
137
+ static createFromConfig(config, workchain = 0) {
138
+ const init = {
139
+ code: config.code,
140
+ data: config.data
141
+ };
142
+ return new JVaultStakingPool(contractAddress(workchain, init), init);
143
+ }
144
+ async sendAddRewardJettons(provider, via, wallets, value, queryIdValue) {
145
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.addRewardJettons, queryIdValue).storeDict(addressFlagDictionary(wallets)).endCell());
146
+ }
147
+ async sendAddRewards(provider, via, input, value) {
148
+ await this.send(provider, via, value, buildJVaultAddRewardsBody(input));
149
+ }
150
+ async sendClaimCommissions(provider, via, value, queryIdValue) {
151
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.claimCommissions, queryIdValue).endCell());
152
+ }
153
+ async sendSetLockWallet(provider, via, wallet, value, queryIdValue) {
154
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.setLockWallet, queryIdValue).storeAddress(wallet).endCell());
155
+ }
156
+ async getStorageData(provider) {
157
+ return this.get(provider, "get_storage_data");
158
+ }
159
+ async getStakeWalletAddress(provider, owner, lockPeriodSeconds) {
160
+ const tupleBuilder = new TupleBuilder();
161
+ tupleBuilder.writeAddress(owner);
162
+ tupleBuilder.writeNumber(uint(lockPeriodSeconds, MAX_UINT32, "lockPeriodSeconds"));
163
+ const tuple = tupleBuilder.build();
164
+ return (await this.get(provider, "get_stake_wallet_address", tuple)).readAddress();
165
+ }
166
+ };
167
+ var JVaultStakeWallet = class JVaultStakeWallet extends ContractWrapper {
168
+ static createFromAddress(address) {
169
+ return new JVaultStakeWallet(address);
170
+ }
171
+ async sendUnstakeRequest(provider, via, amount, value, queryIdValue) {
172
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.unstakeRequest, queryIdValue).storeCoins(positive(amount, "amount")).endCell());
173
+ }
174
+ async sendUnstake(provider, via, amount, force, value, queryIdValue) {
175
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.unstakeJettons, queryIdValue).storeCoins(positive(amount, "amount")).storeBit(force).endCell());
176
+ }
177
+ async sendCancelUnstake(provider, via, requestTimes, value, queryIdValue) {
178
+ if (requestTimes.length === 0) throw new RangeError("requestTimes must not be empty");
179
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.cancelUnstakeRequest, queryIdValue).storeDict(uint32FlagDictionary(requestTimes)).endCell());
180
+ }
181
+ async sendClaimRewards(provider, via, poolJettonWallets, value, queryIdValue) {
182
+ if (poolJettonWallets.length === 0) throw new RangeError("poolJettonWallets must not be empty");
183
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.claimRewards, queryIdValue).storeDict(addressFlagDictionary(poolJettonWallets)).endCell());
184
+ }
185
+ async getStorageData(provider) {
186
+ return this.get(provider, "get_storage_data");
187
+ }
188
+ };
189
+ var JVaultPoolFactory = class JVaultPoolFactory extends ContractWrapper {
190
+ static createFromAddress(address) {
191
+ return new JVaultPoolFactory(address);
192
+ }
193
+ async sendDeployPool(provider, via, payload, value) {
194
+ await this.send(provider, via, value, payload);
195
+ }
196
+ async sendDeployPoolBody(provider, via, input, value) {
197
+ await this.send(provider, via, value, buildJVaultDeployPoolBody(input));
198
+ }
199
+ async sendDeployReferrerWallets(provider, via, owners, value, queryIdValue) {
200
+ await this.send(provider, via, value, bodyWithHeader(JVAULT_OPCODES.deployReferrerWallets, queryIdValue).storeDict(addressFlagDictionary(owners)).endCell());
201
+ }
202
+ async getStorageData(provider) {
203
+ return this.get(provider, "get_storage_data");
204
+ }
205
+ async getPoolAddressByIndex(provider, index) {
206
+ const tuple = [{
207
+ type: "int",
208
+ value: BigInt(uint(index, MAX_UINT32, "index"))
209
+ }];
210
+ return (await this.get(provider, "get_nft_address_by_index", tuple)).readAddress();
211
+ }
212
+ };
213
+ var JVaultReferrerWallet = class JVaultReferrerWallet extends ContractWrapper {
214
+ static createFromAddress(address) {
215
+ return new JVaultReferrerWallet(address);
216
+ }
217
+ async sendClaimRewards(provider, via, entries, value, queryIdValue) {
218
+ await this.send(provider, via, value, buildJVaultReferralClaimBody(entries, queryIdValue));
219
+ }
220
+ async getStorageData(provider) {
221
+ return this.get(provider, "get_storage_data");
222
+ }
223
+ };
224
+ /** Encodes ReferrerWallet::claim_rewards' HashmapE(32, coins + wallet set). */
225
+ function buildJVaultReferralClaimBody(entries, queryIdValue) {
226
+ return bodyWithHeader(JVAULT_OPCODES.claimReferralRewards, queryIdValue).storeDict(buildJVaultReferralClaimDictionary(entries)).endCell();
227
+ }
228
+ function buildJVaultReferralClaimDictionary(entries) {
229
+ if (entries.length === 0) throw new RangeError("entries must not be empty");
230
+ const dictionary = Dictionary.empty(Dictionary.Keys.Uint(32), {
231
+ serialize: (entry, builder) => {
232
+ if (entry.poolJettonWallets.length === 0) throw new RangeError("poolJettonWallets must not be empty");
233
+ builder.storeCoins(300000000n + 55000000n * BigInt(entry.poolJettonWallets.length)).storeDict(addressFlagDictionary(entry.poolJettonWallets));
234
+ },
235
+ parse: () => {
236
+ throw new Error("JVaultReferralClaimEntry is write-only");
237
+ }
238
+ });
239
+ const poolIds = /* @__PURE__ */ new Set();
240
+ for (const entry of entries) {
241
+ uint(entry.poolId, MAX_UINT32, "poolId");
242
+ if (entry.poolJettonWallets.length === 0) throw new RangeError("poolJettonWallets must not be empty");
243
+ if (poolIds.has(entry.poolId)) throw new RangeError(`duplicate poolId: ${String(entry.poolId)}`);
244
+ poolIds.add(entry.poolId);
245
+ dictionary.set(entry.poolId, entry);
246
+ }
247
+ return dictionary;
248
+ }
249
+ var JVaultInviteeWallet = class JVaultInviteeWallet extends ContractWrapper {
250
+ static createFromAddress(address) {
251
+ return new JVaultInviteeWallet(address);
252
+ }
253
+ async getStorageData(provider) {
254
+ return this.get(provider, "get_storage_data");
255
+ }
256
+ };
257
+ //#endregion
258
+ export { JVAULT_OPCODES, JVAULT_STAKING_V2_COMMIT, JVaultInviteeWallet, JVaultPoolFactory, JVaultReferrerWallet, JVaultStakeWallet, JVaultStakingPool, buildJVaultAddRewardsBody, buildJVaultDeployPoolBody, buildJVaultReferralClaimBody, buildJVaultStakeBody, buildJVaultStakeForwardPayload };
@@ -0,0 +1,253 @@
1
+ import { ContractWrapper } from "./base.mjs";
2
+ import { Address, Cell, ContractProvider, Sender } from "@ton/core";
3
+ //#region src/contracts/wrappers/memeland.d.ts
4
+ /** Memeland BCL source revision: https://github.com/PizzaTon/memeland-contracts */
5
+ export declare const MEMELAND_CONTRACTS_COMMIT = "a7e132be091585b80cb6ffc6b7b50c8f0bdc53a2";
6
+ declare const MEMELAND_OPCODES: {
7
+ readonly deployCoin: number;
8
+ readonly buy: number;
9
+ readonly sell: number;
10
+ readonly unlockWallet: number;
11
+ readonly setAdmin: number;
12
+ readonly setAuthor: number;
13
+ readonly setContent: number;
14
+ readonly setFees: number;
15
+ readonly setCode: number;
16
+ readonly setData: number;
17
+ readonly setCodeData: number;
18
+ readonly collectFees: number;
19
+ readonly toggleDeployEnable: number;
20
+ readonly feePayout: number;
21
+ readonly topUp: 3547469196;
22
+ readonly transfer: 260734629;
23
+ readonly burn: 1499400124;
24
+ readonly burnNotification: 2078119902;
25
+ readonly setStatus: 4006754003;
26
+ readonly transferNotification: 1935855772;
27
+ readonly internalTransfer: 395134233;
28
+ readonly excesses: 3576854235;
29
+ readonly provideWalletAddress: 745978227;
30
+ readonly takeWalletAddress: 3513996288;
31
+ readonly mint: 21;
32
+ };
33
+ export declare const MEMELAND_GAS: {
34
+ readonly coinDeployment: 50000000n;
35
+ readonly coinBuy: 50000000n;
36
+ readonly coinSell: 60000000n;
37
+ readonly walletUnlock: 50000000n;
38
+ };
39
+ export interface MemelandFeeConfig {
40
+ readonly feeAddress: Address;
41
+ readonly feeNumerator: number;
42
+ readonly feeDenominator: number;
43
+ }
44
+ export interface MemelandFactoryConfig {
45
+ readonly loggerAddress: Address;
46
+ readonly admin: Address;
47
+ readonly deploymentFee: bigint;
48
+ readonly maxTon: bigint;
49
+ readonly coinAdmin: Address;
50
+ readonly coinTtl: number;
51
+ readonly bclSupply: bigint;
52
+ readonly liqSupply: bigint;
53
+ readonly tradingCloseFee: bigint;
54
+ readonly fullPriceTon: bigint;
55
+ readonly fullPriceTonFee: bigint;
56
+ readonly isEnabled: boolean;
57
+ readonly seed: bigint;
58
+ readonly fee: MemelandFeeConfig;
59
+ readonly coinCode: Cell;
60
+ readonly walletCode: Cell;
61
+ }
62
+ export declare function buildMemelandFactoryData(config: MemelandFactoryConfig): Cell;
63
+ export interface MemelandDeployCoinInput {
64
+ readonly author: Address;
65
+ readonly name: string;
66
+ readonly description?: string;
67
+ readonly image?: string;
68
+ readonly symbol?: string;
69
+ readonly socialLinks?: readonly string[];
70
+ readonly extraMetadata?: Readonly<Record<string, string>>;
71
+ readonly referral?: Cell | null;
72
+ readonly queryId?: bigint;
73
+ }
74
+ export interface MemelandFirstBuyInput {
75
+ readonly tons: bigint;
76
+ readonly minReceive: bigint;
77
+ readonly buyer: Address;
78
+ readonly referral?: Cell | null;
79
+ readonly queryId?: bigint;
80
+ }
81
+ export interface MemelandDeployCoinOptions {
82
+ readonly deploymentFee: bigint;
83
+ readonly deploymentGas?: bigint;
84
+ readonly buyGas?: bigint;
85
+ readonly firstBuy?: MemelandFirstBuyInput;
86
+ }
87
+ /** Build the external wallet payload for a factory coin deployment. */
88
+ export declare function buildMemelandDeployCoinBody(input: MemelandDeployCoinInput, options: MemelandDeployCoinOptions): Cell;
89
+ export declare function buildMemelandBuyBody(input: MemelandBuyInput): Cell;
90
+ export declare function buildMemelandSellBody(input: {
91
+ readonly amount: bigint;
92
+ readonly minReceive: bigint;
93
+ readonly referral?: Cell | null;
94
+ readonly queryId?: bigint;
95
+ }): Cell;
96
+ export declare function buildMemelandUnlockBody(queryId?: bigint): Cell;
97
+ export declare class MemelandBclFactory extends ContractWrapper {
98
+ static createFromAddress(address: Address): MemelandBclFactory;
99
+ static createFromConfig(config: MemelandFactoryConfig, code: Cell, workchain?: number): MemelandBclFactory;
100
+ sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
101
+ sendSetAdmin(provider: ContractProvider, via: Sender, value: bigint, admin: Address): Promise<void>;
102
+ sendSetFees(provider: ContractProvider, via: Sender, value: bigint, deploymentFee: bigint, config: MemelandFeeConfig): Promise<void>;
103
+ sendSetCode(provider: ContractProvider, via: Sender, value: bigint, code: Cell): Promise<void>;
104
+ sendSetData(provider: ContractProvider, via: Sender, value: bigint, data: Cell): Promise<void>;
105
+ sendSetCodeData(provider: ContractProvider, via: Sender, value: bigint, code: Cell, data: Cell): Promise<void>;
106
+ sendCollectFees(provider: ContractProvider, via: Sender, value: bigint, queryId?: bigint): Promise<void>;
107
+ sendToggleDeployEnable(provider: ContractProvider, via: Sender, value: bigint, queryId?: bigint): Promise<void>;
108
+ sendTopUp(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
109
+ sendDeployCoin(provider: ContractProvider, via: Sender, value: bigint, input: MemelandDeployCoinInput, options: MemelandDeployCoinOptions): Promise<void>;
110
+ getCoinsForTons(provider: ContractProvider, tons: bigint): Promise<{
111
+ fees: bigint;
112
+ coins: bigint;
113
+ }>;
114
+ getFactoryData(provider: ContractProvider): Promise<MemelandFactoryData>;
115
+ }
116
+ export interface MemelandFactoryData {
117
+ readonly admin: Address;
118
+ readonly deploymentFee: bigint;
119
+ readonly coinAdmin: Address;
120
+ readonly coinTtl: number;
121
+ readonly bclSupply: bigint;
122
+ readonly liqSupply: bigint;
123
+ readonly feeAddress: Address;
124
+ readonly feeNumerator: number;
125
+ readonly feeDenominator: number;
126
+ readonly tradingCloseFee: bigint;
127
+ readonly fullPriceTon: bigint;
128
+ readonly fullPriceTonFee: bigint;
129
+ readonly isEnabled: boolean;
130
+ readonly seed: bigint;
131
+ readonly coinCode: Cell;
132
+ readonly walletCode: Cell;
133
+ }
134
+ export interface MemelandBclData {
135
+ readonly totalSupply: bigint;
136
+ readonly bclSupply: bigint;
137
+ readonly liqSupply: bigint;
138
+ readonly admin: Address;
139
+ readonly author: Address;
140
+ readonly content: Cell;
141
+ readonly feeAddress: Address;
142
+ readonly feeNumerator: number;
143
+ readonly feeDenominator: number;
144
+ readonly ttl: number;
145
+ readonly lastTradeDate: number;
146
+ readonly tradingEnabled: boolean;
147
+ readonly tonLiquidityCollected: bigint;
148
+ readonly referral: Cell;
149
+ readonly tradingCloseFee: bigint;
150
+ readonly fullPriceTon: bigint;
151
+ readonly fullPriceTonFee: bigint;
152
+ readonly routerAddress: Address;
153
+ readonly routerPtonWalletAddress: Address;
154
+ }
155
+ export interface MemelandBuyInput {
156
+ readonly tons: bigint;
157
+ readonly minReceive: bigint;
158
+ readonly buyer?: Address;
159
+ readonly referral?: Cell | null;
160
+ readonly queryId?: bigint;
161
+ }
162
+ export declare class MemelandBclJettonMinter extends ContractWrapper {
163
+ static createFromAddress(address: Address): MemelandBclJettonMinter;
164
+ sendBuy(provider: ContractProvider, via: Sender, value: bigint, input: MemelandBuyInput): Promise<void>;
165
+ sendSetAdmin(provider: ContractProvider, via: Sender, value: bigint, admin: Address): Promise<void>;
166
+ sendSetAuthor(provider: ContractProvider, via: Sender, value: bigint, author: Address): Promise<void>;
167
+ sendSetContent(provider: ContractProvider, via: Sender, value: bigint, content: Cell): Promise<void>;
168
+ sendSetFees(provider: ContractProvider, via: Sender, value: bigint, feeAddress: Address, numerator: number, denominator: number): Promise<void>;
169
+ sendSetCode(provider: ContractProvider, via: Sender, value: bigint, code: Cell): Promise<void>;
170
+ sendSetData(provider: ContractProvider, via: Sender, value: bigint, data: Cell): Promise<void>;
171
+ sendSetCodeData(provider: ContractProvider, via: Sender, value: bigint, code: Cell, data: Cell): Promise<void>;
172
+ sendTopUp(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
173
+ sendMint(provider: ContractProvider, via: Sender, value: bigint, input: {
174
+ readonly recipient: Address;
175
+ readonly amount: bigint;
176
+ readonly masterMessage: Cell;
177
+ readonly queryId?: bigint;
178
+ }): Promise<void>;
179
+ sendProvideWalletAddress(provider: ContractProvider, via: Sender, value: bigint, owner: Address, includeOwnerAddress: boolean, queryId?: bigint): Promise<void>;
180
+ sendBurnNotification(provider: ContractProvider, via: Sender, value: bigint, amount: bigint, from: Address, responseAddress: Address, queryId?: bigint): Promise<void>;
181
+ getJettonData(provider: ContractProvider): Promise<{
182
+ totalSupply: bigint;
183
+ mintable: boolean;
184
+ admin: Address | null;
185
+ content: Cell;
186
+ walletCode: Cell;
187
+ }>;
188
+ getWalletAddress(provider: ContractProvider, owner: Address): Promise<Address>;
189
+ getUserWallet(provider: ContractProvider, owner: Address): Promise<MemelandBclJettonWallet>;
190
+ getCoinPrice(provider: ContractProvider): Promise<bigint>;
191
+ getCoinsForTons(provider: ContractProvider, tons: bigint): Promise<{
192
+ fees: bigint;
193
+ coins: bigint;
194
+ }>;
195
+ getTonsForCoins(provider: ContractProvider, coins: bigint): Promise<{
196
+ fees: bigint;
197
+ tons: bigint;
198
+ }>;
199
+ getBclData(provider: ContractProvider): Promise<MemelandBclData>;
200
+ }
201
+ export interface MemelandWalletConfig {
202
+ readonly status: number;
203
+ readonly balance: bigint;
204
+ readonly owner: Address;
205
+ readonly master: Address;
206
+ }
207
+ export declare function buildMemelandWalletData(config: MemelandWalletConfig): Cell;
208
+ export declare class MemelandBclJettonWallet extends ContractWrapper {
209
+ static createFromAddress(address: Address): MemelandBclJettonWallet;
210
+ static createFromConfig(config: MemelandWalletConfig, code: Cell, workchain?: number): MemelandBclJettonWallet;
211
+ sendTransfer(provider: ContractProvider, via: Sender, value: bigint, input: {
212
+ amount: bigint;
213
+ destination: Address;
214
+ responseDestination: Address;
215
+ customPayload?: Cell;
216
+ forwardAmount?: bigint;
217
+ forwardPayload?: Cell;
218
+ queryId?: bigint;
219
+ }): Promise<void>;
220
+ sendBurn(provider: ContractProvider, via: Sender, value: bigint, input: {
221
+ amount: bigint;
222
+ responseDestination: Address;
223
+ customPayload?: Cell;
224
+ queryId?: bigint;
225
+ }): Promise<void>;
226
+ sendSell(provider: ContractProvider, via: Sender, value: bigint, amount: bigint, minReceive: bigint, referral?: Cell | null, queryId?: bigint): Promise<void>;
227
+ sendUnlock(provider: ContractProvider, via: Sender, value: bigint, queryId?: bigint): Promise<void>;
228
+ sendSetStatus(provider: ContractProvider, via: Sender, value: bigint, status: number, queryId?: bigint): Promise<void>;
229
+ getWalletData(provider: ContractProvider): Promise<{
230
+ balance: bigint;
231
+ owner: Address;
232
+ master: Address;
233
+ walletCode: Cell;
234
+ }>;
235
+ getStatus(provider: ContractProvider): Promise<number>;
236
+ }
237
+ export interface MemelandFeeCollectorConfig {
238
+ readonly admin: Address;
239
+ }
240
+ export declare function buildMemelandFeeCollectorData(config: MemelandFeeCollectorConfig): Cell;
241
+ export declare class MemelandFeeCollector extends ContractWrapper {
242
+ static createFromAddress(address: Address): MemelandFeeCollector;
243
+ static createFromConfig(config: MemelandFeeCollectorConfig, code: Cell, workchain?: number): MemelandFeeCollector;
244
+ sendSetAdmin(provider: ContractProvider, via: Sender, value: bigint, admin: Address): Promise<void>;
245
+ sendSetCode(provider: ContractProvider, via: Sender, value: bigint, code: Cell): Promise<void>;
246
+ sendSetData(provider: ContractProvider, via: Sender, value: bigint, data: Cell): Promise<void>;
247
+ sendSetCodeData(provider: ContractProvider, via: Sender, value: bigint, code: Cell, data: Cell): Promise<void>;
248
+ sendFeePayout(provider: ContractProvider, via: Sender, value: bigint, referral: Cell): Promise<void>;
249
+ sendTopUp(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
250
+ }
251
+ export declare function buildMemelandReferralPayout(referral: Cell): Cell;
252
+ //#endregion
253
+ export { MEMELAND_OPCODES };