@sign-global/tokentable 0.0.4 → 0.0.6

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 (125) hide show
  1. package/dist/cjs/airdrop/core/ton/AirdropClientV21.d.ts +29 -0
  2. package/dist/cjs/airdrop/core/ton/AirdropClientV21.js +112 -0
  3. package/dist/cjs/airdrop/core/ton/AirdropClientV21.js.map +1 -0
  4. package/dist/cjs/airdrop/core/ton/AirdropService.d.ts +11 -2
  5. package/dist/cjs/airdrop/core/ton/AirdropService.js +15 -1
  6. package/dist/cjs/airdrop/core/ton/AirdropService.js.map +1 -1
  7. package/dist/cjs/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
  8. package/dist/cjs/airdrop/core/ton/v21/utils/constants.d.ts +44 -0
  9. package/dist/cjs/airdrop/core/ton/v21/utils/constants.js +51 -0
  10. package/dist/cjs/airdrop/core/ton/v21/utils/constants.js.map +1 -0
  11. package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.d.ts +3 -0
  12. package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.js +15 -0
  13. package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.js.map +1 -0
  14. package/dist/cjs/airdrop/core/ton/v21/utils/index.d.ts +3 -0
  15. package/dist/cjs/airdrop/core/ton/v21/utils/index.js +20 -0
  16. package/dist/cjs/airdrop/core/ton/v21/utils/index.js.map +1 -0
  17. package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.d.ts +17 -0
  18. package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.js +87 -0
  19. package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.js.map +1 -0
  20. package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.d.ts +24 -0
  21. package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.js +60 -0
  22. package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.js.map +1 -0
  23. package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.d.ts +66 -0
  24. package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js +255 -0
  25. package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js.map +1 -0
  26. package/dist/cjs/airdrop/core/ton/v21/wrappers/index.d.ts +2 -0
  27. package/dist/cjs/airdrop/core/ton/v21/wrappers/index.js +19 -0
  28. package/dist/cjs/airdrop/core/ton/v21/wrappers/index.js.map +1 -0
  29. package/dist/cjs/airdrop/index.d.ts +10 -12
  30. package/dist/cjs/airdrop/index.js +115 -110
  31. package/dist/cjs/airdrop/index.js.map +1 -1
  32. package/dist/cjs/airdrop/services/index.d.ts +6 -1
  33. package/dist/cjs/airdrop/services/index.js +6 -1
  34. package/dist/cjs/airdrop/services/index.js.map +1 -1
  35. package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.d.ts +13 -0
  36. package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.js +22 -0
  37. package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.js.map +1 -0
  38. package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.d.ts +26 -0
  39. package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.js +79 -0
  40. package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.js.map +1 -0
  41. package/dist/cjs/airdrop/strategies/IAirdropStrategy.d.ts +27 -0
  42. package/dist/cjs/airdrop/strategies/IAirdropStrategy.js +3 -0
  43. package/dist/cjs/airdrop/strategies/IAirdropStrategy.js.map +1 -0
  44. package/dist/cjs/airdrop/strategies/StrategyCache.d.ts +10 -0
  45. package/dist/cjs/airdrop/strategies/StrategyCache.js +32 -0
  46. package/dist/cjs/airdrop/strategies/StrategyCache.js.map +1 -0
  47. package/dist/cjs/airdrop/strategies/TonAirdropStrategy.d.ts +26 -0
  48. package/dist/cjs/airdrop/strategies/TonAirdropStrategy.js +64 -0
  49. package/dist/cjs/airdrop/strategies/TonAirdropStrategy.js.map +1 -0
  50. package/dist/cjs/airdrop/types/index.d.ts +7 -1
  51. package/dist/cjs/airdrop/types/index.js +1 -0
  52. package/dist/cjs/airdrop/types/index.js.map +1 -1
  53. package/dist/esm/airdrop/core/ton/AirdropClientV21.d.ts +29 -0
  54. package/dist/esm/airdrop/core/ton/AirdropClientV21.js +105 -0
  55. package/dist/esm/airdrop/core/ton/AirdropClientV21.js.map +1 -0
  56. package/dist/esm/airdrop/core/ton/AirdropService.d.ts +11 -2
  57. package/dist/esm/airdrop/core/ton/AirdropService.js +15 -1
  58. package/dist/esm/airdrop/core/ton/AirdropService.js.map +1 -1
  59. package/dist/esm/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
  60. package/dist/esm/airdrop/core/ton/v21/utils/constants.d.ts +44 -0
  61. package/dist/esm/airdrop/core/ton/v21/utils/constants.js +48 -0
  62. package/dist/esm/airdrop/core/ton/v21/utils/constants.js.map +1 -0
  63. package/dist/esm/airdrop/core/ton/v21/utils/date.utils.d.ts +3 -0
  64. package/dist/esm/airdrop/core/ton/v21/utils/date.utils.js +10 -0
  65. package/dist/esm/airdrop/core/ton/v21/utils/date.utils.js.map +1 -0
  66. package/dist/esm/airdrop/core/ton/v21/utils/index.d.ts +3 -0
  67. package/dist/esm/airdrop/core/ton/v21/utils/index.js +4 -0
  68. package/dist/esm/airdrop/core/ton/v21/utils/index.js.map +1 -0
  69. package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.d.ts +17 -0
  70. package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.js +69 -0
  71. package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.js.map +1 -0
  72. package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.d.ts +24 -0
  73. package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.js +55 -0
  74. package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.js.map +1 -0
  75. package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.d.ts +66 -0
  76. package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js +249 -0
  77. package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js.map +1 -0
  78. package/dist/esm/airdrop/core/ton/v21/wrappers/index.d.ts +2 -0
  79. package/dist/esm/airdrop/core/ton/v21/wrappers/index.js +3 -0
  80. package/dist/esm/airdrop/core/ton/v21/wrappers/index.js.map +1 -0
  81. package/dist/esm/airdrop/index.d.ts +10 -12
  82. package/dist/esm/airdrop/index.js +117 -112
  83. package/dist/esm/airdrop/index.js.map +1 -1
  84. package/dist/esm/airdrop/services/index.d.ts +6 -1
  85. package/dist/esm/airdrop/services/index.js +4 -0
  86. package/dist/esm/airdrop/services/index.js.map +1 -1
  87. package/dist/esm/airdrop/strategies/AirdropStrategyFactory.d.ts +13 -0
  88. package/dist/esm/airdrop/strategies/AirdropStrategyFactory.js +18 -0
  89. package/dist/esm/airdrop/strategies/AirdropStrategyFactory.js.map +1 -0
  90. package/dist/esm/airdrop/strategies/EvmAirdropStrategy.d.ts +26 -0
  91. package/dist/esm/airdrop/strategies/EvmAirdropStrategy.js +75 -0
  92. package/dist/esm/airdrop/strategies/EvmAirdropStrategy.js.map +1 -0
  93. package/dist/esm/airdrop/strategies/IAirdropStrategy.d.ts +27 -0
  94. package/dist/esm/airdrop/strategies/IAirdropStrategy.js +2 -0
  95. package/dist/esm/airdrop/strategies/IAirdropStrategy.js.map +1 -0
  96. package/dist/esm/airdrop/strategies/StrategyCache.d.ts +10 -0
  97. package/dist/esm/airdrop/strategies/StrategyCache.js +28 -0
  98. package/dist/esm/airdrop/strategies/StrategyCache.js.map +1 -0
  99. package/dist/esm/airdrop/strategies/TonAirdropStrategy.d.ts +26 -0
  100. package/dist/esm/airdrop/strategies/TonAirdropStrategy.js +60 -0
  101. package/dist/esm/airdrop/strategies/TonAirdropStrategy.js.map +1 -0
  102. package/dist/esm/airdrop/types/index.d.ts +7 -1
  103. package/dist/esm/airdrop/types/index.js +1 -0
  104. package/dist/esm/airdrop/types/index.js.map +1 -1
  105. package/package.json +1 -1
  106. package/src/airdrop/core/ton/AirdropClientV21.ts +131 -0
  107. package/src/airdrop/core/ton/AirdropService.ts +18 -1
  108. package/src/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
  109. package/src/airdrop/core/ton/v21/build/MerkleTokenDistributor.compiled.json +1 -0
  110. package/src/airdrop/core/ton/v21/utils/constants.ts +48 -0
  111. package/src/airdrop/core/ton/v21/utils/date.utils.ts +11 -0
  112. package/src/airdrop/core/ton/v21/utils/index.ts +3 -0
  113. package/src/airdrop/core/ton/v21/utils/ton.utils.ts +84 -0
  114. package/src/airdrop/core/ton/v21/wrappers/Leaf.ts +69 -0
  115. package/src/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.ts +346 -0
  116. package/src/airdrop/core/ton/v21/wrappers/index.ts +2 -0
  117. package/src/airdrop/index.ts +140 -139
  118. package/src/airdrop/services/index.ts +6 -1
  119. package/src/airdrop/strategies/AirdropStrategyFactory.ts +29 -0
  120. package/src/airdrop/strategies/EvmAirdropStrategy.ts +85 -0
  121. package/src/airdrop/strategies/IAirdropStrategy.ts +25 -0
  122. package/src/airdrop/strategies/StrategyCache.ts +34 -0
  123. package/src/airdrop/strategies/TonAirdropStrategy.ts +72 -0
  124. package/src/airdrop/tests/index.test.ts +100 -0
  125. package/src/airdrop/types/index.ts +8 -1
