@sign-global/tokentable 0.4.1-beta.4 → 0.4.1-beta.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/SignatureAirdropClient.d.ts +2 -1
- package/dist/cjs/airdrop/SignatureAirdropClient.js +28 -15
- package/dist/cjs/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/cjs/airdrop/common/index.d.ts +35 -0
- package/dist/cjs/airdrop/constants/chain-config.d.ts +36 -0
- package/dist/cjs/airdrop/constants/chain-config.js +5 -0
- package/dist/cjs/airdrop/constants/chain-config.js.map +1 -1
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.d.ts +1 -1
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js +6 -1
- package/dist/cjs/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.d.ts +7 -1
- package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js +24 -13
- package/dist/cjs/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.d.ts +2 -1
- package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.js +12 -3
- package/dist/cjs/airdrop/contracts/solana/FeeCollectorClient.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.d.ts +2 -2
- package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.js +3 -9
- package/dist/cjs/airdrop/contracts/solana/SignatureAirdropService.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/SolanaContractClient.d.ts +2 -1
- package/dist/cjs/airdrop/contracts/solana/SolanaContractClient.js +10 -4
- package/dist/cjs/airdrop/contracts/solana/SolanaContractClient.js.map +1 -1
- package/dist/cjs/airdrop/contracts/solana/fee_collector.d.ts +665 -349
- package/dist/cjs/airdrop/contracts/solana/fee_collector.json +79 -12
- package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +994 -504
- package/dist/cjs/airdrop/contracts/solana/fungible_token_distributor_solana.json +58 -3
- package/dist/cjs/airdrop/types/index.d.ts +4 -3
- package/dist/cjs/airdrop/types/index.js.map +1 -1
- package/dist/cjs/wallets/providers/evm/EvmWallet.js +27 -17
- package/dist/cjs/wallets/providers/evm/EvmWallet.js.map +1 -1
- package/dist/esm/airdrop/SignatureAirdropClient.d.ts +2 -1
- package/dist/esm/airdrop/SignatureAirdropClient.js +28 -15
- package/dist/esm/airdrop/SignatureAirdropClient.js.map +1 -1
- package/dist/esm/airdrop/common/index.d.ts +35 -0
- package/dist/esm/airdrop/constants/chain-config.d.ts +36 -0
- package/dist/esm/airdrop/constants/chain-config.js +6 -1
- package/dist/esm/airdrop/constants/chain-config.js.map +1 -1
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.d.ts +1 -1
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js +6 -1
- package/dist/esm/airdrop/contracts/evm/SignatureAirdropService.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.d.ts +7 -1
- package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js +24 -13
- package/dist/esm/airdrop/contracts/solana/AirdropSignatureClient.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.d.ts +2 -1
- package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.js +12 -3
- package/dist/esm/airdrop/contracts/solana/FeeCollectorClient.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.d.ts +2 -2
- package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.js +3 -9
- package/dist/esm/airdrop/contracts/solana/SignatureAirdropService.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/SolanaContractClient.d.ts +2 -1
- package/dist/esm/airdrop/contracts/solana/SolanaContractClient.js +10 -4
- package/dist/esm/airdrop/contracts/solana/SolanaContractClient.js.map +1 -1
- package/dist/esm/airdrop/contracts/solana/fee_collector.d.ts +665 -349
- package/dist/esm/airdrop/contracts/solana/fee_collector.json +79 -12
- package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.d.ts +994 -504
- package/dist/esm/airdrop/contracts/solana/fungible_token_distributor_solana.json +58 -3
- package/dist/esm/airdrop/types/index.d.ts +4 -3
- package/dist/esm/airdrop/types/index.js.map +1 -1
- package/dist/esm/wallets/providers/evm/EvmWallet.js +27 -17
- package/dist/esm/wallets/providers/evm/EvmWallet.js.map +1 -1
- package/package.json +1 -1
- package/src/airdrop/SignatureAirdropClient.ts +40 -23
- package/src/airdrop/constants/chain-config.ts +7 -2
- package/src/airdrop/contracts/evm/SignatureAirdropService.ts +6 -1
- package/src/airdrop/contracts/solana/AirdropSignatureClient.ts +28 -27
- package/src/airdrop/contracts/solana/FeeCollectorClient.ts +12 -3
- package/src/airdrop/contracts/solana/SignatureAirdropService.ts +4 -10
- package/src/airdrop/contracts/solana/SolanaContractClient.ts +19 -11
- package/src/airdrop/contracts/solana/fee_collector.json +79 -12
- package/src/airdrop/contracts/solana/fee_collector.ts +743 -427
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.json +58 -3
- package/src/airdrop/contracts/solana/fungible_token_distributor_solana.ts +1104 -614
- package/src/airdrop/types/index.ts +4 -2
- package/src/wallets/providers/evm/EvmWallet.ts +27 -19
|
@@ -14,8 +14,14 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
14
14
|
});
|
|
15
15
|
this.projectId = options.projectId;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
async getVersionPDA() {
|
|
18
|
+
const [versionPDA] = await this.findProgramAddress([anchor.utils.bytes.utf8.encode('version')]);
|
|
19
|
+
return versionPDA;
|
|
20
|
+
}
|
|
21
|
+
async getVersion() {
|
|
22
|
+
const versionPDA = await this.getVersionPDA();
|
|
23
|
+
const versionData = await this.fetchAccountData('version', versionPDA);
|
|
24
|
+
return versionData.version;
|
|
19
25
|
}
|
|
20
26
|
get FeeCollector() {
|
|
21
27
|
return new FeeCollectorClient({
|
|
@@ -24,6 +30,9 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
24
30
|
chainId: this.chainId
|
|
25
31
|
});
|
|
26
32
|
}
|
|
33
|
+
async getClaimFee(amount) {
|
|
34
|
+
return this.FeeCollector.getClaimFee(amount.toString());
|
|
35
|
+
}
|
|
27
36
|
async getStoragePDA() {
|
|
28
37
|
const [storagePDA] = await this.findProgramAddress([
|
|
29
38
|
anchor.utils.bytes.utf8.encode('storage'),
|
|
@@ -110,10 +119,18 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
110
119
|
async togglePause() {
|
|
111
120
|
await this.invokeInstruction('togglePause', {}, [this.projectId]);
|
|
112
121
|
}
|
|
122
|
+
async getFeeInfo() {
|
|
123
|
+
const airdropPDA = await this.getAirdropPDA();
|
|
124
|
+
const config = await this.fetchAccountData('airdrop', airdropPDA);
|
|
125
|
+
return {
|
|
126
|
+
feeToken: config.feeToken.toString(),
|
|
127
|
+
feeCollector: config.feeCollector.toString()
|
|
128
|
+
};
|
|
129
|
+
}
|
|
113
130
|
async claim(data) {
|
|
114
131
|
const config = await this.getContractInfo();
|
|
115
132
|
const feeCollectorStoragePDA = await this.FeeCollector.getStoragePDA();
|
|
116
|
-
const
|
|
133
|
+
const feePDA = await this.FeeCollector.getProjectFeePDA();
|
|
117
134
|
const airdropPDA = await this.getAirdropPDA();
|
|
118
135
|
const vaultPDA = await this.getVaultPDA();
|
|
119
136
|
const authorityATA = await getOrCreateAssociatedTokenAccount({
|
|
@@ -131,34 +148,28 @@ export class AirdropSignatureClient extends SolanaContractClientBase {
|
|
|
131
148
|
message: Uint8Array.from(hexStrToU8Array(claim.hash)),
|
|
132
149
|
signature: new Uint8Array(hexStrToU8Array(claim.signature))
|
|
133
150
|
}));
|
|
134
|
-
console.log(anchor.web3.Ed25519Program.programId.toString(), {
|
|
135
|
-
publicKey: new PublicKey(config.signer).toBytes(),
|
|
136
|
-
message: Uint8Array.from(hexStrToU8Array(claim.hash)),
|
|
137
|
-
signature: new Uint8Array(hexStrToU8Array(claim.signature))
|
|
138
|
-
}, 'sign');
|
|
139
151
|
const claimPDA = await this.getClaimPDA(claim.claimId);
|
|
140
152
|
const decodedData = {
|
|
141
153
|
claimableTimestamp: new anchor.BN(claim.unlockingAt),
|
|
142
154
|
claimableAmount: new anchor.BN(claim.value)
|
|
143
155
|
};
|
|
144
|
-
console.log(airdropPDA.toString(), claimPDA, this.projectId, new Uint8Array(hexStrToU8Array(claim.claimId)), [], decodedData, Buffer.from(hexStrToU8Array(claim.signature)), 'txdata');
|
|
145
156
|
tx.add(await this.program.methods
|
|
146
157
|
.claim(this.projectId, new Uint8Array(hexStrToU8Array(claim.claimId)), [], decodedData, Buffer.from(hexStrToU8Array(claim.signature)))
|
|
147
158
|
.accountsPartial({
|
|
148
159
|
authority: this.wallet.publicKey,
|
|
149
160
|
airdrop: airdropPDA,
|
|
150
161
|
claim: claimPDA,
|
|
151
|
-
vault: vaultPDA,
|
|
162
|
+
// vault: vaultPDA,
|
|
152
163
|
authorityAta: authorityATA.address,
|
|
153
164
|
tokenMint: new PublicKey(config.token),
|
|
154
165
|
feeCollectorStorage: feeCollectorStoragePDA,
|
|
155
166
|
feeCollectorVault: null,
|
|
156
|
-
|
|
167
|
+
fee: feePDA,
|
|
157
168
|
authorityFeeAta: null,
|
|
158
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID
|
|
169
|
+
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
170
|
+
feeTokenMint: null
|
|
159
171
|
})
|
|
160
172
|
.transaction());
|
|
161
|
-
console.log(tx);
|
|
162
173
|
}
|
|
163
174
|
return await this.program.provider.sendAndConfirm?.(tx);
|
|
164
175
|
}
|
|
@@ -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,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iCAAiC,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEpF,MAAM,OAAO,sBAAuB,SAAQ,wBAAwD;IAClG,SAAS,CAAS;IAClB,YAAY,OAA2B;QACrC,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,UAAU;
|
|
1
|
+
{"version":3,"file":"AirdropSignatureClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/AirdropSignatureClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export declare class FeeCollectorClient extends SolanaContractClientBase<FeeColl
|
|
|
5
5
|
projectId: string;
|
|
6
6
|
constructor(options: SolanaContractInfo);
|
|
7
7
|
getStoragePDA(): Promise<PublicKey>;
|
|
8
|
-
|
|
8
|
+
getProjectFeePDA(): Promise<PublicKey>;
|
|
9
9
|
setDefaultFee(fee: string): Promise<string>;
|
|
10
|
+
getClaimFee(tokenAmount: string): Promise<bigint>;
|
|
10
11
|
}
|
|
@@ -14,15 +14,24 @@ export class FeeCollectorClient extends SolanaContractClientBase {
|
|
|
14
14
|
const [storagePDA] = await this.findProgramAddress([anchor.utils.bytes.utf8.encode('storage')]);
|
|
15
15
|
return storagePDA;
|
|
16
16
|
}
|
|
17
|
-
async
|
|
18
|
-
const [
|
|
17
|
+
async getProjectFeePDA() {
|
|
18
|
+
const [projectFeePDA] = await this.findProgramAddress([
|
|
19
19
|
anchor.utils.bytes.utf8.encode('fee'),
|
|
20
20
|
anchor.utils.bytes.utf8.encode(this.projectId)
|
|
21
21
|
]);
|
|
22
|
-
return
|
|
22
|
+
return projectFeePDA;
|
|
23
23
|
}
|
|
24
24
|
async setDefaultFee(fee) {
|
|
25
25
|
return this.invokeInstruction('setDefaultFee', {}, [new anchor.BN(fee)]);
|
|
26
26
|
}
|
|
27
|
+
async getClaimFee(tokenAmount) {
|
|
28
|
+
try {
|
|
29
|
+
const fee = await this.invokeView('getFee', [this.projectId, new anchor.BN(tokenAmount)]);
|
|
30
|
+
return BigInt(fee);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return BigInt(0);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
27
36
|
}
|
|
28
37
|
//# sourceMappingURL=FeeCollectorClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeeCollectorClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/FeeCollectorClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAC;AACtF,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,MAAM,OAAO,kBAAmB,SAAQ,wBAAsC;IAC5E,SAAS,CAAS;IAClB,YAAY,OAA2B;QACrC,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEhG,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"FeeCollectorClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/FeeCollectorClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAC;AACtF,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,MAAM,OAAO,kBAAmB,SAAQ,wBAAsC;IAC5E,SAAS,CAAS;IAClB,YAAY,OAA2B;QACrC,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEhG,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1F,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export declare class SignatureAirdropService {
|
|
|
8
8
|
feeTokens: (address: string) => Promise<string>;
|
|
9
9
|
getFeelessThreshold(): Promise<void>;
|
|
10
10
|
getDeployer(): Promise<string>;
|
|
11
|
-
getClaimFee(address: string, amount: bigint): Promise<bigint
|
|
11
|
+
getClaimFee(address: string, amount: bigint): Promise<bigint>;
|
|
12
12
|
batchFetchClaimed(userClaimIds: string[]): Promise<boolean[]>;
|
|
13
13
|
getPaused(): Promise<boolean>;
|
|
14
14
|
claim(data: {
|
|
@@ -20,5 +20,5 @@ export declare class SignatureAirdropService {
|
|
|
20
20
|
unlockingAt: number;
|
|
21
21
|
value: string;
|
|
22
22
|
hash: string;
|
|
23
|
-
}[],
|
|
23
|
+
}[], recipient?: string): Promise<string | undefined>;
|
|
24
24
|
}
|
|
@@ -30,14 +30,8 @@ export class SignatureAirdropService {
|
|
|
30
30
|
return '';
|
|
31
31
|
}
|
|
32
32
|
async getClaimFee(address, amount) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// return undefined;
|
|
36
|
-
// }
|
|
37
|
-
// const feeClient = this.getFeeClient(feeCollector as string);
|
|
38
|
-
// const fee = (await feeClient.getFee(address, amount)) as bigint;
|
|
39
|
-
// return fee;
|
|
40
|
-
return 0n;
|
|
33
|
+
const fee = await this.airdropClient.getClaimFee(amount);
|
|
34
|
+
return fee;
|
|
41
35
|
}
|
|
42
36
|
async batchFetchClaimed(userClaimIds) {
|
|
43
37
|
const res = await this.airdropClient.batchFetchClaimed(userClaimIds);
|
|
@@ -46,7 +40,7 @@ export class SignatureAirdropService {
|
|
|
46
40
|
async getPaused() {
|
|
47
41
|
return this.airdropClient.getPaused();
|
|
48
42
|
}
|
|
49
|
-
async claim(data,
|
|
43
|
+
async claim(data, recipient) {
|
|
50
44
|
return this.airdropClient.claim(data);
|
|
51
45
|
}
|
|
52
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureAirdropService.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/SignatureAirdropService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,OAAO,uBAAuB;IAClC,OAAO,CAAqB;IAC5B,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAY,aAAa;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACxC,yDAAyD;QACzD,sDAAsD;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,SAAS,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACpC,yDAAyD;QACzD,kDAAkD;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,KAAK,CAAC,mBAAmB;QACvB,mDAAmD;IACrD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,MAAc;QAC/C,
|
|
1
|
+
{"version":3,"file":"SignatureAirdropService.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/SignatureAirdropService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,OAAO,uBAAuB;IAClC,OAAO,CAAqB;IAC5B,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAY,aAAa;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACxC,yDAAyD;QACzD,sDAAsD;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,SAAS,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACpC,yDAAyD;QACzD,kDAAkD;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,KAAK,CAAC,mBAAmB;QACvB,mDAAmD;IACrD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,MAAc;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAsB;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CACT,IASG,EACH,SAAkB;QAElB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -17,8 +17,9 @@ export declare abstract class SolanaContractClientBase<T extends Idl = Idl> {
|
|
|
17
17
|
getConnection(endpoint?: string): Connection;
|
|
18
18
|
protected findProgramAddress(seeds: Array<Buffer | Uint8Array>, programId?: PublicKey): Promise<[PublicKey, number]>;
|
|
19
19
|
fetchAccountData<A extends keyof AllAccountsMap<T>>(accountName: A, address: PublicKey | string, commitment?: Commitment): Promise<IdlAccounts<T>[A]>;
|
|
20
|
-
invokeView<M extends keyof MakeMethodsNamespace<T, AllInstructions<T>>>(methodName: M, args: Parameters<MakeMethodsNamespace<T, AllInstructions<T>>[M]>): Promise<
|
|
20
|
+
invokeView<M extends keyof MakeMethodsNamespace<T, AllInstructions<T>>>(methodName: M, args: Parameters<MakeMethodsNamespace<T, AllInstructions<T>>[M]>): Promise<any>;
|
|
21
21
|
invokeInstruction<M extends keyof MakeMethodsNamespace<T, AllInstructions<T>>>(methodName: M, accounts: any, args: any, options?: {
|
|
22
22
|
signers?: Signer[];
|
|
23
23
|
}): Promise<string>;
|
|
24
|
+
confirmTransaction(tx: string): Promise<string>;
|
|
24
25
|
}
|
|
@@ -50,19 +50,25 @@ export class SolanaContractClientBase {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
async invokeInstruction(methodName, accounts, args, options) {
|
|
53
|
-
|
|
53
|
+
if (!this.program.methods[methodName]) {
|
|
54
|
+
throw new Error(`Method ${methodName} not found in program`);
|
|
55
|
+
}
|
|
54
56
|
let instruction = this.program.methods[methodName](...args).accounts(accounts);
|
|
55
57
|
if (options?.signers?.length) {
|
|
56
58
|
instruction = instruction.signers(options.signers);
|
|
57
59
|
}
|
|
58
|
-
console.log(instruction, 'in');
|
|
59
60
|
const tx = await instruction.rpc();
|
|
61
|
+
await this.confirmTransaction(tx);
|
|
62
|
+
console.log(tx);
|
|
63
|
+
return tx;
|
|
64
|
+
}
|
|
65
|
+
async confirmTransaction(tx) {
|
|
66
|
+
const latestBlockhash = await this.connection.getLatestBlockhash();
|
|
60
67
|
await this.connection.confirmTransaction({
|
|
61
68
|
signature: tx,
|
|
62
69
|
blockhash: latestBlockhash.blockhash,
|
|
63
70
|
lastValidBlockHeight: latestBlockhash.lastValidBlockHeight
|
|
64
|
-
});
|
|
65
|
-
console.log(tx);
|
|
71
|
+
}, 'confirmed');
|
|
66
72
|
return tx;
|
|
67
73
|
}
|
|
68
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolanaContractClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/SolanaContractClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"SolanaContractClient.js","sourceRoot":"","sources":["../../../../../src/airdrop/contracts/solana/SolanaContractClient.ts"],"names":[],"mappings":"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"}
|