@sign-global/tokentable 0.4.1-beta.3 → 0.4.1-beta.5

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 (62) hide show
  1. package/dist/cjs/airdrop/SignatureAirdropClient.d.ts +3 -1
  2. package/dist/cjs/airdrop/SignatureAirdropClient.js +31 -15
  3. package/dist/cjs/airdrop/SignatureAirdropClient.js.map +1 -1
  4. package/dist/cjs/airdrop/common/index.d.ts +35 -0
  5. package/dist/cjs/airdrop/constants/chain-config.d.ts +36 -0
  6. package/dist/cjs/airdrop/constants/chain-config.js +5 -0
  7. package/dist/cjs/airdrop/constants/chain-config.js.map +1 -1
  8. package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.d.ts +1 -1
  9. package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js +6 -1
  10. package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
  11. package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.d.ts +1 -0
  12. package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js +3 -6
  13. package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
  14. package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.d.ts +1 -0
  15. package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.js +5 -0
  16. package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.js.map +1 -1
  17. package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.d.ts +2 -2
  18. package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.js +3 -9
  19. package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.js.map +1 -1
  20. package/dist/cjs/airdrop/contracts/solana/fee_collector.d.ts +601 -352
  21. package/dist/cjs/airdrop/contracts/solana/fee_collector.json +1 -1
  22. package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +939 -504
  23. package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -2
  24. package/dist/cjs/airdrop/types/index.d.ts +4 -3
  25. package/dist/cjs/airdrop/types/index.js.map +1 -1
  26. package/dist/esm/airdrop/SignatureAirdropClient.d.ts +3 -1
  27. package/dist/esm/airdrop/SignatureAirdropClient.js +31 -15
  28. package/dist/esm/airdrop/SignatureAirdropClient.js.map +1 -1
  29. package/dist/esm/airdrop/common/index.d.ts +35 -0
  30. package/dist/esm/airdrop/constants/chain-config.d.ts +36 -0
  31. package/dist/esm/airdrop/constants/chain-config.js +6 -1
  32. package/dist/esm/airdrop/constants/chain-config.js.map +1 -1
  33. package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.d.ts +1 -1
  34. package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js +6 -1
  35. package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
  36. package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.d.ts +1 -0
  37. package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js +3 -6
  38. package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
  39. package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.d.ts +1 -0
  40. package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.js +5 -0
  41. package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.js.map +1 -1
  42. package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.d.ts +2 -2
  43. package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.js +3 -9
  44. package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.js.map +1 -1
  45. package/dist/esm/airdrop/contracts/solana/fee_collector.d.ts +601 -352
  46. package/dist/esm/airdrop/contracts/solana/fee_collector.json +1 -1
  47. package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +939 -504
  48. package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -2
  49. package/dist/esm/airdrop/types/index.d.ts +4 -3
  50. package/dist/esm/airdrop/types/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/airdrop/SignatureAirdropClient.ts +44 -24
  53. package/src/airdrop/constants/chain-config.ts +7 -2
  54. package/src/airdrop/contracts/evm/SignatureAirdropService.ts +6 -1
  55. package/src/airdrop/contracts/solana/AirdropSignatureClient.ts +4 -20
  56. package/src/airdrop/contracts/solana/FeeCollectorClient.ts +6 -0
  57. package/src/airdrop/contracts/solana/SignatureAirdropService.ts +4 -10
  58. package/src/airdrop/contracts/solana/fee_collector.json +1 -1
  59. package/src/airdrop/contracts/solana/fee_collector.ts +679 -430
  60. package/src/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -2
  61. package/src/airdrop/contracts/solana/fungible_token_distributor_solana.ts +1049 -614
  62. package/src/airdrop/types/index.ts +4 -2