@@ -0,0 +1,29 @@
1
+ import { TonContractBaseClient, IAirdropOption } from './TonContractBaseClient';
2
+ import { MerkleTokenDistributor } from './v21/wrappers';
3
+ import { Address } from '@ton/core';
4
+ import { IAirdropClaim } from '../../types';
5
+ export declare class TonAirdropClientV21 extends TonContractBaseClient {
6
+ version: string;
7
+ constructor(option: IAirdropOption);
8
+ getVersion(): Promise<string>;
9
+ getAirdropContract: () => Promise<import("@ton/core").OpenedContract<MerkleTokenDistributor>>;
10
+ getPaused: () => Promise<boolean>;
11
+ getBaseParams(): Promise<{
12
+ startTime: string;
13
+ endTime: string;
14
+ root: string;
15
+ owner: string;
16
+ version: string;
17
+ feelessThreshold: string;
18
+ paused: boolean;
19
+ }>;
20
+ getFeeInfo(): Promise<{
21
+ claimFee: bigint;
22
+ claimFeeReceiver: Address | null;
23
+ }>;
24
+ getFeelessThreshold: () => Promise<bigint>;
25
+ claim: (claimData: IAirdropClaim, options?: {
26
+ onLoading?: () => void;
27
+ }) => Promise<import("tonapi-sdk-js").Event | null>;
28
+ checkClaimed: (claimData: IAirdropClaim) => Promise<boolean>;
29
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TonAirdropClientV21 = void 0;
7
+ const TonContractBaseClient_1 = require("./TonContractBaseClient");
8
+ const wrappers_1 = require("./v21/wrappers");
9
+ const core_1 = require("@ton/core");
10
+ const Leaf_compiled_json_1 = __importDefault(require("./v21/build/Leaf.compiled.json"));
11
+ const utils_1 = require("../../../utils");
12
+ class TonAirdropClientV21 extends TonContractBaseClient_1.TonContractBaseClient {
13
+ version = '21.0.0';
14
+ constructor(option) {
15
+ super(option);
16
+ }
17
+ async getVersion() {
18
+ const airDropContract = await this.getAirdropContract();
19
+ const version = await airDropContract.getVersion();
20
+ this.version = version;
21
+ return version;
22
+ }
23
+ getAirdropContract = async () => {
24
+ const provider = await this.getTonClient();
25
+ const contract = new wrappers_1.MerkleTokenDistributor(core_1.Address.parse(this.address));
26
+ return provider.open(contract);
27
+ };
28
+ getPaused = async () => {
29
+ const airDropContract = await this.getAirdropContract();
30
+ return airDropContract?.getPaused();
31
+ };
32
+ async getBaseParams() {
33
+ const airDropContract = await this.getAirdropContract();
34
+ const [startTime, endTime] = await airDropContract.getTime();
35
+ const root = await airDropContract?.getRoot();
36
+ const adminAddress = await airDropContract?.getAdminAddress();
37
+ const owner = core_1.Address.parse(adminAddress?.toString()).toString({ bounceable: false });
38
+ const version = this.version || (await airDropContract.getVersion());
39
+ const feelessThreshold = await airDropContract?.getFeelessThreshold();
40
+ const paused = await airDropContract?.getPaused();
41
+ return {
42
+ startTime: startTime ? String(startTime?.valueOf() / 1000) : '',
43
+ endTime: endTime ? String(endTime?.valueOf() / 1000) : '',
44
+ root: root?.toString(),
45
+ owner: owner,
46
+ version,
47
+ feelessThreshold: (0, core_1.fromNano)(feelessThreshold),
48
+ paused
49
+ };
50
+ }
51
+ async getFeeInfo() {
52
+ const airDropContract = await this.getAirdropContract();
53
+ const claimFee = await airDropContract.getClaimFee();
54
+ const claimFeeReceiver = await airDropContract.getClaimFeeAddress();
55
+ return {
56
+ claimFee,
57
+ claimFeeReceiver
58
+ };
59
+ }
60
+ getFeelessThreshold = async () => {
61
+ const airDropContract = await this.getAirdropContract();
62
+ return airDropContract?.getFeelessThreshold();
63
+ };
64
+ claim = async (claimData, options) => {
65
+ const provider = await this.getTonClient();
66
+ const airdropContract = await this.getAirdropContract();
67
+ const index = BigInt(claimData.index);
68
+ const claimFee = await airdropContract.getClaimFee();
69
+ const proof = core_1.Cell.fromBase64(claimData.proofBoc);
70
+ const leafCode = core_1.Cell.fromBoc(Buffer.from(Leaf_compiled_json_1.default.hex, 'hex'))[0];
71
+ const leaf = provider.open(wrappers_1.Leaf.createFromConfig({
72
+ distributor: airdropContract.address,
73
+ index
74
+ }, leafCode));
75
+ leaf.sendClaim(this.connection.senderDeploy, proof, index, claimFee);
76
+ const res = await this.waitForTransaction(options?.onLoading);
77
+ // while (!(await provider.isContractDeployed(leafAddress))) {
78
+ // console.log('waiting for leaf to deploy');
79
+ // await new Promise((resolve) => setTimeout(resolve, 1000));
80
+ // }
81
+ // // const res = await this.waitForTransactionForLegacy();
82
+ if (res) {
83
+ console.log(res, res.event_id, 'res');
84
+ }
85
+ return res;
86
+ };
87
+ checkClaimed = async (claimData) => {
88
+ try {
89
+ if ((0, utils_1.isBeforeByUnix)(claimData.unlockingAt))
90
+ return false;
91
+ const provider = await this.getTonClient();
92
+ const airdropContract = await this.getAirdropContract();
93
+ const index = BigInt(claimData.index);
94
+ const leafAddress = await airdropContract.getLeafAddress(index);
95
+ const isDeployed = await provider.isContractDeployed(leafAddress);
96
+ console.log(index, leafAddress.toString(), isDeployed, 'index');
97
+ if (!isDeployed)
98
+ return false;
99
+ const leaf = new wrappers_1.Leaf(leafAddress);
100
+ const leafContract = provider.open(leaf);
101
+ const isUsed = await leafContract?.getIsUsed();
102
+ console.log(isUsed, leafAddress.toString(), 'use');
103
+ return isUsed;
104
+ }
105
+ catch (e) {
106
+ console.log(e, 'check claim err');
107
+ return false;
108
+ }
109
+ };
110
+ }
111
+ exports.TonAirdropClientV21 = TonAirdropClientV21;
112
+ //# sourceMappingURL=AirdropClientV21.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AirdropClientV21.js","sourceRoot":"","sources":["../../../../../src/airdrop/core/ton/AirdropClientV21.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,10 @@ export declare class AirdropService {
10
10
  private get airdropClientV1();
11
11
  private get airdropClientV2();
12
12
  private get airdropClientV3();
13
+ private get airdropClientV21();
13
14
  getVersion(): Promise<string>;
14
15
  private getClient;
15
- getAirdropContract(): Promise<import("@ton/core").OpenedContract<import("./v1/wrappers").MerkleTokenDistributor> | import("@ton/core").OpenedContract<import("./v3/wrappers").MerkleTokenDistributor>>;
16
+ getAirdropContract(): Promise<import("@ton/core").OpenedContract<import("./v1/wrappers").MerkleTokenDistributor> | import("@ton/core").OpenedContract<import("./v3/wrappers").MerkleTokenDistributor> | import("@ton/core").OpenedContract<import("./v21/wrappers").MerkleTokenDistributor>>;
16
17
  claim(claimData: IAirdropClaim, options?: {
17
18
  onLoading?: () => void;
18
19
  }): Promise<import("tonapi-sdk-js").Event | null>;
@@ -31,11 +32,19 @@ export declare class AirdropService {
31
32
  root: string;
32
33
  owner: string;
33
34
  version: string;
35
+ } | {
36
+ startTime: string;
37
+ endTime: string;
38
+ root: string;
39
+ owner: string;
40
+ version: string;
41
+ feelessThreshold: string;
42
+ paused: boolean;
34
43
  }>;
35
44
  getPaused(): Promise<boolean>;
36
45
  getClaimFeeInfo(): Promise<{
37
46
  claimFee: string;
38
- claimFeeReceiver: string;
47
+ claimFeeReceiver: string | undefined;
39
48
  }>;
40
49
  getClaimFee(address: string, amount: bigint): Promise<string>;
41
50
  }
