@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.
- package/dist/cjs/airdrop/core/ton/AirdropClientV21.d.ts +29 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV21.js +112 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV21.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/AirdropService.d.ts +11 -2
- package/dist/cjs/airdrop/core/ton/AirdropService.js +15 -1
- package/dist/cjs/airdrop/core/ton/AirdropService.js.map +1 -1
- package/dist/cjs/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/constants.d.ts +44 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/constants.js +51 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/constants.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.js +15 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/date.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/index.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/index.js +20 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.d.ts +17 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.js +87 -0
- package/dist/cjs/airdrop/core/ton/v21/utils/ton.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.d.ts +24 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.js +60 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/Leaf.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.d.ts +66 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js +255 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/index.d.ts +2 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/index.js +19 -0
- package/dist/cjs/airdrop/core/ton/v21/wrappers/index.js.map +1 -0
- package/dist/cjs/airdrop/index.d.ts +10 -12
- package/dist/cjs/airdrop/index.js +115 -110
- package/dist/cjs/airdrop/index.js.map +1 -1
- package/dist/cjs/airdrop/services/index.d.ts +6 -1
- package/dist/cjs/airdrop/services/index.js +6 -1
- package/dist/cjs/airdrop/services/index.js.map +1 -1
- package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.d.ts +13 -0
- package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.js +22 -0
- package/dist/cjs/airdrop/strategies/AirdropStrategyFactory.js.map +1 -0
- package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.d.ts +26 -0
- package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.js +79 -0
- package/dist/cjs/airdrop/strategies/EvmAirdropStrategy.js.map +1 -0
- package/dist/cjs/airdrop/strategies/IAirdropStrategy.d.ts +27 -0
- package/dist/cjs/airdrop/strategies/IAirdropStrategy.js +3 -0
- package/dist/cjs/airdrop/strategies/IAirdropStrategy.js.map +1 -0
- package/dist/cjs/airdrop/strategies/StrategyCache.d.ts +10 -0
- package/dist/cjs/airdrop/strategies/StrategyCache.js +32 -0
- package/dist/cjs/airdrop/strategies/StrategyCache.js.map +1 -0
- package/dist/cjs/airdrop/strategies/TonAirdropStrategy.d.ts +26 -0
- package/dist/cjs/airdrop/strategies/TonAirdropStrategy.js +64 -0
- package/dist/cjs/airdrop/strategies/TonAirdropStrategy.js.map +1 -0
- package/dist/cjs/airdrop/types/index.d.ts +7 -1
- package/dist/cjs/airdrop/types/index.js +1 -0
- package/dist/cjs/airdrop/types/index.js.map +1 -1
- package/dist/esm/airdrop/core/ton/AirdropClientV21.d.ts +29 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV21.js +105 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV21.js.map +1 -0
- package/dist/esm/airdrop/core/ton/AirdropService.d.ts +11 -2
- package/dist/esm/airdrop/core/ton/AirdropService.js +15 -1
- package/dist/esm/airdrop/core/ton/AirdropService.js.map +1 -1
- package/dist/esm/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
- package/dist/esm/airdrop/core/ton/v21/utils/constants.d.ts +44 -0
- package/dist/esm/airdrop/core/ton/v21/utils/constants.js +48 -0
- package/dist/esm/airdrop/core/ton/v21/utils/constants.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/utils/date.utils.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v21/utils/date.utils.js +10 -0
- package/dist/esm/airdrop/core/ton/v21/utils/date.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/utils/index.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v21/utils/index.js +4 -0
- package/dist/esm/airdrop/core/ton/v21/utils/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.d.ts +17 -0
- package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.js +69 -0
- package/dist/esm/airdrop/core/ton/v21/utils/ton.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.d.ts +24 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.js +55 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/Leaf.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.d.ts +66 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js +249 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/index.d.ts +2 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/index.js +3 -0
- package/dist/esm/airdrop/core/ton/v21/wrappers/index.js.map +1 -0
- package/dist/esm/airdrop/index.d.ts +10 -12
- package/dist/esm/airdrop/index.js +117 -112
- package/dist/esm/airdrop/index.js.map +1 -1
- package/dist/esm/airdrop/services/index.d.ts +6 -1
- package/dist/esm/airdrop/services/index.js +4 -0
- package/dist/esm/airdrop/services/index.js.map +1 -1
- package/dist/esm/airdrop/strategies/AirdropStrategyFactory.d.ts +13 -0
- package/dist/esm/airdrop/strategies/AirdropStrategyFactory.js +18 -0
- package/dist/esm/airdrop/strategies/AirdropStrategyFactory.js.map +1 -0
- package/dist/esm/airdrop/strategies/EvmAirdropStrategy.d.ts +26 -0
- package/dist/esm/airdrop/strategies/EvmAirdropStrategy.js +75 -0
- package/dist/esm/airdrop/strategies/EvmAirdropStrategy.js.map +1 -0
- package/dist/esm/airdrop/strategies/IAirdropStrategy.d.ts +27 -0
- package/dist/esm/airdrop/strategies/IAirdropStrategy.js +2 -0
- package/dist/esm/airdrop/strategies/IAirdropStrategy.js.map +1 -0
- package/dist/esm/airdrop/strategies/StrategyCache.d.ts +10 -0
- package/dist/esm/airdrop/strategies/StrategyCache.js +28 -0
- package/dist/esm/airdrop/strategies/StrategyCache.js.map +1 -0
- package/dist/esm/airdrop/strategies/TonAirdropStrategy.d.ts +26 -0
- package/dist/esm/airdrop/strategies/TonAirdropStrategy.js +60 -0
- package/dist/esm/airdrop/strategies/TonAirdropStrategy.js.map +1 -0
- package/dist/esm/airdrop/types/index.d.ts +7 -1
- package/dist/esm/airdrop/types/index.js +1 -0
- package/dist/esm/airdrop/types/index.js.map +1 -1
- package/package.json +1 -1
- package/src/airdrop/core/ton/AirdropClientV21.ts +131 -0
- package/src/airdrop/core/ton/AirdropService.ts +18 -1
- package/src/airdrop/core/ton/v21/build/Leaf.compiled.json +1 -0
- package/src/airdrop/core/ton/v21/build/MerkleTokenDistributor.compiled.json +1 -0
- package/src/airdrop/core/ton/v21/utils/constants.ts +48 -0
- package/src/airdrop/core/ton/v21/utils/date.utils.ts +11 -0
- package/src/airdrop/core/ton/v21/utils/index.ts +3 -0
- package/src/airdrop/core/ton/v21/utils/ton.utils.ts +84 -0
- package/src/airdrop/core/ton/v21/wrappers/Leaf.ts +69 -0
- package/src/airdrop/core/ton/v21/wrappers/MerkleTokenDistributor.ts +346 -0
- package/src/airdrop/core/ton/v21/wrappers/index.ts +2 -0
- package/src/airdrop/index.ts +140 -139
- package/src/airdrop/services/index.ts +6 -1
- package/src/airdrop/strategies/AirdropStrategyFactory.ts +29 -0
- package/src/airdrop/strategies/EvmAirdropStrategy.ts +85 -0
- package/src/airdrop/strategies/IAirdropStrategy.ts +25 -0
- package/src/airdrop/strategies/StrategyCache.ts +34 -0
- package/src/airdrop/strategies/TonAirdropStrategy.ts +72 -0
- package/src/airdrop/tests/index.test.ts +100 -0
- package/src/airdrop/types/index.ts +8 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AirdropClient = void 0;
|
|
4
|
-
const AirdropService_1 = require("./core/ton/AirdropService");
|
|
5
|
-
const AirdropService_2 = require("./core/evm/AirdropService");
|
|
6
4
|
const services_1 = require("./services");
|
|
7
5
|
const types_1 = require("./types");
|
|
8
6
|
const common_1 = require("./common");
|
|
7
|
+
const AirdropStrategyFactory_1 = require("./strategies/AirdropStrategyFactory");
|
|
8
|
+
const StrategyCache_1 = require("./strategies/StrategyCache");
|
|
9
9
|
class AirdropClient {
|
|
10
10
|
tonClient;
|
|
11
11
|
slug;
|
|
@@ -13,11 +13,9 @@ class AirdropClient {
|
|
|
13
13
|
endpoint;
|
|
14
14
|
project;
|
|
15
15
|
claims;
|
|
16
|
-
contractInstanceWithWallet;
|
|
17
|
-
contractInstanceWithoutWallet;
|
|
18
16
|
projectPromise;
|
|
19
17
|
claimHook;
|
|
20
|
-
|
|
18
|
+
contractConfig = null;
|
|
21
19
|
constructor(params) {
|
|
22
20
|
if ('slug' in params) {
|
|
23
21
|
this.slug = params.slug;
|
|
@@ -27,20 +25,36 @@ class AirdropClient {
|
|
|
27
25
|
this.endpoint = params.endpoint;
|
|
28
26
|
this.projectPromise = this.initializeProjects();
|
|
29
27
|
}
|
|
28
|
+
async fetchProjectFromSlug(address) {
|
|
29
|
+
if (!this.slug)
|
|
30
|
+
return undefined;
|
|
31
|
+
const res = await (0, services_1.getAirdropPro)(this.slug, this.endpoint);
|
|
32
|
+
const projectMap = res?.childProjectMapping || {};
|
|
33
|
+
return (0, common_1.getTonProjectIdByAddress)({
|
|
34
|
+
address,
|
|
35
|
+
slug: this.slug,
|
|
36
|
+
data: projectMap
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async fetchProjectDetails(projectId) {
|
|
40
|
+
this.project = await (0, services_1.getAirdropProject)(projectId, this.endpoint);
|
|
41
|
+
}
|
|
30
42
|
async initializeProjects(address) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
|
|
43
|
+
try {
|
|
44
|
+
let projectId = this.projectId;
|
|
45
|
+
// If slug is provided, try to fetch project ID from slug
|
|
46
|
+
if (!projectId) {
|
|
47
|
+
projectId = await this.fetchProjectFromSlug(address);
|
|
48
|
+
}
|
|
49
|
+
if (!projectId) {
|
|
50
|
+
throw new Error('Project ID is required and could not be determined');
|
|
39
51
|
}
|
|
52
|
+
// Fetch project details
|
|
53
|
+
await this.fetchProjectDetails(projectId);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Failed to initialize project: ${error.message}`);
|
|
40
57
|
}
|
|
41
|
-
if (!projectId)
|
|
42
|
-
throw new Error('Project ID is required');
|
|
43
|
-
this.project = await (0, services_1.getAirdropProject)(projectId, this.endpoint);
|
|
44
58
|
}
|
|
45
59
|
async getProjectInfo() {
|
|
46
60
|
await this.projectPromise;
|
|
@@ -63,42 +77,30 @@ class AirdropClient {
|
|
|
63
77
|
this.claims = claimsRes;
|
|
64
78
|
return this.claims;
|
|
65
79
|
}
|
|
66
|
-
async
|
|
80
|
+
async getStrategy(walletClient) {
|
|
67
81
|
const project = await this.getProjectInfo();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const instance = project.chainType === types_1.ChainType.Evm
|
|
89
|
-
? new AirdropService_2.AirdropService({
|
|
90
|
-
contractAddress: project.contractAddress,
|
|
91
|
-
chainId: Number(project.chainId)
|
|
92
|
-
})
|
|
93
|
-
: new AirdropService_1.AirdropService({
|
|
94
|
-
chainId: project.chainId.toString(),
|
|
95
|
-
address: project.contractAddress,
|
|
96
|
-
tonClient: this.tonClient
|
|
97
|
-
});
|
|
98
|
-
this.contractInstanceWithoutWallet = instance;
|
|
99
|
-
}
|
|
100
|
-
return this.contractInstanceWithoutWallet;
|
|
82
|
+
const hasWallet = !!walletClient;
|
|
83
|
+
// Try to get cached strategy
|
|
84
|
+
let strategy = StrategyCache_1.strategyCache.getStrategy(project.contractAddress, project.chainId, project.chainType, hasWallet);
|
|
85
|
+
if (!strategy) {
|
|
86
|
+
// Create new strategy if not cached
|
|
87
|
+
strategy = AirdropStrategyFactory_1.AirdropStrategyFactory.createStrategy({
|
|
88
|
+
chainType: project.chainType,
|
|
89
|
+
contractAddress: project.contractAddress,
|
|
90
|
+
chainId: project.chainId,
|
|
91
|
+
walletClient,
|
|
92
|
+
tonClient: this.tonClient
|
|
93
|
+
});
|
|
94
|
+
// Initialize the strategy
|
|
95
|
+
await strategy.initialize(walletClient);
|
|
96
|
+
// Cache the initialized strategy
|
|
97
|
+
StrategyCache_1.strategyCache.setStrategy(project.contractAddress, project.chainId, project.chainType, strategy, hasWallet);
|
|
98
|
+
}
|
|
99
|
+
else if (hasWallet) {
|
|
100
|
+
// If we have a wallet and the strategy exists, just initialize with the new wallet
|
|
101
|
+
await strategy.initialize(walletClient);
|
|
101
102
|
}
|
|
103
|
+
return strategy;
|
|
102
104
|
}
|
|
103
105
|
getClaimDataById(claimId) {
|
|
104
106
|
const claimData = this.claims?.find((it) => it.claimId === claimId);
|
|
@@ -111,88 +113,91 @@ class AirdropClient {
|
|
|
111
113
|
}
|
|
112
114
|
async claimAirdrop({ claimId, walletClient }, options) {
|
|
113
115
|
const claimData = this.getClaimDataById(claimId);
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
[types_1.EvmAirdropVersionEnum.V3, types_1.EvmAirdropVersionEnum.V4].includes(version));
|
|
122
|
-
const value = needsFeeData ? await this.getClaimFee(BigInt(claimData.amount)) : undefined;
|
|
123
|
-
let extraData = {
|
|
124
|
-
isLegacy: true,
|
|
125
|
-
attestationId: BigInt(1)
|
|
126
|
-
};
|
|
127
|
-
if (this.claimHook) {
|
|
128
|
-
extraData = this.claimHook(claimData);
|
|
129
|
-
}
|
|
130
|
-
return contractWrapper.claim({
|
|
131
|
-
proof: claimData.proof,
|
|
132
|
-
group: claimData.group,
|
|
133
|
-
data: claimData.data,
|
|
134
|
-
value: value,
|
|
135
|
-
extraData: extraData
|
|
136
|
-
});
|
|
116
|
+
const strategy = await this.getStrategy(walletClient);
|
|
117
|
+
let extraData = {
|
|
118
|
+
isLegacy: true,
|
|
119
|
+
attestationId: BigInt(0)
|
|
120
|
+
};
|
|
121
|
+
if (this.claimHook) {
|
|
122
|
+
extraData = this.claimHook(claimData);
|
|
137
123
|
}
|
|
138
|
-
return
|
|
124
|
+
return strategy.claim(claimData, options);
|
|
139
125
|
}
|
|
140
126
|
async checkClaimed(claimId) {
|
|
141
127
|
const claimData = this.getClaimDataById(claimId);
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
128
|
+
const strategy = await this.getStrategy();
|
|
129
|
+
return strategy.checkClaimed(claimData);
|
|
130
|
+
}
|
|
131
|
+
async getContractConfig() {
|
|
132
|
+
try {
|
|
133
|
+
const project = await this.getProjectInfo();
|
|
134
|
+
if (!this.contractConfig) {
|
|
135
|
+
this.contractConfig = await (0, services_1.getAirdropContractConfig)({
|
|
136
|
+
chainId: project.chainId,
|
|
137
|
+
chainType: project.chainType,
|
|
138
|
+
contractAddress: project.contractAddress
|
|
139
|
+
}, this.endpoint);
|
|
140
|
+
}
|
|
141
|
+
return this.contractConfig;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
console.error('Error fetching contract config:', error);
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async getVersion() {
|
|
149
|
+
const config = await this.getContractConfig();
|
|
150
|
+
if (config?.version) {
|
|
151
|
+
return config.version;
|
|
146
152
|
}
|
|
147
|
-
|
|
153
|
+
const strategy = await this.getStrategy();
|
|
154
|
+
return strategy.getVersion();
|
|
148
155
|
}
|
|
149
156
|
async getPaused() {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
throw new Error('EVM chain is not supported');
|
|
157
|
+
const config = await this.getContractConfig();
|
|
158
|
+
if (config && config?.paused !== null) {
|
|
159
|
+
return config.paused;
|
|
154
160
|
}
|
|
155
|
-
|
|
161
|
+
const strategy = await this.getStrategy();
|
|
162
|
+
if (!strategy.getPaused) {
|
|
163
|
+
throw new Error('getPaused is not supported for this chain');
|
|
164
|
+
}
|
|
165
|
+
return strategy.getPaused();
|
|
156
166
|
}
|
|
157
|
-
async
|
|
158
|
-
|
|
159
|
-
|
|
167
|
+
async getClaimFee(amount) {
|
|
168
|
+
const config = await this.getContractConfig();
|
|
169
|
+
if (config?.claimFee) {
|
|
170
|
+
return config.claimFee;
|
|
171
|
+
}
|
|
172
|
+
const strategy = await this.getStrategy();
|
|
173
|
+
if (!strategy.getClaimFee) {
|
|
174
|
+
throw new Error('getClaimFee is not supported for this chain');
|
|
160
175
|
}
|
|
161
|
-
|
|
162
|
-
this.cachedVersion = await contractWrapper?.getVersion();
|
|
163
|
-
return this.cachedVersion;
|
|
176
|
+
return strategy.getClaimFee(this.project?.contractAddress || '', amount || BigInt(0));
|
|
164
177
|
}
|
|
165
178
|
async batchCheckClaimed() {
|
|
166
|
-
const
|
|
167
|
-
if (
|
|
168
|
-
throw new Error('
|
|
179
|
+
const strategy = await this.getStrategy();
|
|
180
|
+
if (!strategy.batchCheckClaimed) {
|
|
181
|
+
throw new Error('batchCheckClaimed is not supported for this chain');
|
|
169
182
|
}
|
|
170
|
-
const contractWrapper = await this.getAirdropContractWrapper();
|
|
171
183
|
const leafs = this.claims?.map((it) => it.leaf);
|
|
172
184
|
if (!leafs)
|
|
173
185
|
return [];
|
|
174
|
-
return
|
|
186
|
+
return strategy.batchCheckClaimed(leafs);
|
|
175
187
|
}
|
|
176
188
|
async getNFT() {
|
|
177
|
-
const
|
|
178
|
-
if (
|
|
179
|
-
throw new Error('
|
|
189
|
+
const strategy = await this.getStrategy();
|
|
190
|
+
if (!strategy.getNFT) {
|
|
191
|
+
throw new Error('getNFT is not supported for this chain');
|
|
180
192
|
}
|
|
181
|
-
|
|
182
|
-
return contractWrapper.getNFT();
|
|
193
|
+
return strategy.getNFT();
|
|
183
194
|
}
|
|
184
195
|
async getKycThreshold() {
|
|
185
|
-
const
|
|
186
|
-
if (
|
|
187
|
-
throw new Error('
|
|
196
|
+
const strategy = await this.getStrategy();
|
|
197
|
+
if (!strategy.getKycThreshold) {
|
|
198
|
+
throw new Error('getKycThreshold is not supported for this chain');
|
|
188
199
|
}
|
|
189
|
-
|
|
190
|
-
return contractWrapper.getKycThreshold();
|
|
191
|
-
}
|
|
192
|
-
async getClaimFee(amount) {
|
|
193
|
-
const project = await this.getProjectInfo();
|
|
194
|
-
const contractWrapper = await this.getAirdropContractWrapper({});
|
|
195
|
-
return contractWrapper.getClaimFee(project.contractAddress, amount || BigInt(1));
|
|
200
|
+
return strategy.getKycThreshold();
|
|
196
201
|
}
|
|
197
202
|
}
|
|
198
203
|
exports.AirdropClient = AirdropClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/airdrop/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/airdrop/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAirdropData, IProject } from '../types';
|
|
1
|
+
import { IAirdropData, IContractConfig, IProject } from '../types';
|
|
2
2
|
export { TonWalletService } from './wallet-service/ton';
|
|
3
3
|
export declare const getAirdropProject: (projectId: string, baseURL?: string) => Promise<IProject>;
|
|
4
4
|
export declare const getAirdropProjectId: (data: {
|
|
@@ -17,6 +17,11 @@ export declare const getAirdropQuery: (data: {
|
|
|
17
17
|
projectId: string;
|
|
18
18
|
recipientType: string;
|
|
19
19
|
}, baseURL?: string) => Promise<IAirdropData>;
|
|
20
|
+
export declare const getAirdropContractConfig: (data: {
|
|
21
|
+
chainId: string;
|
|
22
|
+
chainType: string;
|
|
23
|
+
contractAddress: string;
|
|
24
|
+
}, baseURL?: string) => Promise<IContractConfig>;
|
|
20
25
|
export declare const getJettonInfo: (data: {
|
|
21
26
|
address: string;
|
|
22
27
|
isTestnet: "true" | "false";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getJettonInfo = exports.getAirdropQuery = exports.getAirdropPro = exports.getAirdropProjectId = exports.getAirdropProject = exports.TonWalletService = void 0;
|
|
3
|
+
exports.getJettonInfo = exports.getAirdropContractConfig = exports.getAirdropQuery = exports.getAirdropPro = exports.getAirdropProjectId = exports.getAirdropProject = exports.TonWalletService = void 0;
|
|
4
4
|
const api_client_1 = require("../../utils/api-client");
|
|
5
5
|
const utils_1 = require("../../utils/utils");
|
|
6
6
|
var ton_1 = require("./wallet-service/ton");
|
|
@@ -36,6 +36,11 @@ const getAirdropQuery = async (data, baseURL) => {
|
|
|
36
36
|
return client.post(`/airdrop-open/query`, data);
|
|
37
37
|
};
|
|
38
38
|
exports.getAirdropQuery = getAirdropQuery;
|
|
39
|
+
const getAirdropContractConfig = async (data, baseURL) => {
|
|
40
|
+
const client = createApiClient(baseURL);
|
|
41
|
+
return client.post(`/airdrop-open/contract/config`, data);
|
|
42
|
+
};
|
|
43
|
+
exports.getAirdropContractConfig = getAirdropContractConfig;
|
|
39
44
|
const getJettonInfo = async (data, baseURL) => {
|
|
40
45
|
const client = createApiClient(baseURL);
|
|
41
46
|
return client.get(`/airdrop-open/jetton/${data.address}?isTestnet=${data.isTestnet}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/services/index.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,6CAAkD;AAGlD,4CAAwD;AAA/C,uGAAA,gBAAgB,OAAA;AAEzB,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,sBAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAS,CAAC;AAC7D,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAgB,EAAqB,EAAE;IAChG,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,0BAA0B,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC,CAAC,WAAW;IACjC,MAAM,aAAa,GAAG,GAAG,EAAE,SAAS,CAAC;IACrC,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,GAAG;QACN,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,IAGC,EACD,OAAgB,EACsC,EAAE;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,IAAY,EACZ,OAAgB,EAIf,EAAE;IACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,eAAe,GAAG,KAAK,EAClC,IAIC,EACD,OAAgB,EACO,EAAE;IACzB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,IAAsD,EACtD,OAAgB,EACF,EAAE;IAChB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/services/index.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,6CAAkD;AAGlD,4CAAwD;AAA/C,uGAAA,gBAAgB,OAAA;AAEzB,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,sBAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAS,CAAC;AAC7D,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAgB,EAAqB,EAAE;IAChG,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,0BAA0B,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC,CAAC,WAAW;IACjC,MAAM,aAAa,GAAG,GAAG,EAAE,SAAS,CAAC;IACrC,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,GAAG;QACN,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,IAGC,EACD,OAAgB,EACsC,EAAE;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,IAAY,EACZ,OAAgB,EAIf,EAAE;IACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,eAAe,GAAG,KAAK,EAClC,IAIC,EACD,OAAgB,EACO,EAAE;IACzB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAqE,EAAE,OAAgB,EAA4B,EAAE;IAClK,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AAHW,QAAA,wBAAwB,4BAGnC;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,IAAsD,EACtD,OAAgB,EACF,EAAE;IAChB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ChainType, IWalletClient } from '../types';
|
|
2
|
+
import { IAirdropStrategy } from './IAirdropStrategy';
|
|
3
|
+
import { TonClient } from '@ton/ton';
|
|
4
|
+
export declare class AirdropStrategyFactory {
|
|
5
|
+
private static strategyMap;
|
|
6
|
+
static createStrategy(params: {
|
|
7
|
+
chainType: ChainType;
|
|
8
|
+
contractAddress: string;
|
|
9
|
+
chainId: string | number;
|
|
10
|
+
walletClient?: IWalletClient;
|
|
11
|
+
tonClient?: TonClient;
|
|
12
|
+
}): IAirdropStrategy;
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AirdropStrategyFactory = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
const EvmAirdropStrategy_1 = require("./EvmAirdropStrategy");
|
|
6
|
+
const TonAirdropStrategy_1 = require("./TonAirdropStrategy");
|
|
7
|
+
class AirdropStrategyFactory {
|
|
8
|
+
static strategyMap = {
|
|
9
|
+
[types_1.ChainType.Evm]: EvmAirdropStrategy_1.EvmAirdropStrategy,
|
|
10
|
+
[types_1.ChainType.Ton]: TonAirdropStrategy_1.TonAirdropStrategy
|
|
11
|
+
};
|
|
12
|
+
static createStrategy(params) {
|
|
13
|
+
const { chainType, ...strategyParams } = params;
|
|
14
|
+
const StrategyClass = this.strategyMap[chainType];
|
|
15
|
+
if (!StrategyClass) {
|
|
16
|
+
throw new Error(`Unsupported chain type: ${chainType}`);
|
|
17
|
+
}
|
|
18
|
+
return new StrategyClass(strategyParams);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.AirdropStrategyFactory = AirdropStrategyFactory;
|
|
22
|
+
//# sourceMappingURL=AirdropStrategyFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirdropStrategyFactory.js","sourceRoot":"","sources":["../../../../src/airdrop/strategies/AirdropStrategyFactory.ts"],"names":[],"mappings":";;;AAAA,oCAAoD;AACpD,6DAA0D;AAE1D,6DAA0D;AAG1D,MAAa,sBAAsB;IACzB,MAAM,CAAC,WAAW,GAAmD;QAC3E,CAAC,iBAAS,CAAC,GAAG,CAAC,EAAE,uCAAkB;QACnC,CAAC,iBAAS,CAAC,GAAG,CAAC,EAAE,uCAAkB;KACpC,CAAC;IAEF,MAAM,CAAC,cAAc,CAAC,MAMrB;QACC,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;;AArBH,wDAsBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IWalletClient } from '../types';
|
|
2
|
+
import { IAirdropStrategy } from './IAirdropStrategy';
|
|
3
|
+
export declare class EvmAirdropStrategy implements IAirdropStrategy {
|
|
4
|
+
private service;
|
|
5
|
+
private readonly contractAddress;
|
|
6
|
+
private readonly chainId;
|
|
7
|
+
private walletClient?;
|
|
8
|
+
private cachedVersion;
|
|
9
|
+
constructor(params: {
|
|
10
|
+
contractAddress: string;
|
|
11
|
+
chainId: string | number;
|
|
12
|
+
walletClient?: IWalletClient;
|
|
13
|
+
});
|
|
14
|
+
initialize(walletClient?: IWalletClient): Promise<void>;
|
|
15
|
+
isInitialized(): boolean;
|
|
16
|
+
getVersion(): Promise<string>;
|
|
17
|
+
claim(claimData: any): Promise<any>;
|
|
18
|
+
checkClaimed(claimData: any): Promise<boolean>;
|
|
19
|
+
batchCheckClaimed(leafs: string[]): Promise<{
|
|
20
|
+
result: boolean;
|
|
21
|
+
status: string;
|
|
22
|
+
}[]>;
|
|
23
|
+
getNFT(): Promise<string>;
|
|
24
|
+
getKycThreshold(): Promise<bigint>;
|
|
25
|
+
getClaimFee(contractAddress: string, amount: bigint): Promise<bigint>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvmAirdropStrategy = void 0;
|
|
4
|
+
const AirdropService_1 = require("../core/evm/AirdropService");
|
|
5
|
+
class EvmAirdropStrategy {
|
|
6
|
+
service;
|
|
7
|
+
contractAddress;
|
|
8
|
+
chainId;
|
|
9
|
+
walletClient;
|
|
10
|
+
cachedVersion = null;
|
|
11
|
+
constructor(params) {
|
|
12
|
+
this.contractAddress = params.contractAddress;
|
|
13
|
+
this.chainId = Number(params.chainId);
|
|
14
|
+
if (params.walletClient) {
|
|
15
|
+
this.walletClient = params.walletClient;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async initialize(walletClient) {
|
|
19
|
+
if (walletClient) {
|
|
20
|
+
this.walletClient = walletClient;
|
|
21
|
+
}
|
|
22
|
+
this.service = new AirdropService_1.AirdropService({
|
|
23
|
+
contractAddress: this.contractAddress,
|
|
24
|
+
chainId: this.chainId,
|
|
25
|
+
walletClient: this.walletClient
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
isInitialized() {
|
|
29
|
+
return !!this.service;
|
|
30
|
+
}
|
|
31
|
+
async getVersion() {
|
|
32
|
+
if (this.cachedVersion) {
|
|
33
|
+
return this.cachedVersion;
|
|
34
|
+
}
|
|
35
|
+
if (!this.service)
|
|
36
|
+
throw new Error('Strategy not initialized');
|
|
37
|
+
this.cachedVersion = await this.service.getVersion();
|
|
38
|
+
return this.cachedVersion;
|
|
39
|
+
}
|
|
40
|
+
async claim(claimData) {
|
|
41
|
+
if (!this.service)
|
|
42
|
+
throw new Error('Strategy not initialized');
|
|
43
|
+
const { proof, group, data, value, extraData } = claimData;
|
|
44
|
+
return this.service.claim({
|
|
45
|
+
proof,
|
|
46
|
+
group,
|
|
47
|
+
data,
|
|
48
|
+
value,
|
|
49
|
+
extraData
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async checkClaimed(claimData) {
|
|
53
|
+
if (!this.service)
|
|
54
|
+
throw new Error('Strategy not initialized');
|
|
55
|
+
return this.service.isLeafUsed(claimData.leaf);
|
|
56
|
+
}
|
|
57
|
+
async batchCheckClaimed(leafs) {
|
|
58
|
+
if (!this.service)
|
|
59
|
+
throw new Error('Strategy not initialized');
|
|
60
|
+
return this.service.batchFetchClaimed(leafs);
|
|
61
|
+
}
|
|
62
|
+
async getNFT() {
|
|
63
|
+
if (!this.service)
|
|
64
|
+
throw new Error('Strategy not initialized');
|
|
65
|
+
return this.service.getNFT();
|
|
66
|
+
}
|
|
67
|
+
async getKycThreshold() {
|
|
68
|
+
if (!this.service)
|
|
69
|
+
throw new Error('Strategy not initialized');
|
|
70
|
+
return this.service.getKycThreshold();
|
|
71
|
+
}
|
|
72
|
+
async getClaimFee(contractAddress, amount) {
|
|
73
|
+
if (!this.service)
|
|
74
|
+
throw new Error('Strategy not initialized');
|
|
75
|
+
return this.service.getClaimFee(contractAddress, amount);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.EvmAirdropStrategy = EvmAirdropStrategy;
|
|
79
|
+
//# sourceMappingURL=EvmAirdropStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmAirdropStrategy.js","sourceRoot":"","sources":["../../../../src/airdrop/strategies/EvmAirdropStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IWalletClient } from '../types';
|
|
2
|
+
import { TonClient } from '@ton/ton';
|
|
3
|
+
export interface IAirdropStrategy {
|
|
4
|
+
getVersion(): Promise<string>;
|
|
5
|
+
claim(claimData: any, options?: {
|
|
6
|
+
onLoading?: () => void;
|
|
7
|
+
}): Promise<any>;
|
|
8
|
+
checkClaimed(claimData: any): Promise<boolean>;
|
|
9
|
+
isInitialized(): boolean;
|
|
10
|
+
initialize(walletClient?: IWalletClient): Promise<void>;
|
|
11
|
+
getPaused?(): Promise<boolean>;
|
|
12
|
+
batchCheckClaimed?(leafs: string[]): Promise<Array<{
|
|
13
|
+
result: boolean;
|
|
14
|
+
status: string;
|
|
15
|
+
}>>;
|
|
16
|
+
getNFT?(): Promise<string>;
|
|
17
|
+
getKycThreshold?(): Promise<bigint>;
|
|
18
|
+
getClaimFee?(contractAddress: string, amount: bigint): Promise<string | bigint>;
|
|
19
|
+
}
|
|
20
|
+
export interface IAirdropStrategyConstructor {
|
|
21
|
+
new (params: {
|
|
22
|
+
contractAddress: string;
|
|
23
|
+
chainId: string | number;
|
|
24
|
+
walletClient?: IWalletClient;
|
|
25
|
+
tonClient?: TonClient;
|
|
26
|
+
}): IAirdropStrategy;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAirdropStrategy.js","sourceRoot":"","sources":["../../../../src/airdrop/strategies/IAirdropStrategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAirdropStrategy } from './IAirdropStrategy';
|
|
2
|
+
export declare class StrategyCache {
|
|
3
|
+
private readOnlyStrategies;
|
|
4
|
+
private walletStrategies;
|
|
5
|
+
private getCacheKey;
|
|
6
|
+
getStrategy(contractAddress: string, chainId: string | number, chainType: string, hasWallet?: boolean): IAirdropStrategy | undefined;
|
|
7
|
+
setStrategy(contractAddress: string, chainId: string | number, chainType: string, strategy: IAirdropStrategy, hasWallet?: boolean): void;
|
|
8
|
+
clearStrategy(contractAddress: string, chainId: string | number, chainType: string, hasWallet?: boolean): void;
|
|
9
|
+
}
|
|
10
|
+
export declare const strategyCache: StrategyCache;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.strategyCache = exports.StrategyCache = void 0;
|
|
4
|
+
class StrategyCache {
|
|
5
|
+
readOnlyStrategies = new Map();
|
|
6
|
+
walletStrategies = new Map();
|
|
7
|
+
getCacheKey(contractAddress, chainId, chainType) {
|
|
8
|
+
return `${chainType}:${contractAddress}:${chainId}`;
|
|
9
|
+
}
|
|
10
|
+
getStrategy(contractAddress, chainId, chainType, hasWallet = false) {
|
|
11
|
+
const cache = hasWallet ? this.walletStrategies : this.readOnlyStrategies;
|
|
12
|
+
const cacheKey = this.getCacheKey(contractAddress, chainId, chainType);
|
|
13
|
+
return cache.get(cacheKey);
|
|
14
|
+
}
|
|
15
|
+
setStrategy(contractAddress, chainId, chainType, strategy, hasWallet = false) {
|
|
16
|
+
const cache = hasWallet ? this.walletStrategies : this.readOnlyStrategies;
|
|
17
|
+
const cacheKey = this.getCacheKey(contractAddress, chainId, chainType);
|
|
18
|
+
cache.set(cacheKey, strategy);
|
|
19
|
+
}
|
|
20
|
+
clearStrategy(contractAddress, chainId, chainType, hasWallet) {
|
|
21
|
+
const cacheKey = this.getCacheKey(contractAddress, chainId, chainType);
|
|
22
|
+
if (hasWallet === undefined || hasWallet) {
|
|
23
|
+
this.walletStrategies.delete(cacheKey);
|
|
24
|
+
}
|
|
25
|
+
if (hasWallet === undefined || !hasWallet) {
|
|
26
|
+
this.readOnlyStrategies.delete(cacheKey);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.StrategyCache = StrategyCache;
|
|
31
|
+
exports.strategyCache = new StrategyCache();
|
|
32
|
+
//# sourceMappingURL=StrategyCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrategyCache.js","sourceRoot":"","sources":["../../../../src/airdrop/strategies/StrategyCache.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAChB,kBAAkB,GAAkC,IAAI,GAAG,EAAE,CAAC;IAC9D,gBAAgB,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE5D,WAAW,CAAC,eAAuB,EAAE,OAAwB,EAAE,SAAiB;QACtF,OAAO,GAAG,SAAS,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,eAAuB,EAAE,OAAwB,EAAE,SAAiB,EAAE,YAAqB,KAAK;QAC1G,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,eAAuB,EAAE,OAAwB,EAAE,SAAiB,EAAE,QAA0B,EAAE,YAAqB,KAAK;QACtI,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,eAAuB,EAAE,OAAwB,EAAE,SAAiB,EAAE,SAAmB;QACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF;AA7BD,sCA6BC;AAEY,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|