@sign-global/tokentable 0.4.2-beta.2 → 0.4.2-beta.4
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.
- package/dist/cjs/airdrop/common/index.d.ts +1 -1
- package/dist/cjs/airdrop/constants/chain-config.d.ts +1 -1
- package/dist/cjs/airdrop/constants/chain-config.js +1 -1
- package/dist/cjs/airdrop/constants/chain-config.js.map +1 -1
- package/dist/esm/airdrop/common/index.d.ts +1 -1
- package/dist/esm/airdrop/constants/chain-config.d.ts +1 -1
- package/dist/esm/airdrop/constants/chain-config.js +1 -1
- package/dist/esm/airdrop/constants/chain-config.js.map +1 -1
- package/package.json +2 -9
- package/src/airdrop/AirdropClient.ts +0 -307
- package/src/airdrop/SignatureAirdropClient.ts +0 -378
- package/src/airdrop/common/index.ts +0 -54
- package/src/airdrop/common/projectDataForTon.ts +0 -79
- package/src/airdrop/constants/chain-config.ts +0 -107
- package/src/airdrop/constants/index.ts +0 -9
- package/src/airdrop/constants/network.ts +0 -78
- package/src/airdrop/contracts/evm/AirdropService.ts +0 -181
- package/src/airdrop/contracts/evm/SignatureAirdropService.ts +0 -114
- package/src/airdrop/contracts/evm/contracts/AirdropSignatureClient.ts +0 -63
- package/src/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.ts +0 -61
- package/src/airdrop/contracts/evm/contracts/AirdropV2Client.ts +0 -37
- package/src/airdrop/contracts/evm/contracts/AirdropV3Client.ts +0 -49
- package/src/airdrop/contracts/evm/contracts/AirdropV3FeeClient.ts +0 -16
- package/src/airdrop/contracts/evm/contracts/AirdropV4Client.ts +0 -36
- package/src/airdrop/contracts/evm/contracts/ContractBaseClient.ts +0 -85
- package/src/airdrop/contracts/evm/contracts/DeployClient.ts +0 -35
- package/src/airdrop/contracts/evm/contracts/FeeCollectorClient.ts +0 -21
- package/src/airdrop/contracts/evm/contracts/KycClient.ts +0 -21
- package/src/airdrop/contracts/evm/contracts/abis/Airdrop.json +0 -674
- package/src/airdrop/contracts/evm/contracts/abis/AirdropV2.json +0 -676
- package/src/airdrop/contracts/evm/contracts/abis/AirdropV3.json +0 -740
- package/src/airdrop/contracts/evm/contracts/abis/AirdropV3_Fee.json +0 -678
- package/src/airdrop/contracts/evm/contracts/abis/CustomFeeNativeAirdropV4.json +0 -701
- package/src/airdrop/contracts/evm/contracts/abis/Deployer.json +0 -271
- package/src/airdrop/contracts/evm/contracts/abis/ERC721.json +0 -737
- package/src/airdrop/contracts/evm/contracts/abis/FeeCollector.json +0 -322
- package/src/airdrop/contracts/evm/contracts/abis/FungibleTokenECDSADistributor.json +0 -564
- package/src/airdrop/contracts/evm/contracts/abis/FungibleTokenWithFeesECDSADistributor.json +0 -260
- package/src/airdrop/contracts/evm/contracts/abis/KycHook.json +0 -312
- package/src/airdrop/contracts/index.ts +0 -4
- package/src/airdrop/contracts/solana/AirdropSignatureClient.ts +0 -242
- package/src/airdrop/contracts/solana/FeeCollectorClient.ts +0 -43
- package/src/airdrop/contracts/solana/SignatureAirdropService.ts +0 -51
- package/src/airdrop/contracts/solana/SolanaContractClient.ts +0 -126
- package/src/airdrop/contracts/solana/fee_collector.json +0 -1063
- package/src/airdrop/contracts/solana/fee_collector.ts +0 -1069
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.json +0 -1573
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.ts +0 -1579
- package/src/airdrop/contracts/ton/AirdropClientV1.ts +0 -122
- package/src/airdrop/contracts/ton/AirdropClientV2.ts +0 -118
- package/src/airdrop/contracts/ton/AirdropClientV21.ts +0 -131
- package/src/airdrop/contracts/ton/AirdropClientV3.ts +0 -127
- package/src/airdrop/contracts/ton/AirdropService.ts +0 -150
- package/src/airdrop/contracts/ton/TonContractBaseClient.ts +0 -236
- package/src/airdrop/contracts/ton/v1/build/Leaf.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v1/build/MerkleTokenDistributor.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v1/utils/constants.ts +0 -42
- package/src/airdrop/contracts/ton/v1/utils/date.utils.ts +0 -11
- package/src/airdrop/contracts/ton/v1/utils/index.ts +0 -3
- package/src/airdrop/contracts/ton/v1/utils/ton.utils.ts +0 -84
- package/src/airdrop/contracts/ton/v1/wrappers/JettonMinter.ts +0 -81
- package/src/airdrop/contracts/ton/v1/wrappers/JettonWallet.ts +0 -73
- package/src/airdrop/contracts/ton/v1/wrappers/Leaf.ts +0 -88
- package/src/airdrop/contracts/ton/v1/wrappers/MerkleTokenDistributor.ts +0 -317
- package/src/airdrop/contracts/ton/v1/wrappers/index.ts +0 -2
- package/src/airdrop/contracts/ton/v2/build/Leaf.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v2/build/MerkleTokenDistributor.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v2/utils/constants.ts +0 -43
- package/src/airdrop/contracts/ton/v2/utils/date.utils.ts +0 -11
- package/src/airdrop/contracts/ton/v2/utils/index.ts +0 -3
- package/src/airdrop/contracts/ton/v2/utils/ton.utils.ts +0 -102
- package/src/airdrop/contracts/ton/v2/wrappers/Leaf.ts +0 -69
- package/src/airdrop/contracts/ton/v2/wrappers/MerkleTokenDistributor.ts +0 -340
- package/src/airdrop/contracts/ton/v2/wrappers/index.ts +0 -2
- package/src/airdrop/contracts/ton/v21/build/Leaf.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v21/build/MerkleTokenDistributor.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v21/utils/constants.ts +0 -48
- package/src/airdrop/contracts/ton/v21/utils/date.utils.ts +0 -11
- package/src/airdrop/contracts/ton/v21/utils/index.ts +0 -3
- package/src/airdrop/contracts/ton/v21/utils/ton.utils.ts +0 -84
- package/src/airdrop/contracts/ton/v21/wrappers/Leaf.ts +0 -69
- package/src/airdrop/contracts/ton/v21/wrappers/MerkleTokenDistributor.ts +0 -346
- package/src/airdrop/contracts/ton/v21/wrappers/index.ts +0 -2
- package/src/airdrop/contracts/ton/v3/build/Leaf.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v3/build/MerkleTokenDistributor.compiled.json +0 -1
- package/src/airdrop/contracts/ton/v3/utils/constants.ts +0 -43
- package/src/airdrop/contracts/ton/v3/utils/date.utils.ts +0 -11
- package/src/airdrop/contracts/ton/v3/utils/index.ts +0 -3
- package/src/airdrop/contracts/ton/v3/utils/ton.utils.ts +0 -84
- package/src/airdrop/contracts/ton/v3/wrappers/Leaf.ts +0 -68
- package/src/airdrop/contracts/ton/v3/wrappers/MerkleTokenDistributor.ts +0 -316
- package/src/airdrop/contracts/ton/v3/wrappers/index.ts +0 -2
- package/src/airdrop/index.ts +0 -10
- package/src/airdrop/services/index.ts +0 -166
- package/src/airdrop/services/wallet-service/ton/WalletService.ts +0 -226
- package/src/airdrop/services/wallet-service/ton/index.ts +0 -1
- package/src/airdrop/strategies/AirdropStrategyFactory.ts +0 -31
- package/src/airdrop/strategies/EvmAirdropStrategy.ts +0 -81
- package/src/airdrop/strategies/IAirdropStrategy.ts +0 -26
- package/src/airdrop/strategies/StrategyCache.ts +0 -34
- package/src/airdrop/strategies/TonAirdropStrategy.ts +0 -77
- package/src/airdrop/tests/index.test.ts +0 -387
- package/src/airdrop/types/index.ts +0 -200
- package/src/index.ts +0 -3
- package/src/utils/api-client.ts +0 -69
- package/src/utils/index.ts +0 -3
- package/src/utils/utils.ts +0 -45
- package/src/utils/web3.ts +0 -172
- package/src/wallets/WalletBase.ts +0 -92
- package/src/wallets/WalletFactory.tsx +0 -35
- package/src/wallets/index.ts +0 -3
- package/src/wallets/providers/evm/EvmWallet.ts +0 -101
- package/src/wallets/providers/evm/index.tsx +0 -56
- package/src/wallets/providers/index.ts +0 -4
- package/src/wallets/providers/solana/index.tsx +0 -133
- package/src/wallets/providers/ton/TonWallet.ts +0 -153
- package/src/wallets/providers/ton/index.tsx +0 -41
- package/src/wallets/types.ts +0 -45
- package/src/wallets/utils/index.ts +0 -61
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Address,
|
|
3
|
-
beginCell,
|
|
4
|
-
Builder,
|
|
5
|
-
Cell,
|
|
6
|
-
Contract,
|
|
7
|
-
contractAddress,
|
|
8
|
-
ContractProvider,
|
|
9
|
-
Dictionary,
|
|
10
|
-
Sender,
|
|
11
|
-
SendMode,
|
|
12
|
-
Slice,
|
|
13
|
-
toNano,
|
|
14
|
-
TupleItem
|
|
15
|
-
} from '@ton/core';
|
|
16
|
-
import { CodeType, dateToUnixTimestamp, intToString, OpCode, stringToInt, unixTimestampToDate } from '../utils';
|
|
17
|
-
|
|
18
|
-
export type MerkleTokenDistributorConfig = {
|
|
19
|
-
version: string;
|
|
20
|
-
adminAddress: Address;
|
|
21
|
-
root: bigint;
|
|
22
|
-
deployer: Address;
|
|
23
|
-
token?: Address;
|
|
24
|
-
startTime: Date;
|
|
25
|
-
endTime: Date;
|
|
26
|
-
leafCode: Cell;
|
|
27
|
-
claimFee: bigint;
|
|
28
|
-
claimFeeAddress: Address;
|
|
29
|
-
paused?: boolean;
|
|
30
|
-
feelessThreshold?: bigint;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export function tokenDistributorConfigToCell(config: MerkleTokenDistributorConfig): Cell {
|
|
34
|
-
const {
|
|
35
|
-
version,
|
|
36
|
-
adminAddress,
|
|
37
|
-
deployer,
|
|
38
|
-
endTime,
|
|
39
|
-
leafCode,
|
|
40
|
-
root,
|
|
41
|
-
startTime,
|
|
42
|
-
token,
|
|
43
|
-
claimFee,
|
|
44
|
-
claimFeeAddress,
|
|
45
|
-
paused = false,
|
|
46
|
-
feelessThreshold = 0
|
|
47
|
-
} = config;
|
|
48
|
-
const c2 = beginCell()
|
|
49
|
-
.storeCoins(claimFee)
|
|
50
|
-
.storeAddress(claimFeeAddress)
|
|
51
|
-
.storeUint(paused ? 1 : 0, 1)
|
|
52
|
-
.storeCoins(feelessThreshold)
|
|
53
|
-
.endCell();
|
|
54
|
-
|
|
55
|
-
const c1 = beginCell()
|
|
56
|
-
.storeAddress(deployer)
|
|
57
|
-
.storeAddress(token)
|
|
58
|
-
.storeUint(dateToUnixTimestamp(startTime), 32)
|
|
59
|
-
.storeUint(dateToUnixTimestamp(endTime), 32)
|
|
60
|
-
.storeRef(leafCode)
|
|
61
|
-
.endCell();
|
|
62
|
-
|
|
63
|
-
return beginCell()
|
|
64
|
-
.storeUint(stringToInt(version), 64)
|
|
65
|
-
.storeAddress(adminAddress)
|
|
66
|
-
.storeUint(root, 256)
|
|
67
|
-
.storeRef(c1)
|
|
68
|
-
.storeRef(c2)
|
|
69
|
-
.endCell();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export type TokenDistributorEntry = {
|
|
73
|
-
address: Address;
|
|
74
|
-
claimableAmount: bigint;
|
|
75
|
-
claimableTimestamp: number;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export const tokenDistributorEntryValue = {
|
|
79
|
-
serialize: (src: TokenDistributorEntry, buidler: Builder) => {
|
|
80
|
-
buidler.storeAddress(src.address).storeCoins(src.claimableAmount).storeUint(src.claimableTimestamp, 32);
|
|
81
|
-
},
|
|
82
|
-
parse: (src: Slice) => {
|
|
83
|
-
return {
|
|
84
|
-
address: src.loadAddress(),
|
|
85
|
-
claimableAmount: src.loadCoins(),
|
|
86
|
-
claimableTimestamp: src.loadUint(32)
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
export function generateEntriesDictionary(entries: TokenDistributorEntry[]): Dictionary<bigint, TokenDistributorEntry> {
|
|
92
|
-
const dict: Dictionary<bigint, TokenDistributorEntry> = Dictionary.empty(
|
|
93
|
-
Dictionary.Keys.BigUint(64),
|
|
94
|
-
tokenDistributorEntryValue
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
for (let i = 0; i < entries.length; i++) {
|
|
98
|
-
dict.set(BigInt(i), entries[i]);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return dict;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export class MerkleTokenDistributor implements Contract {
|
|
105
|
-
constructor(readonly address: Address, readonly init?: { code: Cell; data: Cell }) {}
|
|
106
|
-
|
|
107
|
-
static createFromAddress(address: Address) {
|
|
108
|
-
return new MerkleTokenDistributor(address);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
static createFromConfig(config: MerkleTokenDistributorConfig, code: Cell, workchain = 0) {
|
|
112
|
-
const data = tokenDistributorConfigToCell(config);
|
|
113
|
-
const init = { code, data };
|
|
114
|
-
return new MerkleTokenDistributor(contractAddress(workchain, init), init);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
async sendDeploy(provider: ContractProvider, via: Sender, value: bigint) {
|
|
118
|
-
await provider.internal(via, {
|
|
119
|
-
value,
|
|
120
|
-
sendMode: SendMode.PAY_GAS_SEPARATELY,
|
|
121
|
-
body: beginCell().endCell()
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
async getVersion(provider: ContractProvider): Promise<string> {
|
|
126
|
-
const result = await provider.get('get_version', []);
|
|
127
|
-
|
|
128
|
-
return intToString(Number(result.stack.readBigNumber()));
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
async getLeafAddress(provider: ContractProvider, index: bigint): Promise<Address> {
|
|
132
|
-
const arg: TupleItem = {
|
|
133
|
-
value: index,
|
|
134
|
-
type: 'int'
|
|
135
|
-
};
|
|
136
|
-
const result = await provider.get('get_leaf_address', [arg]);
|
|
137
|
-
|
|
138
|
-
return result.stack.readAddress();
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
async getRoot(provider: ContractProvider): Promise<bigint> {
|
|
142
|
-
const result = await provider.get('get_root', []);
|
|
143
|
-
|
|
144
|
-
return result.stack.readBigNumber();
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
async getTime(provider: ContractProvider): Promise<[Date, Date] | [null, null]> {
|
|
148
|
-
const result = await provider.get('get_time', []);
|
|
149
|
-
const stack = result.stack;
|
|
150
|
-
|
|
151
|
-
try {
|
|
152
|
-
return [unixTimestampToDate(stack.readNumber()), unixTimestampToDate(stack.readNumber())];
|
|
153
|
-
} catch (e) {
|
|
154
|
-
return [null, null];
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
async getToken(provider: ContractProvider): Promise<Address | null> {
|
|
159
|
-
const result = await provider.get('get_token', []);
|
|
160
|
-
|
|
161
|
-
try {
|
|
162
|
-
return result.stack.readAddress();
|
|
163
|
-
} catch (e) {
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
async getAdminAddress(provider: ContractProvider): Promise<Address> {
|
|
169
|
-
const result = await provider.get('get_admin_address', []);
|
|
170
|
-
|
|
171
|
-
return result.stack.readAddress();
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
async getClaimFee(provider: ContractProvider): Promise<bigint> {
|
|
175
|
-
const result = await provider.get('get_claim_fee', []);
|
|
176
|
-
|
|
177
|
-
return result.stack.readBigNumber();
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
async getClaimFeeAddress(provider: ContractProvider): Promise<Address> {
|
|
181
|
-
const result = await provider.get('get_claim_fee_address', []);
|
|
182
|
-
|
|
183
|
-
return result.stack.readAddress();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
async getPaused(provider: ContractProvider): Promise<boolean> {
|
|
187
|
-
const result = await provider.get('get_paused', []);
|
|
188
|
-
|
|
189
|
-
return result.stack.readNumber() === 1;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
async getFeelessThreshold(provider: ContractProvider): Promise<bigint> {
|
|
193
|
-
const result = await provider.get('get_feeless_threshold', []);
|
|
194
|
-
|
|
195
|
-
return result.stack.readBigNumber();
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
async sendChangeAdmin(provider: ContractProvider, via: Sender, newAdmin: Address) {
|
|
199
|
-
const messageBody = beginCell().storeUint(OpCode.ChangeAdmin, 32).storeUint(0, 64).storeAddress(newAdmin).endCell();
|
|
200
|
-
const result = await provider.internal(via, {
|
|
201
|
-
value: '0.01',
|
|
202
|
-
body: messageBody
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
return result;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
async sendChangeCode(provider: ContractProvider, via: Sender, codeType: CodeType, newCode: Cell) {
|
|
209
|
-
const messageBody = beginCell()
|
|
210
|
-
.storeUint(OpCode.ChangeCode, 32)
|
|
211
|
-
.storeUint(0, 64)
|
|
212
|
-
.storeUint(codeType, 32)
|
|
213
|
-
.storeRef(newCode)
|
|
214
|
-
.endCell();
|
|
215
|
-
const result = await provider.internal(via, {
|
|
216
|
-
value: '0.01',
|
|
217
|
-
body: messageBody
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
async sendChangeVersion(provider: ContractProvider, via: Sender, version: string) {
|
|
224
|
-
const messageBody = beginCell()
|
|
225
|
-
.storeUint(OpCode.ChangeVersion, 32)
|
|
226
|
-
.storeUint(0, 64)
|
|
227
|
-
.storeUint(stringToInt(version), 64)
|
|
228
|
-
.endCell();
|
|
229
|
-
const result = await provider.internal(via, {
|
|
230
|
-
value: '0.01',
|
|
231
|
-
body: messageBody
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
return result;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
async sendWithdraw(provider: ContractProvider, via: Sender, amount: string) {
|
|
238
|
-
const messageBody = beginCell()
|
|
239
|
-
.storeUint(OpCode.Withdraw, 32)
|
|
240
|
-
.storeUint(0, 64)
|
|
241
|
-
.storeCoins(toNano(amount))
|
|
242
|
-
.endCell();
|
|
243
|
-
const result = await provider.internal(via, {
|
|
244
|
-
value: '0.01',
|
|
245
|
-
body: messageBody
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
return result;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
async sendWithdrawTokens(provider: ContractProvider, via: Sender, amount: string) {
|
|
252
|
-
const messageBody = beginCell()
|
|
253
|
-
.storeUint(OpCode.WithdrawTokens, 32)
|
|
254
|
-
.storeUint(0, 64)
|
|
255
|
-
.storeCoins(toNano(amount))
|
|
256
|
-
.endCell();
|
|
257
|
-
const result = await provider.internal(via, {
|
|
258
|
-
value: '0.1',
|
|
259
|
-
body: messageBody
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
return result;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
async sendSetBaseParams(
|
|
266
|
-
provider: ContractProvider,
|
|
267
|
-
via: Sender,
|
|
268
|
-
startTime: Date,
|
|
269
|
-
endTime: Date,
|
|
270
|
-
root: bigint,
|
|
271
|
-
token: Address
|
|
272
|
-
) {
|
|
273
|
-
const messageBody = beginCell()
|
|
274
|
-
.storeUint(OpCode.SetBaseParams, 32)
|
|
275
|
-
.storeUint(0, 64)
|
|
276
|
-
.storeAddress(token)
|
|
277
|
-
.storeUint(dateToUnixTimestamp(startTime), 32)
|
|
278
|
-
.storeUint(dateToUnixTimestamp(endTime), 32)
|
|
279
|
-
.storeUint(root, 256)
|
|
280
|
-
.endCell();
|
|
281
|
-
const result = await provider.internal(via, {
|
|
282
|
-
value: '0.01',
|
|
283
|
-
body: messageBody
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
return result;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
async sendSetPaused(provider: ContractProvider, via: Sender, paused: boolean) {
|
|
290
|
-
const messageBody = beginCell()
|
|
291
|
-
.storeUint(OpCode.SetPaused, 32)
|
|
292
|
-
.storeUint(0, 64)
|
|
293
|
-
.storeUint(paused ? 1 : 0, 1)
|
|
294
|
-
.endCell();
|
|
295
|
-
const result = await provider.internal(via, {
|
|
296
|
-
value: '0.01',
|
|
297
|
-
body: messageBody
|
|
298
|
-
});
|
|
299
|
-
|
|
300
|
-
return result;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
async sendSetFeelessThreshold(provider: ContractProvider, via: Sender, feelessThreshold: bigint) {
|
|
304
|
-
const messageBody = beginCell()
|
|
305
|
-
.storeUint(OpCode.SetFeelessThreshold, 32)
|
|
306
|
-
.storeUint(0, 64)
|
|
307
|
-
.storeCoins(feelessThreshold)
|
|
308
|
-
.endCell();
|
|
309
|
-
const result = await provider.internal(via, {
|
|
310
|
-
value: '0.01',
|
|
311
|
-
body: messageBody
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
return result;
|
|
315
|
-
}
|
|
316
|
-
}
|
package/src/airdrop/index.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { AirdropClient } from './AirdropClient';
|
|
2
|
-
export { SignatureAirdropClient } from './SignatureAirdropClient';
|
|
3
|
-
export {
|
|
4
|
-
EvmSignatureAirdropService,
|
|
5
|
-
SolanaSignatureAirdropService,
|
|
6
|
-
EvmAirdropService,
|
|
7
|
-
TonAirdropService
|
|
8
|
-
} from './contracts';
|
|
9
|
-
|
|
10
|
-
export { CONST } from './constants';
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { apiClient } from '../../utils/api-client';
|
|
2
|
-
import { safeParseJSON } from '../../utils/utils';
|
|
3
|
-
import {
|
|
4
|
-
AirdropSigIdentityTypeEnum,
|
|
5
|
-
IAirdropData,
|
|
6
|
-
IAirdropSignatureData,
|
|
7
|
-
IClaimSignature,
|
|
8
|
-
IContractConfig,
|
|
9
|
-
IProject
|
|
10
|
-
} from '../types';
|
|
11
|
-
|
|
12
|
-
export { TonWalletService } from './wallet-service/ton';
|
|
13
|
-
|
|
14
|
-
const createApiClient = (baseURL?: string) => {
|
|
15
|
-
return baseURL ? apiClient.extend({ baseURL }) : apiClient;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const getAirdropProject = async (projectId: string, baseURL?: string): Promise<IProject> => {
|
|
19
|
-
const client = createApiClient(baseURL);
|
|
20
|
-
const res = await client.get<any>(`/airdrop-open/projects/${projectId}`);
|
|
21
|
-
if (!res) return res; // res is null
|
|
22
|
-
const projectConfig = res?.themeConf;
|
|
23
|
-
const blockCountries = safeParseJSON(projectConfig?.blockCountries);
|
|
24
|
-
return {
|
|
25
|
-
...res,
|
|
26
|
-
blockCountries
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const getAirdropProjectId = async (
|
|
31
|
-
data: {
|
|
32
|
-
recipient: string;
|
|
33
|
-
slug: string;
|
|
34
|
-
},
|
|
35
|
-
baseURL?: string
|
|
36
|
-
): Promise<{ recipient: string; projectIds: string[] }> => {
|
|
37
|
-
const client = createApiClient(baseURL);
|
|
38
|
-
return client.post(`/airdrop-open/query-pid`, data);
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export const getAirdropPro = async (
|
|
42
|
-
slug: string,
|
|
43
|
-
baseURL?: string
|
|
44
|
-
): Promise<{
|
|
45
|
-
slug: string;
|
|
46
|
-
childProjectMapping: Record<string, string>;
|
|
47
|
-
}> => {
|
|
48
|
-
const client = createApiClient(baseURL);
|
|
49
|
-
return client.get(`/airdrop-open/airdrop-pro/${slug}`);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export const getAirdropQuery = async (
|
|
53
|
-
data: {
|
|
54
|
-
recipient: string;
|
|
55
|
-
projectId: string;
|
|
56
|
-
recipientType: string;
|
|
57
|
-
},
|
|
58
|
-
baseURL?: string
|
|
59
|
-
): Promise<IAirdropData> => {
|
|
60
|
-
const client = createApiClient(baseURL);
|
|
61
|
-
return client.post(`/airdrop-open/query`, data);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export const getAirdropContractConfig = async (
|
|
65
|
-
data: { chainId: string; chainType: string; contractAddress: string },
|
|
66
|
-
baseURL?: string
|
|
67
|
-
): Promise<IContractConfig> => {
|
|
68
|
-
const client = createApiClient(baseURL);
|
|
69
|
-
return client.post(`/airdrop-open/contract/config`, data);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const getJettonInfo = async (
|
|
73
|
-
data: { address: string; isTestnet: 'true' | 'false' },
|
|
74
|
-
baseURL?: string
|
|
75
|
-
): Promise<any> => {
|
|
76
|
-
const client = createApiClient(baseURL);
|
|
77
|
-
return client.get(`/airdrop-open/jetton/${data.address}?isTestnet=${data.isTestnet}`);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
interface SidResponse {
|
|
81
|
-
sid: string;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
interface SocialConnectParams {
|
|
85
|
-
code: string;
|
|
86
|
-
projectId: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
interface WalletBindParams {
|
|
90
|
-
projectId: string;
|
|
91
|
-
key: string;
|
|
92
|
-
signature: string;
|
|
93
|
-
message: string;
|
|
94
|
-
timestamp: number;
|
|
95
|
-
recipientType: string;
|
|
96
|
-
address: string;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const getSidHeader = (projectId: string) => ({
|
|
100
|
-
sid: window.localStorage.getItem(`sid_${projectId}`) || ''
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
export const connectTwitter = async (data: SocialConnectParams, baseURL?: string): Promise<SidResponse> => {
|
|
104
|
-
const client = createApiClient(baseURL);
|
|
105
|
-
return client.post('/airdrop-open/connect-twitter', data, {
|
|
106
|
-
headers: getSidHeader(data.projectId)
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
export const connectGoogleApi = async (data: SocialConnectParams, baseURL?: string): Promise<SidResponse> => {
|
|
111
|
-
const client = createApiClient(baseURL);
|
|
112
|
-
return client.post('/airdrop-open/connect-google', data, {
|
|
113
|
-
headers: getSidHeader(data.projectId)
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export const checkEligibility = async (
|
|
118
|
-
data: { projectId: string },
|
|
119
|
-
baseURL?: string
|
|
120
|
-
): Promise<IAirdropSignatureData> => {
|
|
121
|
-
const headers = getSidHeader(data.projectId);
|
|
122
|
-
if (!headers.sid)
|
|
123
|
-
return {
|
|
124
|
-
claims: [],
|
|
125
|
-
identities: []
|
|
126
|
-
};
|
|
127
|
-
const client = createApiClient(baseURL);
|
|
128
|
-
|
|
129
|
-
return client.post('/airdrop-open/check-eligibility', data, {
|
|
130
|
-
headers: headers
|
|
131
|
-
});
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
export const bindWallet = async (data: WalletBindParams, baseURL?: string): Promise<SidResponse> => {
|
|
135
|
-
const client = createApiClient(baseURL);
|
|
136
|
-
return client.post('/airdrop-open/connect-wallet', data, {
|
|
137
|
-
headers: getSidHeader(data.projectId)
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
interface DisconnectParams {
|
|
142
|
-
projectId: string;
|
|
143
|
-
recipientType: AirdropSigIdentityTypeEnum;
|
|
144
|
-
recipient?: string;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export const disconnectRecipient = async (data: DisconnectParams, baseURL?: string): Promise<void> => {
|
|
148
|
-
const client = createApiClient(baseURL);
|
|
149
|
-
return client.post('/airdrop-open/disconnect', data, {
|
|
150
|
-
headers: getSidHeader(data.projectId)
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
export const checkGetSignatures = async (
|
|
155
|
-
data: {
|
|
156
|
-
projectId: string;
|
|
157
|
-
claimIds: string[];
|
|
158
|
-
recipient: string;
|
|
159
|
-
},
|
|
160
|
-
baseURL?: string
|
|
161
|
-
): Promise<{ signatures: IClaimSignature[] }> => {
|
|
162
|
-
const client = createApiClient(baseURL);
|
|
163
|
-
return client.post('/airdrop-open/check-get-signatures', data, {
|
|
164
|
-
headers: getSidHeader(data.projectId)
|
|
165
|
-
});
|
|
166
|
-
};
|