@sign-global/tokentable 0.4.1-beta.9 → 0.4.2-beta.2
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/SignatureAirdropClient.d.ts +11 -2
- package/dist/cjs/airdrop/SignatureAirdropClient.js +50 -12
- package/dist/cjs/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/cjs/airdrop/constants/index.d.ts +1 -0
- package/dist/cjs/airdrop/constants/index.js +1 -0
- package/dist/cjs/airdrop/constants/index.js.map +1 -1
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.d.ts +2 -0
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js +12 -0
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
- package/dist/cjs/airdrop/contracts/evm/contracts/AirdropSignatureClient.js +1 -0
- package/dist/cjs/airdrop/contracts/evm/contracts/AirdropSignatureClient.js.map +1 -1
- package/dist/cjs/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.d.ts +17 -0
- package/dist/cjs/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.js +51 -0
- package/dist/cjs/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.js.map +1 -0
- package/dist/cjs/airdrop/contracts/evm/contracts/abis/FungibleTokenWithFeesECDSADistributor.json +260 -0
- package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js +3 -2
- package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/fee_collector.d.ts +1 -0
- package/dist/cjs/airdrop/contracts/solana/fee_collector.json +2 -1
- package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +1 -0
- package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -1
- package/dist/cjs/airdrop/index.d.ts +1 -0
- package/dist/cjs/airdrop/index.js +6 -1
- package/dist/cjs/airdrop/index.js.map +1 -1
- package/dist/cjs/airdrop/services/index.d.ts +4 -2
- package/dist/cjs/airdrop/services/index.js +8 -1
- package/dist/cjs/airdrop/services/index.js.map +1 -1
- package/dist/cjs/airdrop/types/index.d.ts +2 -1
- package/dist/cjs/airdrop/types/index.js +1 -0
- package/dist/cjs/airdrop/types/index.js.map +1 -1
- package/dist/esm/airdrop/SignatureAirdropClient.d.ts +11 -2
- package/dist/esm/airdrop/SignatureAirdropClient.js +51 -13
- package/dist/esm/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/esm/airdrop/constants/index.d.ts +1 -0
- package/dist/esm/airdrop/constants/index.js +1 -0
- package/dist/esm/airdrop/constants/index.js.map +1 -1
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.d.ts +2 -0
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js +12 -0
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
- package/dist/esm/airdrop/contracts/evm/contracts/AirdropSignatureClient.js +1 -0
- package/dist/esm/airdrop/contracts/evm/contracts/AirdropSignatureClient.js.map +1 -1
- package/dist/esm/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.d.ts +17 -0
- package/dist/esm/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.js +44 -0
- package/dist/esm/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.js.map +1 -0
- package/dist/esm/airdrop/contracts/evm/contracts/abis/FungibleTokenWithFeesECDSADistributor.json +260 -0
- package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js +4 -3
- package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/fee_collector.d.ts +1 -0
- package/dist/esm/airdrop/contracts/solana/fee_collector.json +2 -1
- package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +1 -0
- package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -1
- package/dist/esm/airdrop/index.d.ts +1 -0
- package/dist/esm/airdrop/index.js +1 -0
- package/dist/esm/airdrop/index.js.map +1 -1
- package/dist/esm/airdrop/services/index.d.ts +4 -2
- package/dist/esm/airdrop/services/index.js +6 -0
- package/dist/esm/airdrop/services/index.js.map +1 -1
- package/dist/esm/airdrop/types/index.d.ts +2 -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/SignatureAirdropClient.ts +58 -16
- package/src/airdrop/constants/index.ts +1 -0
- package/src/airdrop/contracts/evm/SignatureAirdropService.ts +15 -0
- package/src/airdrop/contracts/evm/contracts/AirdropSignatureClient.ts +2 -0
- package/src/airdrop/contracts/evm/contracts/AirdropSignatureFeeClient.ts +61 -0
- package/src/airdrop/contracts/evm/contracts/abis/FungibleTokenWithFeesECDSADistributor.json +260 -0
- package/src/airdrop/contracts/solana/AirdropSignatureClient.ts +4 -3
- package/src/airdrop/contracts/solana/fee_collector.json +2 -1
- package/src/airdrop/contracts/solana/fee_collector.ts +2 -1
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.json +2 -1
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.ts +2 -1
- package/src/airdrop/index.ts +6 -0
- package/src/airdrop/services/index.ts +10 -2
- package/src/airdrop/types/index.ts +2 -1
|
@@ -2,7 +2,7 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
2
2
|
import { SolanaContractClientBase } from './SolanaContractClient';
|
|
3
3
|
import IDL from './fungible_token_distributor_solana.json';
|
|
4
4
|
import * as anchor from '@coral-xyz/anchor';
|
|
5
|
-
import { TOKEN_2022_PROGRAM_ID
|
|
5
|
+
import { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
|
|
6
6
|
import { FeeCollectorClient } from './FeeCollectorClient';
|
|
7
7
|
import { fetchTokenVersion, getOrCreateAssociatedTokenAccount, hexStrToU8Array } from '../../../utils';
|
|
8
8
|
export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
@@ -64,8 +64,9 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
64
64
|
async getContractInfo() {
|
|
65
65
|
const airdropPDA = await this.getAirdropPDA();
|
|
66
66
|
const config = await this.fetchAccountData('airdrop', airdropPDA);
|
|
67
|
+
const version = await this.getVersion();
|
|
67
68
|
return {
|
|
68
|
-
version:
|
|
69
|
+
version: version,
|
|
69
70
|
token: config.token.toString(),
|
|
70
71
|
startTime: Number(config.startTime),
|
|
71
72
|
endTime: Number(config.endTime),
|
|
@@ -170,7 +171,7 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
170
171
|
fee: feePDA,
|
|
171
172
|
authorityFeeAta: null,
|
|
172
173
|
tokenProgram: tokenVersion?.programId || TOKEN_2022_PROGRAM_ID,
|
|
173
|
-
feeTokenProgram:
|
|
174
|
+
feeTokenProgram: null,
|
|
174
175
|
feeTokenMint: null
|
|
175
176
|
})
|
|
176
177
|
.transaction());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirdropSignatureClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/AirdropSignatureClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAC;AACtF,OAAO,GAAG,MAAM,0CAA0C,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"AirdropSignatureClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/AirdropSignatureClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { AirdropClient } from './AirdropClient';
|
|
2
2
|
export { SignatureAirdropClient } from './SignatureAirdropClient';
|
|
3
|
+
export { EvmSignatureAirdropService, SolanaSignatureAirdropService, EvmAirdropService, TonAirdropService } from './contracts';
|
|
3
4
|
export { CONST } from './constants';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { AirdropClient } from './AirdropClient';
|
|
2
2
|
export { SignatureAirdropClient } from './SignatureAirdropClient';
|
|
3
|
+
export { EvmSignatureAirdropService, SolanaSignatureAirdropService, EvmAirdropService, TonAirdropService } from './contracts';
|
|
3
4
|
export { CONST } from './constants';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/airdrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/airdrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -29,7 +29,7 @@ export declare const getJettonInfo: (data: {
|
|
|
29
29
|
interface SidResponse {
|
|
30
30
|
sid: string;
|
|
31
31
|
}
|
|
32
|
-
interface
|
|
32
|
+
interface SocialConnectParams {
|
|
33
33
|
code: string;
|
|
34
34
|
projectId: string;
|
|
35
35
|
}
|
|
@@ -42,7 +42,8 @@ interface WalletBindParams {
|
|
|
42
42
|
recipientType: string;
|
|
43
43
|
address: string;
|
|
44
44
|
}
|
|
45
|
-
export declare const connectTwitter: (data:
|
|
45
|
+
export declare const connectTwitter: (data: SocialConnectParams, baseURL?: string) => Promise<SidResponse>;
|
|
46
|
+
export declare const connectGoogleApi: (data: SocialConnectParams, baseURL?: string) => Promise<SidResponse>;
|
|
46
47
|
export declare const checkEligibility: (data: {
|
|
47
48
|
projectId: string;
|
|
48
49
|
}, baseURL?: string) => Promise<IAirdropSignatureData>;
|
|
@@ -56,6 +57,7 @@ export declare const disconnectRecipient: (data: DisconnectParams, baseURL?: str
|
|
|
56
57
|
export declare const checkGetSignatures: (data: {
|
|
57
58
|
projectId: string;
|
|
58
59
|
claimIds: string[];
|
|
60
|
+
recipient: string;
|
|
59
61
|
}, baseURL?: string) => Promise<{
|
|
60
62
|
signatures: IClaimSignature[];
|
|
61
63
|
}>;
|
|
@@ -45,6 +45,12 @@ export const connectTwitter = async (data, baseURL) => {
|
|
|
45
45
|
headers: getSidHeader(data.projectId)
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
|
+
export const connectGoogleApi = async (data, baseURL) => {
|
|
49
|
+
const client = createApiClient(baseURL);
|
|
50
|
+
return client.post('/airdrop-open/connect-google', data, {
|
|
51
|
+
headers: getSidHeader(data.projectId)
|
|
52
|
+
});
|
|
53
|
+
};
|
|
48
54
|
export const checkEligibility = async (data, baseURL) => {
|
|
49
55
|
const headers = getSidHeader(data.projectId);
|
|
50
56
|
if (!headers.sid)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,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,cAAc;IACpC,MAAM,aAAa,GAAG,GAAG,EAAE,SAAS,CAAC;IACrC,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,GAAG;QACN,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,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;AAEF,MAAM,CAAC,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;AAEF,MAAM,CAAC,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;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAqE,EACrE,OAAgB,EACU,EAAE;IAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,CAAC,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;AAqBF,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/services/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,7 +69,8 @@ export declare enum AirdropSigIdentityTypeEnum {
|
|
|
69
69
|
Twitter = "X Account",
|
|
70
70
|
SolanaWallet = "Solana Wallet",
|
|
71
71
|
EVMWallet = "EVM Wallet",
|
|
72
|
-
TONWallet = "TON Wallet"
|
|
72
|
+
TONWallet = "TON Wallet",
|
|
73
|
+
Google = "Google Account"
|
|
73
74
|
}
|
|
74
75
|
export interface IProjectExtra {
|
|
75
76
|
kyc: boolean;
|
|
@@ -10,6 +10,7 @@ export var AirdropSigIdentityTypeEnum;
|
|
|
10
10
|
AirdropSigIdentityTypeEnum["SolanaWallet"] = "Solana Wallet";
|
|
11
11
|
AirdropSigIdentityTypeEnum["EVMWallet"] = "EVM Wallet";
|
|
12
12
|
AirdropSigIdentityTypeEnum["TONWallet"] = "TON Wallet";
|
|
13
|
+
AirdropSigIdentityTypeEnum["Google"] = "Google Account";
|
|
13
14
|
})(AirdropSigIdentityTypeEnum || (AirdropSigIdentityTypeEnum = {}));
|
|
14
15
|
export var ETokenType;
|
|
15
16
|
(function (ETokenType) {
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,0BAMX;AAND,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,4DAA8B,CAAA;IAC9B,sDAAwB,CAAA;IACxB,sDAAwB,CAAA;IACxB,uDAAyB,CAAA;AAC3B,CAAC,EANW,0BAA0B,KAA1B,0BAA0B,QAMrC;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
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
bindWallet,
|
|
7
7
|
checkEligibility,
|
|
8
8
|
checkGetSignatures,
|
|
9
|
+
connectGoogleApi,
|
|
9
10
|
connectTwitter,
|
|
10
11
|
disconnectRecipient,
|
|
11
12
|
getAirdropProject
|
|
@@ -32,7 +33,7 @@ export class SignatureAirdropClient {
|
|
|
32
33
|
protected claims?: IAirdropSignatureClaim[];
|
|
33
34
|
protected identities?: IAirdropSignatureIdentity[];
|
|
34
35
|
private projectPromise: Promise<void> | undefined;
|
|
35
|
-
private
|
|
36
|
+
private authPromise: Promise<void> | undefined;
|
|
36
37
|
private strategyCache: Map<string, EvmSignatureAirdropService | SolanaSignatureAirdropService> = new Map();
|
|
37
38
|
constructor(params: IAirdropOptions) {
|
|
38
39
|
this.projectId = params.projectId;
|
|
@@ -43,7 +44,7 @@ export class SignatureAirdropClient {
|
|
|
43
44
|
this.projectPromise = this.initializeProjects();
|
|
44
45
|
}
|
|
45
46
|
if (isMobile()) {
|
|
46
|
-
this.
|
|
47
|
+
this.authPromise = this.checkAndHandleTwitterCode();
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -55,10 +56,17 @@ export class SignatureAirdropClient {
|
|
|
55
56
|
const code = urlParams.get('code');
|
|
56
57
|
const type = urlParams.get('type');
|
|
57
58
|
|
|
58
|
-
if (
|
|
59
|
-
|
|
59
|
+
if (code && this.projectId) {
|
|
60
|
+
let res;
|
|
61
|
+
if (type === 'twitter') {
|
|
62
|
+
res = await connectTwitter({ code, projectId: this.projectId }, this.endpoint);
|
|
63
|
+
} else if (type === 'google') {
|
|
64
|
+
res = await connectGoogleApi({ code, projectId: this.projectId }, this.endpoint);
|
|
65
|
+
}
|
|
60
66
|
if (res?.sid) {
|
|
61
67
|
this.setSid(this.projectId!, res.sid);
|
|
68
|
+
} else {
|
|
69
|
+
throw new Error('Failed to connect');
|
|
62
70
|
}
|
|
63
71
|
cleanUrlParams(['code', 'type']);
|
|
64
72
|
}
|
|
@@ -95,26 +103,43 @@ export class SignatureAirdropClient {
|
|
|
95
103
|
return this.project;
|
|
96
104
|
}
|
|
97
105
|
|
|
98
|
-
async
|
|
106
|
+
async connectOAuth({
|
|
107
|
+
onSuccess,
|
|
108
|
+
onError,
|
|
109
|
+
type
|
|
110
|
+
}: {
|
|
111
|
+
onSuccess: () => void;
|
|
112
|
+
onError: (error: Error) => void;
|
|
113
|
+
type: AirdropSigIdentityTypeEnum;
|
|
114
|
+
}) {
|
|
99
115
|
const project = await this.getProjectInfo();
|
|
100
|
-
const authorizeUrl = project.identities.find(
|
|
101
|
-
|
|
102
|
-
|
|
116
|
+
const authorizeUrl = project.identities.find((item: any) => item.identityType === type)?.authorizeUrl;
|
|
117
|
+
if (!authorizeUrl) {
|
|
118
|
+
onError(new Error('Authorize URL not found'));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
103
121
|
if (isMobile()) {
|
|
104
122
|
const state = encodeURIComponent(window.location.href);
|
|
105
123
|
window.location.href = `${authorizeUrl}&state=${state}`;
|
|
106
124
|
return;
|
|
107
125
|
}
|
|
108
126
|
const onWindowMessage = async (message: any) => {
|
|
109
|
-
|
|
127
|
+
const name = message.data?.name;
|
|
128
|
+
if (name && [CONST.TWITTER_AUTH_SUCCESS, CONST.GOOGLE_AUTH_SUCCESS].includes(name)) {
|
|
110
129
|
const { code } = message.data.data || {};
|
|
111
130
|
try {
|
|
112
|
-
|
|
113
|
-
|
|
131
|
+
let res;
|
|
132
|
+
if (name === CONST.GOOGLE_AUTH_SUCCESS) {
|
|
133
|
+
res = await connectGoogleApi({ code, projectId: project.id }, this.endpoint);
|
|
134
|
+
} else if (name === CONST.TWITTER_AUTH_SUCCESS) {
|
|
135
|
+
res = await connectTwitter({ code, projectId: project.id }, this.endpoint);
|
|
136
|
+
}
|
|
114
137
|
if (res?.sid) {
|
|
115
138
|
this.setSid(project.id, res?.sid);
|
|
139
|
+
onSuccess();
|
|
140
|
+
} else {
|
|
141
|
+
onError(new Error('Failed to connect'));
|
|
116
142
|
}
|
|
117
|
-
onSuccess();
|
|
118
143
|
} catch (error) {
|
|
119
144
|
onError(error as Error);
|
|
120
145
|
} finally {
|
|
@@ -127,6 +152,22 @@ export class SignatureAirdropClient {
|
|
|
127
152
|
window.open(`${authorizeUrl}&state=state`, `twitter_auth_${project.id}`, 'width=600,height=800');
|
|
128
153
|
}
|
|
129
154
|
|
|
155
|
+
async connectX({ onSuccess, onError }: { onSuccess: () => void; onError: (error: Error) => void }) {
|
|
156
|
+
await this.connectOAuth({
|
|
157
|
+
onSuccess,
|
|
158
|
+
onError,
|
|
159
|
+
type: AirdropSigIdentityTypeEnum.Twitter
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
async connectGoogle({ onSuccess, onError }: { onSuccess: () => void; onError: (error: Error) => void }) {
|
|
164
|
+
await this.connectOAuth({
|
|
165
|
+
onSuccess,
|
|
166
|
+
onError,
|
|
167
|
+
type: AirdropSigIdentityTypeEnum.Google
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
|
|
130
171
|
async connectWallet({
|
|
131
172
|
chainType,
|
|
132
173
|
onSuccess,
|
|
@@ -177,8 +218,8 @@ export class SignatureAirdropClient {
|
|
|
177
218
|
|
|
178
219
|
async getClaims() {
|
|
179
220
|
const project = await this.getProjectInfo();
|
|
180
|
-
if (this.
|
|
181
|
-
await this.
|
|
221
|
+
if (this.authPromise) {
|
|
222
|
+
await this.authPromise;
|
|
182
223
|
}
|
|
183
224
|
const res = await checkEligibility(
|
|
184
225
|
{
|
|
@@ -263,7 +304,7 @@ export class SignatureAirdropClient {
|
|
|
263
304
|
}: {
|
|
264
305
|
claimIds: string[];
|
|
265
306
|
walletClient: IWalletClient;
|
|
266
|
-
recipient
|
|
307
|
+
recipient: string;
|
|
267
308
|
}) {
|
|
268
309
|
if (!claimIds.length) {
|
|
269
310
|
throw new Error('Claim IDs cannot be empty');
|
|
@@ -279,7 +320,8 @@ export class SignatureAirdropClient {
|
|
|
279
320
|
const res = await checkGetSignatures(
|
|
280
321
|
{
|
|
281
322
|
claimIds,
|
|
282
|
-
projectId: this.projectId
|
|
323
|
+
projectId: this.projectId!,
|
|
324
|
+
recipient
|
|
283
325
|
},
|
|
284
326
|
this.endpoint
|
|
285
327
|
);
|
|
@@ -4,6 +4,7 @@ import { ChainId, EvmContractClientOption } from '../../types';
|
|
|
4
4
|
import { AirdropSignatureClient } from './contracts/AirdropSignatureClient';
|
|
5
5
|
import { DeployerClient } from './contracts/DeployClient';
|
|
6
6
|
import { FeeCollectorClient } from './contracts/FeeCollectorClient';
|
|
7
|
+
import { AirdropSignatureFeeClient } from './contracts/AirdropSignatureFeeClient';
|
|
7
8
|
|
|
8
9
|
export class SignatureAirdropService {
|
|
9
10
|
options: EvmContractClientOption;
|
|
@@ -18,6 +19,13 @@ export class SignatureAirdropService {
|
|
|
18
19
|
|
|
19
20
|
return new AirdropSignatureClient(this.options);
|
|
20
21
|
}
|
|
22
|
+
private get airdropWithFeeClient(): AirdropSignatureFeeClient {
|
|
23
|
+
if (!this.options) {
|
|
24
|
+
throw new Error('options is empty');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return new AirdropSignatureFeeClient(this.options);
|
|
28
|
+
}
|
|
21
29
|
|
|
22
30
|
async getDeployerClient(): Promise<DeployerClient> {
|
|
23
31
|
const deployer = await this.getDeployer();
|
|
@@ -86,10 +94,17 @@ export class SignatureAirdropService {
|
|
|
86
94
|
claimId: string;
|
|
87
95
|
data: string;
|
|
88
96
|
signature: string;
|
|
97
|
+
fees?: string;
|
|
89
98
|
extraData?: string;
|
|
90
99
|
}[],
|
|
91
100
|
recipient?: string
|
|
92
101
|
) {
|
|
102
|
+
const version = await this.getVersion();
|
|
103
|
+
|
|
104
|
+
if (version.includes('FungibleTokenWithFeesECDSADistributor')) {
|
|
105
|
+
const totalFees = data.map((item) => BigInt(item.fees || '0')).reduce((sum, fee) => sum + fee, BigInt(0));
|
|
106
|
+
return this.airdropWithFeeClient.claim(data, totalFees);
|
|
107
|
+
}
|
|
93
108
|
const defaultRecipient = this.options.walletClient?.account?.address;
|
|
94
109
|
const delegateMode = recipient ? getAddress(recipient) !== defaultRecipient : false;
|
|
95
110
|
const feeData = (await this.getClaimFee(this.options.contractAddress, 1n)) || 0n;
|
|
@@ -32,6 +32,8 @@ export class AirdropSignatureClient extends ContractBaseClient {
|
|
|
32
32
|
'extraData'
|
|
33
33
|
].map((key) => data.map((item) => item[key as keyof (typeof data)[0]] || ''));
|
|
34
34
|
|
|
35
|
+
console.log('params', [recipients, userClaimIds, datas, signatures, extraDatas], value);
|
|
36
|
+
|
|
35
37
|
return this.writeContract({
|
|
36
38
|
functionName: 'claim',
|
|
37
39
|
args: [recipients, userClaimIds, datas, signatures, extraDatas],
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { EvmContractClientOption } from '../../../types';
|
|
2
|
+
import ABI from './abis/FungibleTokenWithFeesECDSADistributor.json';
|
|
3
|
+
import { ContractBaseClient } from './ContractBaseClient';
|
|
4
|
+
|
|
5
|
+
export class AirdropSignatureFeeClient extends ContractBaseClient {
|
|
6
|
+
constructor(options: EvmContractClientOption) {
|
|
7
|
+
super({
|
|
8
|
+
...options,
|
|
9
|
+
abi: ABI
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async getClaimStatus(userClaimId: string) {
|
|
14
|
+
return this.readContract({ functionName: 'getClaimStatus', args: [userClaimId] });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async claim(
|
|
18
|
+
data: {
|
|
19
|
+
recipient: string;
|
|
20
|
+
data: string;
|
|
21
|
+
claimId: string;
|
|
22
|
+
signature: string;
|
|
23
|
+
extraData?: string;
|
|
24
|
+
}[],
|
|
25
|
+
value?: bigint
|
|
26
|
+
) {
|
|
27
|
+
const [recipients = [], userClaimIds = [], datas = [], signatures = [], extraDatas = []] = [
|
|
28
|
+
'recipient',
|
|
29
|
+
'claimId',
|
|
30
|
+
'data',
|
|
31
|
+
'signature',
|
|
32
|
+
'extraData'
|
|
33
|
+
].map((key) => data.map((item) => item[key as keyof (typeof data)[0]] || ''));
|
|
34
|
+
|
|
35
|
+
return this.writeContract({
|
|
36
|
+
functionName: 'claim',
|
|
37
|
+
args: [recipients, userClaimIds, datas, signatures, extraDatas],
|
|
38
|
+
value: value || 0n
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async batchFetchClaimed(userClaimIds: string[]) {
|
|
43
|
+
const res = (await this.readContract({ functionName: 'getClaimStatus', args: [userClaimIds] })) as boolean[];
|
|
44
|
+
return res;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async getDeployer() {
|
|
48
|
+
const res = (await this.readContract({ functionName: 'getStorage' })) as any[];
|
|
49
|
+
return res?.[3] as string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async getVersion() {
|
|
53
|
+
const res = (await this.readContract({ functionName: 'getStorage' })) as any[];
|
|
54
|
+
return res?.[0];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async getPaused() {
|
|
58
|
+
const res = (await this.readContract({ functionName: 'getStorage' })) as any[];
|
|
59
|
+
return res?.[2] as boolean;
|
|
60
|
+
}
|
|
61
|
+
}
|