@@ -1,5 +1,5 @@
1
1
  {
2
- "address": "EA9xKVuSHRae4wyrBSB1Hi22fgeti36S9kM6fVM2YYZb",
2
+ "address": "FCkSnf5Qd5Jva3ZdjFNGyZNhpCxmvjikXDkpWgE1vD3R",
3
3
  "metadata": {
4
4
  "name": "fungible_token_distributor_solana",
5
5
  "version": "0.1.0",
@@ -207,7 +207,7 @@
207
207
  {
208
208
  "name": "fee_collector",
209
209
  "optional": true,
210
- "address": "88vcxLLBpjFMdmErmhxnHHnQMz5XYyNcRmmp41kQH65b"
210
+ "address": "4dfP4CMvznzUuuYLhybXy71zasrhtjrFkChSFjtqS3on"
211
211
  },
212
212
  {
213
213
  "name": "user_fee",
@@ -1,8 +1,9 @@
1
- import { TonConnectUI } from '@tonconnect/ui-react';
1
+ import { TonConnectUI as TonWalletClient } from '@tonconnect/ui-react';
2
2
  import { AirdropService as TonAirdropService } from '../contracts/ton/AirdropService';
3
3
  import { AirdropService as EvmAirdropService } from '../contracts/evm/AirdropService';
4
4
  import { ChainConfig } from '../constants';
5
5
  import { WalletClient as ViemWalletClient } from 'viem';
6
+ import { WalletContextState as SolanaWalletState } from '@solana/wallet-adapter-react';
6
7
  export type ChainId = keyof typeof ChainConfig;
7
8
  export interface EvmContractClientOption {
8
9
  chainId: ChainId;
@@ -143,7 +144,8 @@ export declare enum EvmAirdropVersionEnum {
143
144
  V3 = "0.3.0",// zeta 收费
144
145
  V4 = "0.4.0"
145
146
  }
146
- export type IWalletClient = TonConnectUI | ViemWalletClient;
147
+ export type IWalletClient = TonWalletClient | ViemWalletClient | SolanaWalletState;
148
+ export type { TonWalletClient, ViemWalletClient, SolanaWalletState };
147
149
  export type IAirdropService = TonAirdropService | EvmAirdropService;
148
150
  type BaseAirdropOptions = {
149
151
  endpoint?: string;
@@ -166,4 +168,3 @@ export interface IContractConfig {
166
168
  export declare enum ErrorCode {
167
169
  WALLET_ALREADY_CONNECTED = "Wallet already connected"
168
170
  }
169
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/types/index.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAsDD,MAAM,CAAN,IAAY,0BAKX;AALD,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,4DAA8B,CAAA;IAC9B,sDAAwB,CAAA;IACxB,sDAAwB,CAAA;AAC1B,CAAC,EALW,0BAA0B,KAA1B,0BAA0B,QAKrC;AAUD,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,4BAAc,CAAA;AAChB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA6DD,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;AACrB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,qCAAY,CAAA,CAAC,yBAAyB;AACxC,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AA6BD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,6BAA6B;IAC7B,kEAAqD,CAAA;AACvD,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/types/index.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAsDD,MAAM,CAAN,IAAY,0BAKX;AALD,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,4DAA8B,CAAA;IAC9B,sDAAwB,CAAA;IACxB,sDAAwB,CAAA;AAC1B,CAAC,EALW,0BAA0B,KAA1B,0BAA0B,QAKrC;AAUD,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,4BAAc,CAAA;AAChB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA6DD,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;AACrB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,qCAAY,CAAA,CAAC,yBAAyB;AACxC,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AA8BD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,6BAA6B;IAC7B,kEAAqD,CAAA;AACvD,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sign-global/tokentable",
3
- "version": "0.4.1-beta.3",
3
+ "version": "0.4.1-beta.5",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,4 +1,3 @@
1
- import { getAddress } from 'viem';
2
1
  import { CONST } from './constants';
3
2
  import { EvmSignatureAirdropService, SolanaSignatureAirdropService } from './contracts';
4
3
  import { WalletFactory } from '../wallets';
@@ -20,7 +19,9 @@ import {
20
19
  IAirdropSignatureIdentity,
21
20
  IClaimSignature,
22
21
  IProject,
23
- IWalletClient
22
+ IWalletClient,
23
+ SolanaWalletState,
24
+ ViemWalletClient
24
25
  } from './types';
25
26
  import { cleanUrlParams, isMobile } from '../utils';
26
27
 
@@ -31,6 +32,8 @@ export class SignatureAirdropClient {
31
32
  protected claims?: IAirdropSignatureClaim[];
32
33
  protected identities?: IAirdropSignatureIdentity[];
33
34
  private projectPromise: Promise<void> | undefined;
35
+ private twitterPromise: Promise<void> | undefined;
36
+ private strategyCache: Map<string, EvmSignatureAirdropService | SolanaSignatureAirdropService> = new Map();
34
37
  constructor(params: IAirdropOptions) {
35
38
  this.projectId = params.projectId;
36
39
  this.endpoint = params.endpoint;
@@ -40,7 +43,7 @@ export class SignatureAirdropClient {
40
43
  this.projectPromise = this.initializeProjects();
41
44
  }
42
45
  if (isMobile()) {
43
- this.checkAndHandleTwitterCode();
46
+ this.twitterPromise = this.checkAndHandleTwitterCode();
44
47
  }
45
48
  }
46
49
 
@@ -57,7 +60,7 @@ export class SignatureAirdropClient {
57
60
  if (res?.sid) {
58
61
  this.setSid(this.projectId!, res.sid);
59
62
  }
60
- cleanUrlParams(['code', 'state']);
63
+ cleanUrlParams(['code', 'type']);
61
64
  }
62
65
  } catch (error) {
63
66
  console.error(error);
@@ -174,6 +177,9 @@ export class SignatureAirdropClient {
174
177
 
175
178
  async getClaims() {
176
179
  const project = await this.getProjectInfo();
180
+ if (this.twitterPromise) {
181
+ await this.twitterPromise;
182
+ }
177
183
  const res = await checkEligibility(
178
184
  {
179
185
  projectId: project.id
@@ -208,19 +214,32 @@ export class SignatureAirdropClient {
208
214
  ): Promise<EvmSignatureAirdropService | SolanaSignatureAirdropService> {
209
215
  const project = await this.getProjectInfo();
210
216
 
211
- if (project.chainType === ChainType.Solana) {
212
- return new SolanaSignatureAirdropService({
213
- chainId: project.chainId,
214
- projectId: project.id,
215
- token: project.tokenAddress,
216
- walletClient: walletClient as any
217
- });
217
+ const cacheKey = walletClient
218
+ ? project.chainType === ChainType.Evm
219
+ ? (walletClient as ViemWalletClient).account?.address!
220
+ : project.chainType === ChainType.Solana
221
+ ? (walletClient as SolanaWalletState).publicKey!.toString()
222
+ : 'walletClient'
223
+ : 'default';
224
+ if (this.strategyCache.has(cacheKey)) {
225
+ return this.strategyCache.get(cacheKey)!;
218
226
  }
219
- return new EvmSignatureAirdropService({
220
- chainId: Number(project.chainId) as ChainId,
221
- contractAddress: project.contractAddress,
222
- walletClient: walletClient as any
223
- });
227
+
228
+ const strategy =
229
+ project.chainType === ChainType.Solana
230
+ ? new SolanaSignatureAirdropService({
231
+ chainId: project.chainId,
232
+ projectId: project.id,
233
+ token: project.tokenAddress,
234
+ walletClient: walletClient as any
235
+ })
236
+ : new EvmSignatureAirdropService({
237
+ chainId: Number(project.chainId) as ChainId,
238
+ contractAddress: project.contractAddress,
239
+ walletClient: walletClient as any
240
+ });
241
+ this.strategyCache.set(cacheKey, strategy);
242
+ return strategy;
224
243
  }
225
244
 
226
245
  async getVersion(): Promise<string> {
@@ -228,7 +247,7 @@ export class SignatureAirdropClient {
228
247
  return strategy.getVersion();
229
248
  }
230
249
 
231
- async getClaimFee(amount?: bigint): Promise<undefined | bigint> {
250
+ async getClaimFee(amount?: bigint): Promise<undefined | bigint | string> {
232
251
  const strategy = await this.getStrategy();
233
252
  if (!strategy.getClaimFee) {
234
253
  throw new Error('getClaimFee is not supported for this chain');
@@ -255,6 +274,7 @@ export class SignatureAirdropClient {
255
274
  throw new Error('No claims available');
256
275
  }
257
276
  const service = await this.getStrategy(walletClient);
277
+ const project = await this.getProjectInfo();
258
278
  const res = await checkGetSignatures(
259
279
  {
260
280
  claimIds,
@@ -274,6 +294,10 @@ export class SignatureAirdropClient {
274
294
  throw new Error('No matching claims found');
275
295
  }
276
296
 
297
+ // only evm use
298
+ const defaultRecipient =
299
+ project.chainType === ChainType.Evm ? (walletClient as ViemWalletClient).account?.address! : '';
300
+
277
301
  const claimData = filteredClaims.map((it) => {
278
302
  const signature = signatureMap[it.claimId];
279
303
  if (!signature) {
@@ -282,16 +306,12 @@ export class SignatureAirdropClient {
282
306
 
283
307
  return {
284
308
  ...it,
285
- recipient: recipient ? recipient : walletClient.account?.address!,
309
+ recipient: recipient ? recipient : defaultRecipient,
286
310
  ...signature
287
311
  };
288
312
  });
289
- const delegateMode = recipient ? getAddress(recipient) !== walletClient.account?.address : false;
290
- const feeData = (await this.getClaimFee(1n)) || 0n;
291
- const hash = (await service!.claim(
292
- claimData,
293
- delegateMode ? feeData * BigInt(claimData.length) : feeData
294
- )) as `0x${string}`;
313
+
314
+ const hash = (await service!.claim(claimData, recipient)) as `0x${string}`;
295
315
  return hash;
296
316
  }
297
317
 
@@ -4,7 +4,6 @@ import {
4
4
  baseSepolia,
5
5
  cyber,
6
6
  mainnet,
7
- mantaTestnet,
8
7
  polygonMumbai,
9
8
  polygonAmoy,
10
9
  sepolia,
@@ -12,7 +11,8 @@ import {
12
11
  zetachainAthensTestnet,
13
12
  zkSync,
14
13
  bsc,
15
- berachainTestnet
14
+ berachainTestnet,
15
+ arbitrum
16
16
  } from 'viem/chains';
17
17
  import { mevmDevNet, tonMainNet, tonTestNet } from './network';
18
18
 
@@ -49,6 +49,10 @@ export const ChainConfig = {
49
49
  contractAddress: '0x00aFD4466E4Afa4F43cCd414b1BC65e574ACA2f5',
50
50
  rpcUrl: 'https://zetachain-mainnet.g.alchemy.com/v2/1tmk0FrhwTJHXh0XIyae7_SXw1lDCjgs'
51
51
  },
52
+ [arbitrum.id]: {
53
+ contractAddress: '0x759ac3CA33FeeAfB8C41aEbC8687A7Bd849Fc87a',
54
+ rpcUrl: arbitrum.rpcUrls.default.http[0]
55
+ },
52
56
  [berachainTestnet.id]: {
53
57
  contractAddress: '',
54
58
  rpcUrl: '',
@@ -97,6 +101,7 @@ export const SupportedChains = [
97
101
  polygonMumbai,
98
102
  polygonAmoy,
99
103
  mevmDevNet,
104
+ arbitrum,
100
105
  tonTestNet,
101
106
  tonMainNet
102
107
  ];
@@ -1,3 +1,4 @@
1
+ import { getAddress } from 'viem';
1
2
  import { ZERO_ADDRESS } from '../../constants';
2
3
  import { ChainId, EvmContractClientOption } from '../../types';
3
4
  import { AirdropSignatureClient } from './contracts/AirdropSignatureClient';
@@ -87,8 +88,12 @@ export class SignatureAirdropService {
87
88
  signature: string;
88
89
  extraData?: string;
89
90
  }[],
90
- value?: bigint
91
+ recipient?: string
91
92
  ) {
93
+ const defaultRecipient = this.options.walletClient?.account?.address;
94
+ const delegateMode = recipient ? getAddress(recipient) !== defaultRecipient : false;
95
+ const feeData = (await this.getClaimFee(this.options.contractAddress, 1n)) || 0n;
96
+ const value = delegateMode ? feeData * BigInt(data.length) : feeData;
92
97
  return this.airdropClient.claim(data, value);
93
98
  }
94
99
  }
@@ -29,6 +29,10 @@ export class AirdropSignatureClient extends SolanaContractClientBase<FungibleTok
29
29
  });
30
30
  }
31
31
 
32
+ async getClaimFee() {
33
+ return this.FeeCollector.getClaimFee();
34
+ }
35
+
32
36
  async getStoragePDA(): Promise<PublicKey> {
33
37
  const [storagePDA] = await this.findProgramAddress([
34
38
  anchor.utils.bytes.utf8.encode('storage'),
@@ -172,32 +176,12 @@ export class AirdropSignatureClient extends SolanaContractClientBase<FungibleTok
172
176
  })
173
177
  );
174
178
 
175
- console.log(
176
- anchor.web3.Ed25519Program.programId.toString(),
177
- {
178
- publicKey: new PublicKey(config.signer).toBytes(),
179
- message: Uint8Array.from(hexStrToU8Array(claim.hash)),
180
- signature: new Uint8Array(hexStrToU8Array(claim.signature))
181
- },
182
- 'sign'
183
- );
184
-
185
179
  const claimPDA = await this.getClaimPDA(claim.claimId);
186
180
 
187
181
  const decodedData = {
188
182
  claimableTimestamp: new anchor.BN(claim.unlockingAt),
189
183
  claimableAmount: new anchor.BN(claim.value)
190
184
  };
191
- console.log(
192
- airdropPDA.toString(),
193
- claimPDA,
194
- this.projectId,
195
- new Uint8Array(hexStrToU8Array(claim.claimId)),
196
- [],
197
- decodedData,
198
- Buffer.from(hexStrToU8Array(claim.signature)),
199
- 'txdata'
200
- );
201
185
 
202
186
  tx.add(
203
187
  await this.program.methods
@@ -31,4 +31,10 @@ export class FeeCollectorClient extends SolanaContractClientBase<FeeCollector> {
31
31
  async setDefaultFee(fee: string) {
32
32
  return this.invokeInstruction('setDefaultFee', {}, [new anchor.BN(fee)]);
33
33
  }
34
+
35
+ async getClaimFee(): Promise<string> {
36
+ const storagePDA = await this.getStoragePDA();
37
+ const storageData = await this.program.account.feeCollectorStorage.fetch(storagePDA);
38
+ return storageData.defaultFeesBips.toString();
39
+ }
34
40
  }
@@ -39,15 +39,9 @@ export class SignatureAirdropService {
39
39
  return '';
40
40
  }
41
41
 
42
- async getClaimFee(address: string, amount: bigint): Promise<bigint | undefined> {
43
- // const feeCollector = await this.feeCollectors(this.options.contractAddress as string);
44
- // if (!feeCollector || feeCollector === ZERO_ADDRESS) {
45
- // return undefined;
46
- // }
47
- // const feeClient = this.getFeeClient(feeCollector as string);
48
- // const fee = (await feeClient.getFee(address, amount)) as bigint;
49
- // return fee;
50
- return 0n;
42
+ async getClaimFee(address: string, amount: bigint): Promise<string> {
43
+ const fee = this.airdropClient.getClaimFee();
44
+ return fee;
51
45
  }
52
46
 
53
47
  async batchFetchClaimed(userClaimIds: string[]): Promise<boolean[]> {
@@ -70,7 +64,7 @@ export class SignatureAirdropService {
70
64
  value: string;
71
65
  hash: string;
72
66
  }[],
73
- value?: bigint
67
+ recipient?: string
74
68
  ) {
75
69
  return this.airdropClient.claim(data);
76
70
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "address": "88vcxLLBpjFMdmErmhxnHHnQMz5XYyNcRmmp41kQH65b",
2
+ "address": "4dfP4CMvznzUuuYLhybXy71zasrhtjrFkChSFjtqS3on",
3
3
  "metadata": {
4
4
  "name": "fee_collector",
5
5
  "version": "0.1.0",