@sign-global/tokentable 0.4.0-beta.8 → 0.4.0
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/AirdropClient.js +2 -9
- package/dist/cjs/airdrop/AirdropClient.js.map +1 -1
- package/dist/cjs/airdrop/SignatureAirdropClient.d.ts +6 -21
- package/dist/cjs/airdrop/SignatureAirdropClient.js +22 -94
- package/dist/cjs/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.d.ts +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js +3 -6
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js.map +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.d.ts +1 -2
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js +4 -6
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js.map +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.d.ts +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js +3 -6
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js.map +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.d.ts +1 -1
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js +9 -10
- package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js.map +1 -1
- package/dist/cjs/airdrop/services/index.d.ts +8 -19
- package/dist/cjs/airdrop/services/index.js +5 -27
- package/dist/cjs/airdrop/services/index.js.map +1 -1
- package/dist/cjs/airdrop/types/index.d.ts +0 -22
- package/dist/cjs/airdrop/types/index.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/api-client.d.ts +0 -1
- package/dist/cjs/utils/api-client.js +2 -2
- package/dist/cjs/utils/api-client.js.map +1 -1
- package/dist/esm/airdrop/AirdropClient.js +2 -9
- package/dist/esm/airdrop/AirdropClient.js.map +1 -1
- package/dist/esm/airdrop/SignatureAirdropClient.d.ts +6 -21
- package/dist/esm/airdrop/SignatureAirdropClient.js +23 -95
- package/dist/esm/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.d.ts +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js +3 -6
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js.map +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.d.ts +1 -2
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js +5 -7
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js.map +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.d.ts +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js +3 -6
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js.map +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.d.ts +1 -1
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js +9 -10
- package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js.map +1 -1
- package/dist/esm/airdrop/services/index.d.ts +8 -19
- package/dist/esm/airdrop/services/index.js +4 -25
- package/dist/esm/airdrop/services/index.js.map +1 -1
- package/dist/esm/airdrop/types/index.d.ts +0 -22
- package/dist/esm/airdrop/types/index.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/api-client.d.ts +0 -1
- package/dist/esm/utils/api-client.js +2 -2
- package/dist/esm/utils/api-client.js.map +1 -1
- package/package.json +3 -3
- package/src/airdrop/AirdropClient.ts +2 -8
- package/src/airdrop/SignatureAirdropClient.ts +29 -141
- package/src/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.ts +3 -6
- package/src/airdrop/core/useWeb3ConnectWallet/providers/evm/index.tsx +5 -18
- package/src/airdrop/core/useWeb3ConnectWallet/providers/solana/index.tsx +3 -6
- package/src/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.ts +12 -16
- package/src/airdrop/services/index.ts +18 -59
- package/src/airdrop/types/index.ts +1 -25
- package/src/index.ts +1 -9
- package/src/utils/api-client.ts +2 -3
- package/dist/cjs/airdrop/core/evm/SignatureAirdropService.d.ts +0 -23
- package/dist/cjs/airdrop/core/evm/SignatureAirdropService.js +0 -71
- package/dist/cjs/airdrop/core/evm/SignatureAirdropService.js.map +0 -1
- package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.d.ts +0 -16
- package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.js +0 -47
- package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.js.map +0 -1
- package/dist/cjs/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +0 -564
- package/dist/esm/airdrop/core/evm/SignatureAirdropService.d.ts +0 -23
- package/dist/esm/airdrop/core/evm/SignatureAirdropService.js +0 -67
- package/dist/esm/airdrop/core/evm/SignatureAirdropService.js.map +0 -1
- package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.d.ts +0 -16
- package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.js +0 -40
- package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.js.map +0 -1
- package/dist/esm/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +0 -564
- package/src/airdrop/core/evm/SignatureAirdropService.ts +0 -90
- package/src/airdrop/core/evm/contracts/AirdropSignatureClient.ts +0 -56
- package/src/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +0 -564
|
@@ -37,7 +37,7 @@ export class TonWallet extends WalletBase {
|
|
|
37
37
|
// const walletInfo = tonConnectUI?.wallet;
|
|
38
38
|
const authType = '';
|
|
39
39
|
// if (walletInfo?.jsBridgeKey && walletInfo?.openMethod !== 'qrcode') {
|
|
40
|
-
// authType = walletInfo.jsBridgeKey;
|
|
40
|
+
// authType = walletInfo.jsBridgeKey;
|
|
41
41
|
// }
|
|
42
42
|
console.log(this.isConnected, tonConnectUI, 'connected');
|
|
43
43
|
if (this.isConnected) {
|
|
@@ -47,6 +47,7 @@ export class TonWallet extends WalletBase {
|
|
|
47
47
|
if (authType) {
|
|
48
48
|
const wallets = await tonConnectUI.getWallets();
|
|
49
49
|
const currentWallet = wallets.find((wallet) => [wallet.name, wallet.appName].includes(authType));
|
|
50
|
+
console.log(wallets, currentWallet, 'ww');
|
|
50
51
|
const link = tonConnectUI.connector.connect({
|
|
51
52
|
bridgeUrl: currentWallet.bridgeUrl,
|
|
52
53
|
universalLink: currentWallet.universalLink
|
|
@@ -95,15 +96,13 @@ export class TonWallet extends WalletBase {
|
|
|
95
96
|
tonProof: message
|
|
96
97
|
};
|
|
97
98
|
}
|
|
98
|
-
async signin(statement
|
|
99
|
-
const fullMessage =
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
: statement;
|
|
106
|
-
const signRes = await this.sign(fullMessage);
|
|
99
|
+
async signin(statement) {
|
|
100
|
+
const fullMessage = {
|
|
101
|
+
statement: statement || 'Welcome to EthSign',
|
|
102
|
+
issuedAt: new Date().toISOString(),
|
|
103
|
+
nonce: getCustomNaNoId()
|
|
104
|
+
};
|
|
105
|
+
const signRes = await this.sign(JSON.stringify(fullMessage, null, ' '));
|
|
107
106
|
return signRes;
|
|
108
107
|
}
|
|
109
108
|
getStore() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TonWallet.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,KAAK,EAA0C,qBAAqB,EAAU,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAUhC,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,OAAO,SAAU,SAAQ,UAAwB;IACrD,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACrC,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"TonWallet.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,KAAK,EAA0C,qBAAqB,EAAU,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAUhC,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,OAAO,SAAU,SAAQ,UAAwB;IACrD,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACrC,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAA4B,CAAC;QAC3D,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI;QAEJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;QACD,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;YAEhD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5C,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC7B,CAAC;YAEtB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YAE1C,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CACzC;gBACE,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,aAAa,EAAE,aAAa,CAAC,aAAa;aAC3C,EACD;gBACE,QAAQ,EAAE,OAAO;aAClB,CACF,CAAC;YAEF,kBAAkB;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,YAAY,CAAC,2BAA2B,CAAC;gBACvC,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE;oBACL,QAAQ,EAAE,OAAO,CAAC,aAAa;iBAChC;aACF,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,MAAM,eAAe,GAAW,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC;QACtC,MAAM,KAAK,GAAI,eAAe,CAAC,YAAY,EAAE,QAAqC,EAAE,KAAK,CAAC;QAC1F,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,kCAAkC;QACpJ,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,WAAW;gBACX,OAAO,EAAE,SAAS;aACnB,CAAC;YACF,SAAS;YACT,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,SAAkB;QACtC,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,SAAS,IAAI,oBAAoB;YAC5C,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,KAAK,EAAE,eAAe,EAAE;SACzB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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: {
|
|
@@ -26,29 +26,18 @@ export declare const getJettonInfo: (data: {
|
|
|
26
26
|
address: string;
|
|
27
27
|
isTestnet: "true" | "false";
|
|
28
28
|
}, baseURL?: string) => Promise<any>;
|
|
29
|
-
|
|
30
|
-
sid: string;
|
|
31
|
-
}
|
|
32
|
-
interface TwitterConnectParams {
|
|
29
|
+
export declare const connectTwitter: (data: {
|
|
33
30
|
code: string;
|
|
31
|
+
redirectUri: string;
|
|
32
|
+
}, baseURL?: string) => Promise<unknown>;
|
|
33
|
+
export declare const checkEligibility: (data: {
|
|
34
34
|
projectId: string;
|
|
35
|
-
}
|
|
36
|
-
|
|
35
|
+
}, baseURL?: string) => Promise<unknown>;
|
|
36
|
+
export declare const bindWallet: (data: {
|
|
37
37
|
projectId: string;
|
|
38
38
|
key: string;
|
|
39
39
|
signature: string;
|
|
40
40
|
message: string;
|
|
41
41
|
timestamp: number;
|
|
42
42
|
recipientType: string;
|
|
43
|
-
}
|
|
44
|
-
export declare const connectTwitter: (data: TwitterConnectParams, baseURL?: string) => Promise<SidResponse>;
|
|
45
|
-
export declare const checkEligibility: (data: {
|
|
46
|
-
projectId: string;
|
|
47
|
-
}, baseURL?: string) => Promise<IAirdropSignatureData>;
|
|
48
|
-
export declare const bindWallet: (data: WalletBindParams, baseURL?: string) => Promise<SidResponse>;
|
|
49
|
-
interface DisconnectParams {
|
|
50
|
-
projectId: string;
|
|
51
|
-
recipientType: AirdropSigIdentityTypeEnum;
|
|
52
|
-
recipient?: string;
|
|
53
|
-
}
|
|
54
|
-
export declare const disconnectRecipient: (data: DisconnectParams, baseURL?: string) => Promise<void>;
|
|
43
|
+
}, baseURL?: string) => Promise<unknown>;
|
|
@@ -8,7 +8,7 @@ export const getAirdropProject = async (projectId, baseURL) => {
|
|
|
8
8
|
const client = createApiClient(baseURL);
|
|
9
9
|
const res = await client.get(`/airdrop-open/projects/${projectId}`);
|
|
10
10
|
if (!res)
|
|
11
|
-
return res; // res
|
|
11
|
+
return res; // res为null
|
|
12
12
|
const projectConfig = res?.themeConf;
|
|
13
13
|
const blockCountries = safeParseJSON(projectConfig?.blockCountries);
|
|
14
14
|
return {
|
|
@@ -36,37 +36,16 @@ export const getJettonInfo = async (data, baseURL) => {
|
|
|
36
36
|
const client = createApiClient(baseURL);
|
|
37
37
|
return client.get(`/airdrop-open/jetton/${data.address}?isTestnet=${data.isTestnet}`);
|
|
38
38
|
};
|
|
39
|
-
const getSidHeader = (projectId) => ({
|
|
40
|
-
sid: window.localStorage.getItem(`sid_${projectId}`) || ''
|
|
41
|
-
});
|
|
42
39
|
export const connectTwitter = async (data, baseURL) => {
|
|
43
40
|
const client = createApiClient(baseURL);
|
|
44
|
-
return client.post('/airdrop-open/connect-twitter', data
|
|
45
|
-
headers: getSidHeader(data.projectId)
|
|
46
|
-
});
|
|
41
|
+
return client.post('/airdrop-open/connect-twitter', data);
|
|
47
42
|
};
|
|
48
43
|
export const checkEligibility = async (data, baseURL) => {
|
|
49
|
-
const headers = getSidHeader(data.projectId);
|
|
50
|
-
if (!headers.sid)
|
|
51
|
-
return {
|
|
52
|
-
claims: [],
|
|
53
|
-
identities: []
|
|
54
|
-
};
|
|
55
44
|
const client = createApiClient(baseURL);
|
|
56
|
-
return client.post('/airdrop-open/check-eligibility', data
|
|
57
|
-
headers: headers
|
|
58
|
-
});
|
|
45
|
+
return client.post('/airdrop-open/check-eligibility', data);
|
|
59
46
|
};
|
|
60
47
|
export const bindWallet = async (data, baseURL) => {
|
|
61
48
|
const client = createApiClient(baseURL);
|
|
62
|
-
return client.post('/airdrop-open/connect-wallet', data
|
|
63
|
-
headers: getSidHeader(data.projectId)
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
export const disconnectRecipient = async (data, baseURL) => {
|
|
67
|
-
const client = createApiClient(baseURL);
|
|
68
|
-
return client.post('/airdrop-open/disconnect', data, {
|
|
69
|
-
headers: getSidHeader(data.projectId)
|
|
70
|
-
});
|
|
49
|
+
return client.post('/airdrop-open/connect-wallet', data);
|
|
71
50
|
};
|
|
72
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -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;AAGlD,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/services/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,6 @@ export interface IProject {
|
|
|
57
57
|
version: string;
|
|
58
58
|
extra?: IProjectExtra;
|
|
59
59
|
identities: Identity[];
|
|
60
|
-
projectTag: string;
|
|
61
60
|
}
|
|
62
61
|
export interface Identity {
|
|
63
62
|
identityType: string;
|
|
@@ -99,29 +98,9 @@ export type IAirdropClaim = {
|
|
|
99
98
|
expired?: boolean;
|
|
100
99
|
project: IProject;
|
|
101
100
|
};
|
|
102
|
-
export type IAirdropSignatureClaim = {
|
|
103
|
-
percent: number;
|
|
104
|
-
unlockingAt: number;
|
|
105
|
-
claimDeadline: number;
|
|
106
|
-
value: string;
|
|
107
|
-
recipient: string;
|
|
108
|
-
recipientType: string;
|
|
109
|
-
claimId: string;
|
|
110
|
-
data: string;
|
|
111
|
-
signature: string;
|
|
112
|
-
claimed?: boolean;
|
|
113
|
-
};
|
|
114
|
-
export interface IAirdropSignatureIdentity {
|
|
115
|
-
type: AirdropSigIdentityTypeEnum;
|
|
116
|
-
value: string;
|
|
117
|
-
}
|
|
118
101
|
export interface IAirdropData {
|
|
119
102
|
claims: IAirdropClaim[];
|
|
120
103
|
}
|
|
121
|
-
export interface IAirdropSignatureData {
|
|
122
|
-
claims: IAirdropSignatureClaim[];
|
|
123
|
-
identities: IAirdropSignatureIdentity[];
|
|
124
|
-
}
|
|
125
104
|
export declare enum TonAirdropVersionEnum {
|
|
126
105
|
V1 = "1.0.0",
|
|
127
106
|
V2 = "2.0.0",
|
|
@@ -137,7 +116,6 @@ export type IWalletClient = TonConnectUI | ViemWalletClient;
|
|
|
137
116
|
export type IAirdropService = TonAirdropService | EvmAirdropService;
|
|
138
117
|
type BaseAirdropOptions = {
|
|
139
118
|
endpoint?: string;
|
|
140
|
-
project?: IProject;
|
|
141
119
|
};
|
|
142
120
|
type ProjectIdOptions = BaseAirdropOptions & {
|
|
143
121
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/types/index.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,wBAAW,CAAA;AACb,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAqDD,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,4DAA8B,CAAA;IAC9B,sDAAwB,CAAA;AAC1B,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAUD,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,4BAAc,CAAA;AAChB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA6BD,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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { AirdropClient
|
|
1
|
+
export { AirdropClient } from './airdrop';
|
|
2
2
|
export * from './airdrop/types';
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,cAAc,iBAAiB,CAAC"}
|
|
@@ -23,12 +23,12 @@ export class ApiClient {
|
|
|
23
23
|
}
|
|
24
24
|
async request(method, url, data, options) {
|
|
25
25
|
const finalUrl = (this.options?.baseURL || '') + url;
|
|
26
|
-
const init = { method
|
|
26
|
+
const init = { method };
|
|
27
27
|
if (data instanceof FormData) {
|
|
28
28
|
init.body = data;
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
|
-
init.headers = { 'content-type': 'application/json'
|
|
31
|
+
init.headers = { 'content-type': 'application/json' };
|
|
32
32
|
init.body = data ? JSON.stringify(data) : void 0;
|
|
33
33
|
}
|
|
34
34
|
const res = await fetch(finalUrl, init);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/utils/api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/utils/api-client.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAElD,MAAM,CAAC,OAAyB;QAC9B,OAAO,IAAI,SAAS,CAAC;YACnB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,GAAW,EAAE,OAA2B;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAuB,GAAW,EAAE,IAAW,EAAE,OAA2B;QACpF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG,CAAuB,GAAW,EAAE,IAAW,EAAE,OAA2B;QACnF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CAAO,GAAW,EAAE,OAA2B;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAyC,EACzC,GAAW,EACX,IAAa,EACb,OAA2B;QAE3B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;QAErD,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,CAAC;QACrC,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAA0B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAS,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YACjE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sign-global/tokentable",
|
|
3
|
-
"version": "0.4.0
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"dayjs": "^1.11.13",
|
|
35
35
|
"jest": "^29.7.0",
|
|
36
36
|
"nanoid": "^5.0.9",
|
|
37
|
-
"react": "^
|
|
37
|
+
"react": "^19.0.0",
|
|
38
38
|
"ton-core": "^0.53.0",
|
|
39
39
|
"tonapi-sdk-js": "^2.0.3",
|
|
40
40
|
"tonweb": "^0.0.66",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"wagmi": "^2.13.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@types/react": "^
|
|
46
|
+
"@types/react": "^19.0.8",
|
|
47
47
|
"bun-types": "latest",
|
|
48
48
|
"typescript": "^5.6.3"
|
|
49
49
|
}
|
|
@@ -32,11 +32,7 @@ export class AirdropClient {
|
|
|
32
32
|
}
|
|
33
33
|
this.projectId = params.projectId;
|
|
34
34
|
this.endpoint = params.endpoint;
|
|
35
|
-
|
|
36
|
-
this.project = params.project;
|
|
37
|
-
} else {
|
|
38
|
-
this.projectPromise = this.initializeProjects();
|
|
39
|
-
}
|
|
35
|
+
this.projectPromise = this.initializeProjects();
|
|
40
36
|
}
|
|
41
37
|
|
|
42
38
|
setTonClient(tonClient: TonClient) {
|
|
@@ -88,9 +84,7 @@ export class AirdropClient {
|
|
|
88
84
|
}
|
|
89
85
|
|
|
90
86
|
async getProjectInfo() {
|
|
91
|
-
|
|
92
|
-
await this.projectPromise;
|
|
93
|
-
}
|
|
87
|
+
await this.projectPromise;
|
|
94
88
|
if (!this.project) throw new Error('Project not found');
|
|
95
89
|
return this.project;
|
|
96
90
|
}
|
|
@@ -1,38 +1,25 @@
|
|
|
1
|
-
import { getAddress } from 'viem';
|
|
2
1
|
import { CONST } from './constants';
|
|
3
|
-
import { SignatureAirdropService } from './core/evm/SignatureAirdropService';
|
|
4
2
|
import { WalletFactory } from './core/useWeb3ConnectWallet';
|
|
5
3
|
import { ChainType } from './core/useWeb3ConnectWallet/types';
|
|
6
|
-
import { bindWallet,
|
|
7
|
-
import {
|
|
8
|
-
AirdropSigIdentityTypeEnum,
|
|
9
|
-
ChainId,
|
|
10
|
-
IAirdropOptions,
|
|
11
|
-
IAirdropSignatureClaim,
|
|
12
|
-
IProject,
|
|
13
|
-
IWalletClient
|
|
14
|
-
} from './types';
|
|
4
|
+
import { bindWallet, connectTwitter, getAirdropProject } from './services';
|
|
5
|
+
import { AirdropSigIdentityTypeEnum, IAirdropOptions, IProject } from './types';
|
|
15
6
|
|
|
16
7
|
export class SignatureAirdropClient {
|
|
8
|
+
private slug?: string;
|
|
17
9
|
private projectId?: string;
|
|
18
10
|
private endpoint?: string;
|
|
19
11
|
private project: IProject | undefined;
|
|
20
|
-
protected claims?:
|
|
12
|
+
protected claims?: any[];
|
|
21
13
|
private projectPromise: Promise<void> | undefined;
|
|
14
|
+
private claimHook: ((v: any) => any) | undefined;
|
|
15
|
+
// private contractConfig: IContractConfig | null = null;
|
|
22
16
|
constructor(params: IAirdropOptions) {
|
|
17
|
+
if ('slug' in params) {
|
|
18
|
+
this.slug = params.slug;
|
|
19
|
+
}
|
|
23
20
|
this.projectId = params.projectId;
|
|
24
21
|
this.endpoint = params.endpoint;
|
|
25
|
-
|
|
26
|
-
this.project = params.project;
|
|
27
|
-
} else {
|
|
28
|
-
this.projectPromise = this.initializeProjects();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
private readonly LOCAL_STORAGE_SID_PREFIX = 'sid_';
|
|
33
|
-
|
|
34
|
-
private setSid(projectId: string, sid: string): void {
|
|
35
|
-
window.localStorage.setItem(`${this.LOCAL_STORAGE_SID_PREFIX}${projectId}`, sid);
|
|
22
|
+
this.projectPromise = this.initializeProjects();
|
|
36
23
|
}
|
|
37
24
|
|
|
38
25
|
private async fetchProjectDetails(projectId: string): Promise<void> {
|
|
@@ -47,6 +34,7 @@ export class SignatureAirdropClient {
|
|
|
47
34
|
return;
|
|
48
35
|
}
|
|
49
36
|
|
|
37
|
+
// Fetch project details
|
|
50
38
|
await this.fetchProjectDetails(projectId);
|
|
51
39
|
} catch (error: any) {
|
|
52
40
|
throw new Error(`Failed to initialize project: ${error.message}`);
|
|
@@ -54,9 +42,7 @@ export class SignatureAirdropClient {
|
|
|
54
42
|
}
|
|
55
43
|
|
|
56
44
|
async getProjectInfo() {
|
|
57
|
-
|
|
58
|
-
await this.projectPromise;
|
|
59
|
-
}
|
|
45
|
+
await this.projectPromise;
|
|
60
46
|
if (!this.project) throw new Error('Project not found');
|
|
61
47
|
return this.project;
|
|
62
48
|
}
|
|
@@ -65,14 +51,13 @@ export class SignatureAirdropClient {
|
|
|
65
51
|
const project = await this.getProjectInfo();
|
|
66
52
|
const onWindowMessage = async (message: any) => {
|
|
67
53
|
if (message.data.name && message.data.name === CONST.TWITTER_AUTH_SUCCESS) {
|
|
68
|
-
const { code } = message.data.data || {};
|
|
54
|
+
const { isError, code, redirectUri } = message.data.data || {};
|
|
69
55
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (res?.sid) {
|
|
73
|
-
this.setSid(project.id, res?.sid);
|
|
74
|
-
}
|
|
56
|
+
await connectTwitter({ code, redirectUri: redirectUri }, this.endpoint);
|
|
75
57
|
onSuccess();
|
|
58
|
+
if (isError) {
|
|
59
|
+
onError();
|
|
60
|
+
}
|
|
76
61
|
} catch (error) {
|
|
77
62
|
onError();
|
|
78
63
|
} finally {
|
|
@@ -94,134 +79,37 @@ export class SignatureAirdropClient {
|
|
|
94
79
|
onError
|
|
95
80
|
}: {
|
|
96
81
|
chainType: ChainType;
|
|
97
|
-
onSuccess
|
|
98
|
-
onError
|
|
82
|
+
onSuccess: () => void;
|
|
83
|
+
onError: (error: any) => void;
|
|
99
84
|
}) {
|
|
100
85
|
try {
|
|
101
86
|
const project = await this.getProjectInfo();
|
|
102
87
|
const wallet = WalletFactory.getWallet(chainType);
|
|
103
|
-
const
|
|
88
|
+
const signResult = await wallet.signin(CONST.WELCOME_SIGNATURE_STATEMENT);
|
|
89
|
+
|
|
90
|
+
const { message, signature } = signResult || {};
|
|
91
|
+
|
|
104
92
|
const recipientTypeMap = {
|
|
105
93
|
[ChainType.Evm]: AirdropSigIdentityTypeEnum.EVMWallet,
|
|
106
94
|
[ChainType.Solana]: AirdropSigIdentityTypeEnum.SolanaWallet,
|
|
107
95
|
[ChainType.Ton]: ''
|
|
108
96
|
};
|
|
109
|
-
const msg = [project.id, recipientTypeMap[chainType], timestamp].join(',');
|
|
110
|
-
const signResult = await wallet.signin(msg, false);
|
|
111
|
-
|
|
112
|
-
const { message, signature } = signResult || {};
|
|
113
97
|
|
|
114
98
|
const payload = {
|
|
115
99
|
signature: signature as string,
|
|
116
100
|
message: message as string,
|
|
117
101
|
key: wallet.publicKey || wallet.address!,
|
|
118
102
|
projectId: project.id,
|
|
119
|
-
timestamp:
|
|
103
|
+
timestamp: Date.now(),
|
|
120
104
|
recipientType: recipientTypeMap[chainType]
|
|
121
105
|
};
|
|
122
106
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
this.setSid(project.id, res?.sid);
|
|
126
|
-
}
|
|
127
|
-
onSuccess?.();
|
|
107
|
+
await bindWallet(payload, this.endpoint);
|
|
108
|
+
onSuccess();
|
|
128
109
|
} catch (error) {
|
|
129
|
-
onError
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
async getClaims() {
|
|
134
|
-
const project = await this.getProjectInfo();
|
|
135
|
-
const res = await checkEligibility(
|
|
136
|
-
{
|
|
137
|
-
projectId: project.id
|
|
138
|
-
},
|
|
139
|
-
this.endpoint
|
|
140
|
-
);
|
|
141
|
-
this.claims = res.claims;
|
|
142
|
-
return res;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
public async disconnectIdentity({
|
|
146
|
-
recipientType,
|
|
147
|
-
recipient
|
|
148
|
-
}: {
|
|
149
|
-
recipientType: AirdropSigIdentityTypeEnum;
|
|
150
|
-
recipient?: string;
|
|
151
|
-
}) {
|
|
152
|
-
const project = await this.getProjectInfo();
|
|
153
|
-
await disconnectRecipient(
|
|
154
|
-
{
|
|
155
|
-
projectId: project.id,
|
|
156
|
-
recipientType,
|
|
157
|
-
recipient
|
|
158
|
-
},
|
|
159
|
-
this.endpoint
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
public async getStrategy(walletClient?: IWalletClient): Promise<SignatureAirdropService> {
|
|
164
|
-
const project = await this.getProjectInfo();
|
|
165
|
-
|
|
166
|
-
return new SignatureAirdropService({
|
|
167
|
-
chainId: Number(project.chainId) as ChainId,
|
|
168
|
-
contractAddress: project.contractAddress,
|
|
169
|
-
walletClient: walletClient as any
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
async getVersion(): Promise<string> {
|
|
174
|
-
const strategy = await this.getStrategy();
|
|
175
|
-
return strategy.getVersion();
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
async getClaimFee(amount?: bigint): Promise<undefined | bigint> {
|
|
179
|
-
const strategy = await this.getStrategy();
|
|
180
|
-
if (!strategy.getClaimFee) {
|
|
181
|
-
throw new Error('getClaimFee is not supported for this chain');
|
|
182
|
-
}
|
|
183
|
-
return await strategy.getClaimFee(this.project?.contractAddress || '', amount || BigInt(1));
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
async claimAirdrop({
|
|
187
|
-
claimIds,
|
|
188
|
-
walletClient,
|
|
189
|
-
recipient
|
|
190
|
-
}: {
|
|
191
|
-
claimIds: string[];
|
|
192
|
-
walletClient: IWalletClient;
|
|
193
|
-
recipient?: string;
|
|
194
|
-
}) {
|
|
195
|
-
if (!claimIds.length) {
|
|
196
|
-
throw new Error('Claim IDs cannot be empty');
|
|
197
|
-
}
|
|
198
|
-
if (!walletClient) {
|
|
199
|
-
throw new Error('Wallet client is required');
|
|
200
|
-
}
|
|
201
|
-
const service = await this.getStrategy(walletClient);
|
|
202
|
-
const claimData =
|
|
203
|
-
this.claims
|
|
204
|
-
?.filter((it) => claimIds.includes(it.claimId))
|
|
205
|
-
.map((it) => ({
|
|
206
|
-
...it,
|
|
207
|
-
recipient: recipient ? recipient : walletClient.account?.address!
|
|
208
|
-
})) || [];
|
|
209
|
-
const delegateMode = recipient ? getAddress(recipient) !== walletClient.account?.address : false;
|
|
210
|
-
const feeData = (await this.getClaimFee(1n)) || 0n;
|
|
211
|
-
const hash = (await service!.claim(
|
|
212
|
-
claimData,
|
|
213
|
-
delegateMode ? feeData * BigInt(claimData.length) : feeData
|
|
214
|
-
)) as `0x${string}`;
|
|
215
|
-
return hash;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
async batchCheckClaimed(): Promise<boolean[]> {
|
|
219
|
-
if (!this.claims?.length) return [];
|
|
220
|
-
const strategy = await this.getStrategy();
|
|
221
|
-
if (!strategy.batchFetchClaimed) {
|
|
222
|
-
throw new Error('batchCheckClaimed is not supported for this chain');
|
|
110
|
+
onError(error);
|
|
111
|
+
} finally {
|
|
112
|
+
onSuccess();
|
|
223
113
|
}
|
|
224
|
-
const claimIds = this.claims?.map((it) => it.claimId);
|
|
225
|
-
return strategy.batchFetchClaimed(claimIds);
|
|
226
114
|
}
|
|
227
115
|
}
|
|
@@ -53,16 +53,13 @@ export class EvmWallet extends WalletBase<EVMStoreType> {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
override async signin(statement
|
|
56
|
+
override async signin(statement?: string): Promise<ISignResult> {
|
|
57
57
|
return new Promise((resolve) => {
|
|
58
58
|
const signCallback = (data: ReturnType<typeof useAccount>) => {
|
|
59
59
|
this.address = data.address;
|
|
60
60
|
this.chainId = data.chainId;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const msg = prepareSignMessage({ statement, chainId: data.chainId!, address: data.address! });
|
|
64
|
-
fullMessage = get4361Message(msg);
|
|
65
|
-
}
|
|
61
|
+
const msg = prepareSignMessage({ statement, chainId: data.chainId!, address: data.address! });
|
|
62
|
+
const fullMessage = get4361Message(msg);
|
|
66
63
|
|
|
67
64
|
const res = this.sign(fullMessage);
|
|
68
65
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@rainbow-me/rainbowkit/styles.css';
|
|
2
|
-
import { RainbowKitProvider,
|
|
2
|
+
import { RainbowKitProvider, lightTheme, useConnectModal } from '@rainbow-me/rainbowkit';
|
|
3
3
|
import { ResolvedRegister, WagmiProvider, useAccount, useWalletClient } from 'wagmi';
|
|
4
4
|
import { ReactNode, useEffect } from 'react';
|
|
5
5
|
|
|
@@ -26,27 +26,14 @@ export const EVMConnector = () => {
|
|
|
26
26
|
return null;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
export const EvmProvider = ({
|
|
30
|
-
children,
|
|
31
|
-
config,
|
|
32
|
-
theme
|
|
33
|
-
}: {
|
|
34
|
-
children: ReactNode;
|
|
35
|
-
config: ResolvedRegister['config'];
|
|
36
|
-
theme?: any;
|
|
37
|
-
}) => {
|
|
29
|
+
export const EvmProvider = ({ children, config }: { children: ReactNode; config: ResolvedRegister['config'] }) => {
|
|
38
30
|
evmStore.config = config;
|
|
39
31
|
return (
|
|
40
32
|
<WagmiProvider config={config}>
|
|
41
33
|
<RainbowKitProvider
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
darkTheme({
|
|
46
|
-
accentColor: 'var(--t-primary)',
|
|
47
|
-
accentColorForeground: 'var(--t-button-primary-foreground)'
|
|
48
|
-
})
|
|
49
|
-
}
|
|
34
|
+
theme={lightTheme({
|
|
35
|
+
accentColor: '#DD8D58'
|
|
36
|
+
})}
|
|
50
37
|
>
|
|
51
38
|
{children}
|
|
52
39
|
<EVMConnector />
|
|
@@ -63,17 +63,14 @@ export class SolWallet extends WalletBase<SolStoreType> {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
signin(statement
|
|
66
|
+
signin(statement?: string): Promise<ISignResult> {
|
|
67
67
|
return new Promise((resolve) => {
|
|
68
68
|
const signCallback = (data: ReturnType<typeof useWallet>) => {
|
|
69
69
|
this.publicKey = data.publicKey?.toString();
|
|
70
70
|
this.address = this.publicKey;
|
|
71
71
|
this.chainId = 1;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const msg = prepareSignMessage({ statement, chainId: '1', address: this.address! });
|
|
75
|
-
fullMessage = get4361Message(msg);
|
|
76
|
-
}
|
|
72
|
+
const msg = prepareSignMessage({ statement, chainId: '1', address: this.address! });
|
|
73
|
+
const fullMessage = get4361Message(msg);
|
|
77
74
|
|
|
78
75
|
const res = this.sign(fullMessage);
|
|
79
76
|
|