@@ -6,6 +6,7 @@ const AirdropClientV2_1 = require("./AirdropClientV2");
6
6
  const types_1 = require("../../types");
7
7
  const AirdropClientV3_1 = require("./AirdropClientV3");
8
8
  const core_1 = require("@ton/core");
9
+ const AirdropClientV21_1 = require("./AirdropClientV21");
9
10
  class AirdropService {
10
11
  address;
11
12
  walletClient;
@@ -50,6 +51,16 @@ class AirdropService {
50
51
  walletClient: this.walletClient
51
52
  });
52
53
  }
54
+ get airdropClientV21() {
55
+ if (!this?.address) {
56
+ throw new Error('Contract address is empty');
57
+ }
58
+ return new AirdropClientV21_1.TonAirdropClientV21({
59
+ chainId: this.chainId,
60
+ address: this.address,
61
+ walletClient: this.walletClient
62
+ });
63
+ }
53
64
  async getVersion() {
54
65
  if (this.cachedVersion !== null) {
55
66
  return this.cachedVersion;
@@ -59,6 +70,9 @@ class AirdropService {
59
70
  }
60
71
  async getClient() {
61
72
  const version = await this.getVersion();
73
+ if (version === types_1.TonAirdropVersionEnum.NativeV1) {
74
+ return this.airdropClientV21;
75
+ }
62
76
  if (version === types_1.TonAirdropVersionEnum.LiteV1) {
63
77
  return this.airdropClientV3;
64
78
  }
@@ -94,7 +108,7 @@ class AirdropService {
94
108
  const feeInfo = await client.getFeeInfo();
95
109
  return {
96
110
  claimFee: (0, core_1.fromNano)(feeInfo.claimFee),
97
- claimFeeReceiver: feeInfo.claimFeeReceiver.toString({ bounceable: false })
111
+ claimFeeReceiver: feeInfo.claimFeeReceiver?.toString({ bounceable: false })
98
112
  };
99
113
  }
100
114
  async getClaimFee(address, amount) {
@@ -1 +1 @@
1
- {"version":3,"file":"AirdropService.js","sourceRoot":"","sources":["../../../../../src/airdrop/core/ton/AirdropService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AirdropService.js","sourceRoot":"","sources":["../../../../../src/airdrop/core/ton/AirdropService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ { "hex": "b5ee9c7241022a01000887000114ff00f4a413f4bcf2c80b01020162050202015804030025bbc01f057f844f842c8cb00f843cf16cb3fc98000dbaf13f057f84280202c918060201480c0702012009080019d8164658000e78b659fe4f6aa40201200b0a0025f76a268698000fc317d2000fc31e99f987c32400276be401c1cb232c072c004b2c1f2fff2743e900c20103a3c00d04f62082300de0b6b3a7640000ba9b30823025b946ebc0b36173e08200c354218235c702bd3a30fc0000be228238070c1cc73b00c80000bbb0f2f420c1008e1282300de0b6b3a76400005202a3f04712a984e020821b782dace9d9aa18bee30f01a7648238056bc75e2d6310000021822056bc75e2d631aa18bee300211716150e02f4822056bc75e2d631aa17be8e2701822056bc75e2d631aa17a101824adf0ab5a80a22c61ab5a7008238056bc75e2d63100000a984de21822056bc75e2d631aa16be8e2601822056bc75e2d631aa16a10182403f1fce3da636ea5cf8508238056bc75e2d63100000a984de21823815af1d78b58c400000bee30021140f02f482380ad78ebc5ac6200000be8e260182380ad78ebc5ac6200000a1018238280e60114edb805d038238056bc75e2d63100000a984de218238056bc75e2d63100000be8e26018238056bc75e2d63100000a10182380ebc5fb417461211108238056bc75e2d63100000a984de218232b5e3af16b1880000bee30021131001ec82315af1d78b58c40000be8e250182315af1d78b58c40000a101823806f5f17757889379378238056bc75e2d63100000a984de218238056bc75e2d6310000021a0511382380ad78ebc5ac6200000a98466a0511382381043561a8829300000a98466a05113823815af1d78b58c400000a98466a051131101ea82381b1ae4d6e2ef500000a98466a0511382382086ac351052600000a98466a05113823825f273933db5700000a98466a05113822056bc75e2d631aa16a98466a05113823830ca024f987b900000a98466a0511382383635c9adc5dea00000a98466a0511382383ba1910bf341b00000a98466a0031200428238410d586a20a4c00000a98412a08238056bc75e2d63100000a984018064a984004a018232b5e3af16b1880000a101823808f00f760a4b2db55d8238056bc75e2d63100000a984004c01823815af1d78b58c400000a101823927fa27722cc06cc5e28238056bc75e2d63100000a984003830822056bc75e2d631aa18a18261855144814a7ff805980ff0084000005020821b782dace9d9aa17be8e18821b782dace9d9aa17a182501425982cf597cd205cef73809171e20042821b782dace9d9aa18a18288195e54c5dd42177f53a27172fa9ec630262827aa2302012024190103aee01a01f62082300de0b6b3a7640000b98e1182300de0b6b3a76400005202a984f03ba3e0702182b05803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880faa35be8e23308288195e54c5dd42177f53a27172fa9ec630262827aa23a904821b782dace9d9aa18de2182708bcc0026baae9e45e470190267a230cfaa18be1b02ea8e1c0182501425982cf597cd205cef7380a90401821b782dace9d9aa17a0dea76401a764208261855144814a7ff805980ff0084000be8e2a8238056bc75e2d631000008261855144814a7ff805980ff0084000a98401822056bc75e2d631aa18a001de20824adf0ab5a80a22c61ab5a700bee30020231c02f882403f1fce3da636ea5cf850be8e268238056bc75e2d6310000082403f1fce3da636ea5cf850a98401822056bc75e2d631aa16a001de20823927fa27722cc06cc5e2be8e268238056bc75e2d63100000823927fa27722cc06cc5e2a98401823815af1d78b58c400000a001de208238280e60114edb805d03bee30020221d02f482380ebc5fb41746121110be8e268238056bc75e2d6310000082380ebc5fb41746121110a984018238056bc75e2d63100000a001de20823808f00f760a4b2db55dbe8e258238056bc75e2d63100000823808f00f760a4b2db55da984018232b5e3af16b1880000a001de20823806f5f1775788937937bee30020211e01ec823806248f33704b286603be8e258238056bc75e2d63100000823806248f33704b286603a984018230ad78ebc5ac620000a001de20823805c548670b9510e7acbe8e258238056bc75e2d63100000823805c548670b9510e7aca98401823056bc75e2d6310000a001de208238056bc75e2d63100000a11f01fe8238056bc75e2d631000005122a012a98453008238056bc75e2d63100000a9845c8238056bc75e2d63100000a9842073a90413a051218238056bc75e2d63100000a9842075a90413a051218238056bc75e2d63100000a9842077a90413a051218238056bc75e2d63100000a9842079a90413a0598238056bc75e2d6310000020001ca984800ba904a0aa00a08064a904004a8238056bc75e2d63100000823806f5f1775788937937a9840182315af1d78b58c40000a001004c8238056bc75e2d631000008238280e60114edb805d03a9840182380ad78ebc5ac6200000a001004e8238056bc75e2d63100000824adf0ab5a80a22c61ab5a700a98401822056bc75e2d631aa17a00102012026250063a46410e0804c45896c678b00d180ef381038c70a023d5486531812d40950025503815210e0002298731819d5016780e4e84001d7d0c8871c02497c0f83434c0c05c6c2497c0f83e900c0074c7f4cfc8a08426871dda6ea38d8d16fc15fe10f1c17ca8f4cff4c03e1104eebcabdc3e10fe113c163000244c383e900c1c20043232c15633c5887e80b2dab260103ec03800a084140f4725eeb8c097c12103fcbc22702fcf057038210042c1d80bef2b0f842c001f268d4d33f30f864885210f90001f900baf26420d739f2aad30701c003f2ab21d765aa00a6025220f9415f03f84401d4308040f40e6fa131f2ad71f843f844f058f842f8448210d0d5f405c8cb1f15cb3f12cc13cb3f12cb0001cf16c9718010c8cb05f843cf1670fa02cb6accc9292800088306fb0000006e3bece9" }
@@ -0,0 +1,44 @@
1
+ export declare enum OpCode {
2
+ ChangeAdmin = 1178663965,// 0x4641444d
3
+ ChangeCode = 1476445391,// 0x57f8f8f
4
+ ChangePaused = 2809239666,// 0xa7a7a7a2
5
+ ChangeVersion = 1564829953,// 0x5d5d5d61
6
+ ClearClaimFeeAddress = 301656968,// 0x1201208
7
+ DeployLeaf = 2334832459,// 0x8b8b8b8b
8
+ Withdraw = 1944962002,// 0x73737372
9
+ WithdrawTokens = 2709472225,// 0xa1a1a1a1
10
+ WithdrawFees = 4190525652,// 0xf9f9f9f4
11
+ Claim = 1346182295,// 0x50505057
12
+ ProcessClaim = 3503682565,// 0xd0d5f405
13
+ SetBaseParams = 3295019176,// 0xc4c4c4c8
14
+ SetClaimFee = 203956118,// 0xc2c2c2c6
15
+ SetClaimFeeAddress = 271928301,// 0x103103d
16
+ SetPaused = 651583401,// 0x27272729
17
+ SetFeelessThreshold = 2043579621
18
+ }
19
+ export declare enum CodeType {
20
+ Leaf = 4027247955,// 0xf0f0f0f3
21
+ TokenDistributor = 3451179831
22
+ }
23
+ export declare enum ErrorCode {
24
+ UnknownOP = 65535,// 65535
25
+ ExpiredMessage = 32,// 32
26
+ RepeatedMessage = 33,// 33
27
+ InvalidSignature = 34,// 34
28
+ Unauthorized = 35,// 35
29
+ InvalidMessageParams = 36,// 36
30
+ UnsupportedOperation = 37,// 37
31
+ TimeInactive = 38,// 38
32
+ InvalidProof = 39,// 39
33
+ LeafUsed = 40,// 40
34
+ IncorrectFees = 41,// 41
35
+ IsProofExotic = 42,// 42
36
+ TreeExceeded = 43,// 43
37
+ InvalidTree = 44,// 44
38
+ NotFound = 45,// 45
39
+ WrongSender = 46,// 46
40
+ InvalidIndex = 47,// 47
41
+ NotEnoughTokens = 48,// 48
42
+ ContractPaused = 49
43
+ }
44
+ export declare const DICT_CELL_BASE64 = "te6cckEBBQEAagACA8/YAgEAVdQAOTo5SskfgLMwcypLhB+yLkHhU0qZ/jjQzsVCYiSLoEFAjw0YBf7mYAgCASADAwIBIAQEAFUgAcnRylZI/AWZg5lSXCD9kXIPCppUz/HGhnYqExEkXQIKBHhowC/3MwBAtoUrSg==";
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DICT_CELL_BASE64 = exports.ErrorCode = exports.CodeType = exports.OpCode = void 0;
4
+ var OpCode;
5
+ (function (OpCode) {
6
+ OpCode[OpCode["ChangeAdmin"] = 1178663965] = "ChangeAdmin";
7
+ OpCode[OpCode["ChangeCode"] = 1476445391] = "ChangeCode";
8
+ OpCode[OpCode["ChangePaused"] = 2809239666] = "ChangePaused";
9
+ OpCode[OpCode["ChangeVersion"] = 1564829953] = "ChangeVersion";
10
+ OpCode[OpCode["ClearClaimFeeAddress"] = 301656968] = "ClearClaimFeeAddress";
11
+ OpCode[OpCode["DeployLeaf"] = 2334832459] = "DeployLeaf";
12
+ OpCode[OpCode["Withdraw"] = 1944962002] = "Withdraw";
13
+ OpCode[OpCode["WithdrawTokens"] = 2709472225] = "WithdrawTokens";
14
+ OpCode[OpCode["WithdrawFees"] = 4190525652] = "WithdrawFees";
15
+ OpCode[OpCode["Claim"] = 1346182295] = "Claim";
16
+ OpCode[OpCode["ProcessClaim"] = 3503682565] = "ProcessClaim";
17
+ OpCode[OpCode["SetBaseParams"] = 3295019176] = "SetBaseParams";
18
+ OpCode[OpCode["SetClaimFee"] = 203956118] = "SetClaimFee";
19
+ OpCode[OpCode["SetClaimFeeAddress"] = 271928301] = "SetClaimFeeAddress";
20
+ OpCode[OpCode["SetPaused"] = 651583401] = "SetPaused";
21
+ OpCode[OpCode["SetFeelessThreshold"] = 2043579621] = "SetFeelessThreshold"; // 0x79CE8CE5
22
+ })(OpCode || (exports.OpCode = OpCode = {}));
23
+ var CodeType;
24
+ (function (CodeType) {
25
+ CodeType[CodeType["Leaf"] = 4027247955] = "Leaf";
26
+ CodeType[CodeType["TokenDistributor"] = 3451179831] = "TokenDistributor"; // 0xcececece
27
+ })(CodeType || (exports.CodeType = CodeType = {}));
28
+ var ErrorCode;
29
+ (function (ErrorCode) {
30
+ ErrorCode[ErrorCode["UnknownOP"] = 65535] = "UnknownOP";
31
+ ErrorCode[ErrorCode["ExpiredMessage"] = 32] = "ExpiredMessage";
32
+ ErrorCode[ErrorCode["RepeatedMessage"] = 33] = "RepeatedMessage";
33
+ ErrorCode[ErrorCode["InvalidSignature"] = 34] = "InvalidSignature";
34
+ ErrorCode[ErrorCode["Unauthorized"] = 35] = "Unauthorized";
35
+ ErrorCode[ErrorCode["InvalidMessageParams"] = 36] = "InvalidMessageParams";
36
+ ErrorCode[ErrorCode["UnsupportedOperation"] = 37] = "UnsupportedOperation";
37
+ ErrorCode[ErrorCode["TimeInactive"] = 38] = "TimeInactive";
38
+ ErrorCode[ErrorCode["InvalidProof"] = 39] = "InvalidProof";
39
+ ErrorCode[ErrorCode["LeafUsed"] = 40] = "LeafUsed";
40
+ ErrorCode[ErrorCode["IncorrectFees"] = 41] = "IncorrectFees";
41
+ ErrorCode[ErrorCode["IsProofExotic"] = 42] = "IsProofExotic";
42
+ ErrorCode[ErrorCode["TreeExceeded"] = 43] = "TreeExceeded";
43
+ ErrorCode[ErrorCode["InvalidTree"] = 44] = "InvalidTree";
44
+ ErrorCode[ErrorCode["NotFound"] = 45] = "NotFound";
45
+ ErrorCode[ErrorCode["WrongSender"] = 46] = "WrongSender";
46
+ ErrorCode[ErrorCode["InvalidIndex"] = 47] = "InvalidIndex";
47
+ ErrorCode[ErrorCode["NotEnoughTokens"] = 48] = "NotEnoughTokens";
48
+ ErrorCode[ErrorCode["ContractPaused"] = 49] = "ContractPaused"; // 49
49
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
50
+ exports.DICT_CELL_BASE64 = 'te6cckEBBQEAagACA8/YAgEAVdQAOTo5SskfgLMwcypLhB+yLkHhU0qZ/jjQzsVCYiSLoEFAjw0YBf7mYAgCASADAwIBIAQEAFUgAcnRylZI/AWZg5lSXCD9kXIPCppUz/HGhnYqExEkXQIKBHhowC/3MwBAtoUrSg==';
51
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/ton/v21/utils/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAiBX;AAjBD,WAAY,MAAM;IAChB,0DAAwB,CAAA;IACxB,wDAAuB,CAAA;IACvB,4DAAyB,CAAA;IACzB,8DAA0B,CAAA;IAC1B,2EAAgC,CAAA;IAChC,wDAAuB,CAAA;IACvB,oDAAqB,CAAA;IACrB,gEAA2B,CAAA;IAC3B,4DAAyB,CAAA;IACzB,8CAAkB,CAAA;IAClB,4DAAyB,CAAA;IACzB,8DAA0B,CAAA;IAC1B,yDAAuB,CAAA;IACvB,uEAA8B,CAAA;IAC9B,qDAAqB,CAAA;IACrB,0EAAgC,CAAA,CAAC,aAAa;AAChD,CAAC,EAjBW,MAAM,sBAAN,MAAM,QAiBjB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,gDAAiB,CAAA;IACjB,wEAA6B,CAAA,CAAC,aAAa;AAC7C,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,SAoBX;AApBD,WAAY,SAAS;IACnB,uDAAkB,CAAA;IAClB,8DAAqB,CAAA;IACrB,gEAAsB,CAAA;IACtB,kEAAuB,CAAA;IACvB,0DAAmB,CAAA;IACnB,0EAA2B,CAAA;IAC3B,0EAA2B,CAAA;IAC3B,0DAAmB,CAAA;IACnB,0DAAmB,CAAA;IACnB,kDAAe,CAAA;IACf,4DAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,0DAAmB,CAAA;IACnB,wDAAkB,CAAA;IAClB,kDAAe,CAAA;IACf,wDAAkB,CAAA;IAClB,0DAAmB,CAAA;IACnB,gEAAsB,CAAA;IACtB,8DAAqB,CAAA,CAAC,KAAK;AAC7B,CAAC,EApBW,SAAS,yBAAT,SAAS,QAoBpB;AAEY,QAAA,gBAAgB,GAC3B,sKAAsK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function dateToUnixTimestamp(date: Date): number;
2
+ export declare function unixTimestampToDate(timestamp: number): Date;
3
+ export declare function addOneHour(date: Date): Date;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dateToUnixTimestamp = dateToUnixTimestamp;
4
+ exports.unixTimestampToDate = unixTimestampToDate;
5
+ exports.addOneHour = addOneHour;
6
+ function dateToUnixTimestamp(date) {
7
+ return Math.floor(date.getTime() / 1000);
8
+ }
9
+ function unixTimestampToDate(timestamp) {
10
+ return new Date(timestamp * 1000);
11
+ }
12
+ function addOneHour(date) {
13
+ return new Date(date.getTime() + 60 * 60 * 1000);
14
+ }
15
+ //# sourceMappingURL=date.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.utils.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/ton/v21/utils/date.utils.ts"],"names":[],"mappings":";;AAAA,kDAEC;AAED,kDAEC;AAED,gCAEC;AAVD,SAAgB,mBAAmB,CAAC,IAAU;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './date.utils';
3
+ export * from './ton.utils';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./date.utils"), exports);
19
+ __exportStar(require("./ton.utils"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/ton/v21/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B;AAC7B,8CAA4B"}
@@ -0,0 +1,17 @@
1
+ import { Address, BitString, Cell, Slice } from '@ton/core';
2
+ export declare function stringToSlice(str: string): Slice;
3
+ export declare function sliceToString(slice: Slice): string;
4
+ export declare function stringToInt(str: string): number;
5
+ export declare function intToString(int: number): string;
6
+ export declare function bufferToInt(buf: Buffer): number;
7
+ export declare function intToBuffer(int: number): Buffer;
8
+ export declare function sliceToAddress(slice: Slice): Address;
9
+ export declare function addressToSlice(address: Address): Slice;
10
+ export declare function stringToBitString(str: string): BitString;
11
+ export declare function bitStringToString(bits: BitString, len: number): string;
12
+ export declare function stringToCell(str: string): Cell;
13
+ export declare function cellToString(cell: Cell): string;
14
+ export declare function stringToCrc32(str: string): number;
15
+ export declare function getContractAddress(code: Cell, data: Cell): Address;
16
+ export declare function arraysToCell(arrays: (Slice | Cell | Address | number)[], bits?: number): Cell;
17
+ export declare function coinsToSlice(coins: string): Slice;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringToSlice = stringToSlice;
4
+ exports.sliceToString = sliceToString;
5
+ exports.stringToInt = stringToInt;
6
+ exports.intToString = intToString;
7
+ exports.bufferToInt = bufferToInt;
8
+ exports.intToBuffer = intToBuffer;
9
+ exports.sliceToAddress = sliceToAddress;
10
+ exports.addressToSlice = addressToSlice;
11
+ exports.stringToBitString = stringToBitString;
12
+ exports.bitStringToString = bitStringToString;
13
+ exports.stringToCell = stringToCell;
14
+ exports.cellToString = cellToString;
15
+ exports.stringToCrc32 = stringToCrc32;
16
+ exports.getContractAddress = getContractAddress;
17
+ exports.arraysToCell = arraysToCell;
18
+ exports.coinsToSlice = coinsToSlice;
19
+ const core_1 = require("@ton/core");
20
+ function stringToSlice(str) {
21
+ return (0, core_1.beginCell)().storeStringTail(str).endCell().asSlice();
22
+ }
23
+ function sliceToString(slice) {
24
+ const cell = (0, core_1.beginCell)().storeSlice(slice).endCell();
25
+ return cell.beginParse().loadStringTail();
26
+ }
27
+ function stringToInt(str) {
28
+ return str ? parseInt(Buffer.from(str).toString('hex'), 16) : 0;
29
+ }
30
+ function intToString(int) {
31
+ return Buffer.from(int.toString(16), 'hex').toString('utf-8');
32
+ }
33
+ function bufferToInt(buf) {
34
+ return buf.readUInt32BE(0);
35
+ }
36
+ function intToBuffer(int) {
37
+ return Buffer.from(int.toString(16), 'hex');
38
+ }
39
+ function sliceToAddress(slice) {
40
+ const cell = (0, core_1.beginCell)().storeSlice(slice).endCell();
41
+ return cell.beginParse().loadAddress();
42
+ }
43
+ function addressToSlice(address) {
44
+ return (0, core_1.beginCell)().storeAddress(address).endCell().asSlice();
45
+ }
46
+ function stringToBitString(str) {
47
+ return new core_1.BitString(Buffer.from(str), 0, str.length * 8);
48
+ }
49
+ function bitStringToString(bits, len) {
50
+ const decoder = new TextDecoder();
51
+ const subBuffer = bits.subbuffer(0, len);
52
+ return subBuffer ? decoder.decode(subBuffer) : '';
53
+ }
54
+ function stringToCell(str) {
55
+ return (0, core_1.beginCell)().storeStringTail(str).endCell();
56
+ }
57
+ function cellToString(cell) {
58
+ return cell.beginParse().loadStringTail();
59
+ }
60
+ function stringToCrc32(str) {
61
+ return (0, core_1.crc32c)(Buffer.from(str)).readUint32BE();
62
+ }
63
+ function getContractAddress(code, data) {
64
+ return (0, core_1.contractAddress)(0, { code, data });
65
+ }
66
+ function arraysToCell(arrays, bits = 32) {
67
+ const cell = (0, core_1.beginCell)();
68
+ arrays.forEach((item) => {
69
+ if (item instanceof core_1.Slice) {
70
+ cell.storeSlice(item);
71
+ }
72
+ else if (item instanceof core_1.Cell) {
73
+ cell.storeRef(item);
74
+ }
75
+ else if (item instanceof core_1.Address) {
76
+ cell.storeAddress(item);
77
+ }
78
+ else if (typeof item === 'number') {
79
+ cell.storeUint(item, bits);
80
+ }
81
+ });
82
+ return cell.endCell();
83
+ }
84
+ function coinsToSlice(coins) {
85
+ return (0, core_1.beginCell)().storeCoins((0, core_1.toNano)(coins)).endCell().asSlice();
86
+ }
87
+ //# sourceMappingURL=ton.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton.utils.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/ton/v21/utils/ton.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ export declare const MIN_CLAIM_FEE: bigint;
3
+ export type LeafConfig = {
4
+ used?: boolean;
5
+ distributor: Address;
6
+ index: bigint;
7
+ };
8
+ export declare function leafConfigToCell(config: LeafConfig): Cell;
9
+ export declare class Leaf implements Contract {
10
+ readonly address: Address;
11
+ readonly init?: {
12
+ code: Cell;
13
+ data: Cell;
14
+ } | undefined;
15
+ constructor(address: Address, init?: {
16
+ code: Cell;
17
+ data: Cell;
18
+ } | undefined);
19
+ static createFromAddress(address: Address): Leaf;
20
+ static createFromConfig(config: LeafConfig, code: Cell, workchain?: number): Leaf;
21
+ getIsUsed(provider: ContractProvider): Promise<boolean>;
22
+ getLeafData(provider: ContractProvider): Promise<LeafConfig>;
23
+ sendClaim(provider: ContractProvider, via: Sender, proof: Cell, index: bigint, claimFee: bigint): Promise<void>;
24
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Leaf = exports.MIN_CLAIM_FEE = void 0;
4
+ exports.leafConfigToCell = leafConfigToCell;
5
+ const core_1 = require("@ton/core");
6
+ const utils_1 = require("../utils");
7
+ exports.MIN_CLAIM_FEE = (0, core_1.toNano)('0.17');
8
+ function leafConfigToCell(config) {
9
+ const { distributor, index } = config;
10
+ const initState = (0, core_1.beginCell)().storeBit(false).storeAddress(distributor).storeUint(index, 64).endCell();
11
+ return initState;
12
+ }
13
+ class Leaf {
14
+ address;
15
+ init;
16
+ constructor(address, init) {
17
+ this.address = address;
18
+ this.init = init;
19
+ }
20
+ static createFromAddress(address) {
21
+ return new Leaf(address);
22
+ }
23
+ static createFromConfig(config, code, workchain = 0) {
24
+ const data = leafConfigToCell(config);
25
+ const init = { code, data };
26
+ return new Leaf((0, core_1.contractAddress)(workchain, init), init);
27
+ }
28
+ async getIsUsed(provider) {
29
+ const result = await provider.get('get_is_used', []);
30
+ const isUsed = result.stack.readNumber();
31
+ return !!isUsed;
32
+ }
33
+ async getLeafData(provider) {
34
+ const result = await provider.get('get_leaf_data', []);
35
+ const cellHash = result.stack.readCell().beginParse();
36
+ const isUsed = cellHash.loadUint(1);
37
+ const distributor = cellHash.loadAddress();
38
+ const index = cellHash.loadUint(64);
39
+ return {
40
+ used: !!isUsed,
41
+ index: BigInt(index),
42
+ distributor
43
+ };
44
+ }
45
+ async sendClaim(provider, via, proof, index, claimFee) {
46
+ const messageBody = (0, core_1.beginCell)()
47
+ .storeUint(utils_1.OpCode.Claim, 32)
48
+ .storeUint(0, 64)
49
+ .storeRef(proof)
50
+ .storeUint(index, 64)
51
+ .endCell();
52
+ const result = await provider.internal(via, {
53
+ value: exports.MIN_CLAIM_FEE + claimFee,
54
+ body: messageBody
55
+ });
56
+ return result;
57
+ }
58
+ }
59
+ exports.Leaf = Leaf;
60
+ //# sourceMappingURL=Leaf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Leaf.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/ton/v21/wrappers/Leaf.ts"],"names":[],"mappings":";;;AAWA,4CAMC;AAjBD,oCAAkH;AAClH,oCAAkC;AAErB,QAAA,aAAa,GAAG,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;AAQ5C,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAEtC,MAAM,SAAS,GAAG,IAAA,gBAAS,GAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAEvG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAa,IAAI;IACM;IAA2B;IAAhD,YAAqB,OAAgB,EAAW,IAAiC;QAA5D,YAAO,GAAP,OAAO,CAAS;QAAW,SAAI,GAAJ,IAAI,CAA6B;IAAG,CAAC;IAErF,MAAM,CAAC,iBAAiB,CAAC,OAAgB;QACvC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAkB,EAAE,IAAU,EAAE,SAAS,GAAG,CAAC;QACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,IAAI,CAAC,IAAA,sBAAe,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAA0B;QACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAEzC,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,MAAM;YACd,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAA0B,EAAE,GAAW,EAAE,KAAW,EAAE,KAAa,EAAE,QAAgB;QACnG,MAAM,WAAW,GAAG,IAAA,gBAAS,GAAE;aAC5B,SAAS,CAAC,cAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC3B,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;aAChB,QAAQ,CAAC,KAAK,CAAC;aACf,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;aACpB,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC1C,KAAK,EAAE,qBAAa,GAAG,QAAQ;YAC/B,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjDD,oBAiDC"}