@funkit/core 2.0.1 → 2.1.1
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/index.js +11 -27
- package/dist/index.js.map +1 -1
- package/dist/src/abis/ApproveAndExec.json +45 -9
- package/dist/src/abis/ApproveAndSwap.json +141 -1
- package/dist/src/abis/CheckoutPaymaster.json +3358 -1
- package/dist/src/abis/EntryPoint.json +590 -113
- package/dist/src/abis/EstimationPaymaster.json +134 -24
- package/dist/src/abis/FeePercentOracle.json +94 -18
- package/dist/src/abis/FunWallet.json +280 -56
- package/dist/src/abis/FunWalletFactory.json +112 -21
- package/dist/src/abis/GaslessPaymaster.json +279 -50
- package/dist/src/abis/RoleBasedAccessControl.json +2 -1
- package/dist/src/abis/TestNFT.json +71 -15
- package/dist/src/abis/TokenPriceOracle.json +17 -4
- package/dist/src/abis/UserAuthentication.json +147 -32
- package/dist/src/actions/AccessControl.js +39 -48
- package/dist/src/actions/AccessControl.js.map +1 -1
- package/dist/src/actions/BatchActions.js +3 -7
- package/dist/src/actions/BatchActions.js.map +1 -1
- package/dist/src/actions/Bridge.js +16 -20
- package/dist/src/actions/Bridge.js.map +1 -1
- package/dist/src/actions/FirstClassActions.js +74 -77
- package/dist/src/actions/FirstClassActions.js.map +1 -1
- package/dist/src/actions/Group.js +14 -20
- package/dist/src/actions/Group.js.map +1 -1
- package/dist/src/actions/LimitOrder.js +18 -22
- package/dist/src/actions/LimitOrder.js.map +1 -1
- package/dist/src/actions/Stake.js +40 -43
- package/dist/src/actions/Stake.js.map +1 -1
- package/dist/src/actions/Swap.js +40 -46
- package/dist/src/actions/Swap.js.map +1 -1
- package/dist/src/actions/Token.js +41 -53
- package/dist/src/actions/Token.js.map +1 -1
- package/dist/src/actions/index.js +7 -23
- package/dist/src/actions/index.js.map +1 -1
- package/dist/src/actions/types.js +4 -7
- package/dist/src/actions/types.js.map +1 -1
- package/dist/src/apis/AccessControlApis.js +10 -16
- package/dist/src/apis/AccessControlApis.js.map +1 -1
- package/dist/src/apis/BridgeApis.js +14 -20
- package/dist/src/apis/BridgeApis.js.map +1 -1
- package/dist/src/apis/ContractApis.js +4 -7
- package/dist/src/apis/ContractApis.js.map +1 -1
- package/dist/src/apis/GroupApis.js +6 -10
- package/dist/src/apis/GroupApis.js.map +1 -1
- package/dist/src/apis/InfoApis.js +16 -23
- package/dist/src/apis/InfoApis.js.map +1 -1
- package/dist/src/apis/ListenerApis.js +9 -13
- package/dist/src/apis/ListenerApis.js.map +1 -1
- package/dist/src/apis/NFTApis.js +6 -10
- package/dist/src/apis/NFTApis.js.map +1 -1
- package/dist/src/apis/OperationApis.js +26 -40
- package/dist/src/apis/OperationApis.js.map +1 -1
- package/dist/src/apis/PaymasterApis.js +4 -7
- package/dist/src/apis/PaymasterApis.js.map +1 -1
- package/dist/src/apis/SwapApis.js +8 -13
- package/dist/src/apis/SwapApis.js.map +1 -1
- package/dist/src/apis/UserApis.js +20 -29
- package/dist/src/apis/UserApis.js.map +1 -1
- package/dist/src/apis/index.js +8 -24
- package/dist/src/apis/index.js.map +1 -1
- package/dist/src/apis/types.js +1 -2
- package/dist/src/auth/Auth.js +60 -76
- package/dist/src/auth/Auth.js.map +1 -1
- package/dist/src/auth/SessionKeyAuth.js +30 -33
- package/dist/src/auth/SessionKeyAuth.js.map +1 -1
- package/dist/src/auth/index.js +2 -18
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/auth/types.js +1 -2
- package/dist/src/common/constants.d.ts +141 -3
- package/dist/src/common/constants.js +211 -191
- package/dist/src/common/constants.js.map +1 -1
- package/dist/src/common/index.js +2 -18
- package/dist/src/common/index.js.map +1 -1
- package/dist/src/common/types.js +1 -2
- package/dist/src/config/Config.js +8 -13
- package/dist/src/config/Config.js.map +1 -1
- package/dist/src/config/index.js +2 -18
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/types.js +1 -2
- package/dist/src/data/Chain.js +35 -33
- package/dist/src/data/Chain.js.map +1 -1
- package/dist/src/data/NFT.js +28 -31
- package/dist/src/data/NFT.js.map +1 -1
- package/dist/src/data/Operation.js +28 -11
- package/dist/src/data/Operation.js.map +1 -1
- package/dist/src/data/SolidityData.js +23 -30
- package/dist/src/data/SolidityData.js.map +1 -1
- package/dist/src/data/Token.js +21 -23
- package/dist/src/data/Token.js.map +1 -1
- package/dist/src/data/index.js +6 -22
- package/dist/src/data/index.js.map +1 -1
- package/dist/src/data/types.js +6 -9
- package/dist/src/data/types.js.map +1 -1
- package/dist/src/errors/BaseError.js +6 -5
- package/dist/src/errors/BaseError.js.map +1 -1
- package/dist/src/errors/ClientError.js +21 -34
- package/dist/src/errors/ClientError.js.map +1 -1
- package/dist/src/errors/ServerError.js +6 -11
- package/dist/src/errors/ServerError.js.map +1 -1
- package/dist/src/errors/index.js +4 -20
- package/dist/src/errors/index.js.map +1 -1
- package/dist/src/errors/types.js +6 -9
- package/dist/src/errors/types.js.map +1 -1
- package/dist/src/sponsors/CheckoutSponsor.js +10 -14
- package/dist/src/sponsors/CheckoutSponsor.js.map +1 -1
- package/dist/src/sponsors/GaslessSponsor.js +23 -27
- package/dist/src/sponsors/GaslessSponsor.js.map +1 -1
- package/dist/src/sponsors/Sponsor.js +10 -8
- package/dist/src/sponsors/Sponsor.js.map +1 -1
- package/dist/src/sponsors/TokenSponsor.js +79 -82
- package/dist/src/sponsors/TokenSponsor.js.map +1 -1
- package/dist/src/sponsors/index.js +4 -20
- package/dist/src/sponsors/index.js.map +1 -1
- package/dist/src/sponsors/types.js +2 -5
- package/dist/src/sponsors/types.js.map +1 -1
- package/dist/src/utils/ApiUtils.js +30 -38
- package/dist/src/utils/ApiUtils.js.map +1 -1
- package/dist/src/utils/AuthUtils.js +9 -14
- package/dist/src/utils/AuthUtils.js.map +1 -1
- package/dist/src/utils/ChainUtils.js +38 -49
- package/dist/src/utils/ChainUtils.js.map +1 -1
- package/dist/src/utils/CheckoutUtils.js +13 -18
- package/dist/src/utils/CheckoutUtils.js.map +1 -1
- package/dist/src/utils/GroupUtils.js +6 -9
- package/dist/src/utils/GroupUtils.js.map +1 -1
- package/dist/src/utils/MerkleUtils.js +34 -47
- package/dist/src/utils/MerkleUtils.js.map +1 -1
- package/dist/src/utils/PaymasterUtils.js +5 -9
- package/dist/src/utils/PaymasterUtils.js.map +1 -1
- package/dist/src/utils/SwapUtils.js +44 -43
- package/dist/src/utils/SwapUtils.js.map +1 -1
- package/dist/src/utils/TypeUtils.js +5 -9
- package/dist/src/utils/TypeUtils.js.map +1 -1
- package/dist/src/utils/UserOpUtils.js +20 -29
- package/dist/src/utils/UserOpUtils.js.map +1 -1
- package/dist/src/utils/ViemUtils.js +6 -12
- package/dist/src/utils/ViemUtils.js.map +1 -1
- package/dist/src/utils/WalletUtils.js +28 -42
- package/dist/src/utils/WalletUtils.js.map +1 -1
- package/dist/src/utils/index.js +8 -24
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/viem/ContractInterface.js +14 -18
- package/dist/src/viem/ContractInterface.js.map +1 -1
- package/dist/src/viem/Converter.js +15 -20
- package/dist/src/viem/Converter.js.map +1 -1
- package/dist/src/viem/index.js +2 -18
- package/dist/src/viem/index.js.map +1 -1
- package/dist/src/wallet/FunWallet.js +141 -142
- package/dist/src/wallet/FunWallet.js.map +1 -1
- package/dist/src/wallet/index.js +2 -18
- package/dist/src/wallet/index.js.map +1 -1
- package/dist/src/wallet/types.js +1 -2
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/CheckoutSponsor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CheckoutSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/CheckoutSponsor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const Sponsor_1 = require("./Sponsor");
|
|
9
|
-
const types_1 = require("./types");
|
|
10
|
-
class GaslessSponsor extends Sponsor_1.Sponsor {
|
|
1
|
+
import { concat } from 'viem';
|
|
2
|
+
import { GASLESS_PAYMASTER_CONTRACT_INTERFACE, GASLESS_SPONSOR_SUPPORT_CHAINS, } from '../common';
|
|
3
|
+
import { Chain, Token } from '../data';
|
|
4
|
+
import { ErrorCode, ResourceNotFoundError } from '../errors';
|
|
5
|
+
import { Sponsor } from './Sponsor';
|
|
6
|
+
import { PaymasterType } from './types';
|
|
7
|
+
export class GaslessSponsor extends Sponsor {
|
|
11
8
|
constructor(options = globalThis.globalEnvOption) {
|
|
12
|
-
super(options,
|
|
9
|
+
super(options, GASLESS_PAYMASTER_CONTRACT_INTERFACE, 'gaslessPaymasterAddress', PaymasterType.GaslessSponsor);
|
|
13
10
|
}
|
|
14
11
|
async getFunSponsorAddress(options = globalThis.globalEnvOption) {
|
|
15
12
|
if (!this.sponsorAddress) {
|
|
16
|
-
const chain = await
|
|
17
|
-
if (
|
|
13
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
14
|
+
if (GASLESS_SPONSOR_SUPPORT_CHAINS.includes(await chain.getChainId())) {
|
|
18
15
|
this.sponsorAddress = await chain.getAddress('funGaslessSponsorAddress');
|
|
19
16
|
}
|
|
20
17
|
else {
|
|
21
|
-
throw new
|
|
22
|
-
gaslessSponsorSupportChains:
|
|
18
|
+
throw new ResourceNotFoundError(ErrorCode.MissingParameter, 'The network you are working with does not support gasless Fun Sponsor. You will need to run and manage your own gasless sponsor.', {
|
|
19
|
+
gaslessSponsorSupportChains: GASLESS_SPONSOR_SUPPORT_CHAINS,
|
|
23
20
|
chain: await chain.getChainId(),
|
|
24
21
|
}, 'Manage your own gasless sponsor, or use a supported network.', 'https://docs.fun.xyz');
|
|
25
22
|
}
|
|
@@ -29,31 +26,31 @@ class GaslessSponsor extends Sponsor_1.Sponsor {
|
|
|
29
26
|
async getPaymasterAndData(options = globalThis.globalEnvOption) {
|
|
30
27
|
const paymasterAddress = await this.getPaymasterAddress(options);
|
|
31
28
|
const sponsor = await this.getFunSponsorAddress(options);
|
|
32
|
-
return
|
|
29
|
+
return concat([paymasterAddress, sponsor]);
|
|
33
30
|
}
|
|
34
31
|
async stake(sponsor, amount, options = globalThis.globalEnvOption) {
|
|
35
|
-
const chain = await
|
|
36
|
-
const amountdec = await
|
|
32
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
33
|
+
const amountdec = await Token.getDecimalAmount('eth', amount, chain);
|
|
37
34
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'addDepositTo', [sponsor, amountdec], BigInt(amountdec));
|
|
38
35
|
}
|
|
39
36
|
async unstake(receiver, amount, options = globalThis.globalEnvOption) {
|
|
40
|
-
const chain = await
|
|
41
|
-
const amountdec = await
|
|
37
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
38
|
+
const amountdec = await Token.getDecimalAmount('eth', amount, chain);
|
|
42
39
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'withdrawDepositTo', [receiver, amountdec]);
|
|
43
40
|
}
|
|
44
41
|
async getUnlockBlock(sponsor, options = globalThis.globalEnvOption) {
|
|
45
|
-
const chain = await
|
|
42
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
46
43
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getUnlockBlock', [sponsor], chain);
|
|
47
44
|
}
|
|
48
45
|
async getLockState(sponsor, options = globalThis.globalEnvOption) {
|
|
49
46
|
const unlockBlock = Number(await this.getUnlockBlock(sponsor, options));
|
|
50
|
-
const chain = await
|
|
47
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
51
48
|
const client = await chain.getClient();
|
|
52
49
|
const currentBlock = await client.getBlockNumber();
|
|
53
50
|
return unlockBlock === 0 || unlockBlock > currentBlock;
|
|
54
51
|
}
|
|
55
52
|
async getBalance(sponsor, options = globalThis.globalEnvOption) {
|
|
56
|
-
const chain = await
|
|
53
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
57
54
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getBalance', [sponsor], chain);
|
|
58
55
|
}
|
|
59
56
|
async lockDeposit() {
|
|
@@ -63,17 +60,16 @@ class GaslessSponsor extends Sponsor_1.Sponsor {
|
|
|
63
60
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'unlockDepositAfter', [blocksToWait]);
|
|
64
61
|
}
|
|
65
62
|
async getSpenderBlacklistMode(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
66
|
-
const chain = await
|
|
63
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
67
64
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getSpenderBlacklistMode', [spender, sponsor], chain);
|
|
68
65
|
}
|
|
69
66
|
async getSpenderWhitelistMode(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
70
|
-
const chain = await
|
|
67
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
71
68
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getSpenderWhitelistMode', [spender, sponsor], chain);
|
|
72
69
|
}
|
|
73
70
|
static async getPaymasterAddress(options = globalThis.globalEnvOption) {
|
|
74
|
-
const chain = await
|
|
71
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
75
72
|
return await chain.getAddress(this.name);
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
|
-
exports.GaslessSponsor = GaslessSponsor;
|
|
79
75
|
//# sourceMappingURL=GaslessSponsor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaslessSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/GaslessSponsor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GaslessSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/GaslessSponsor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Chain } from '../data';
|
|
2
|
+
export class Sponsor {
|
|
3
|
+
sponsorAddress;
|
|
4
|
+
contractInterface;
|
|
5
|
+
name;
|
|
6
|
+
paymasterAddress;
|
|
7
|
+
paymasterType;
|
|
8
|
+
chainId;
|
|
6
9
|
constructor(options = globalThis.globalEnvOption, contractInterface, name, paymasterType) {
|
|
7
10
|
if (options.gasSponsor !== undefined &&
|
|
8
11
|
options.gasSponsor.sponsorAddress !== undefined) {
|
|
@@ -13,7 +16,7 @@ class Sponsor {
|
|
|
13
16
|
this.paymasterType = paymasterType;
|
|
14
17
|
}
|
|
15
18
|
async getPaymasterAddress(options = globalThis.globalEnvOption) {
|
|
16
|
-
const chain = await
|
|
19
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
17
20
|
const chainId = await chain.getChainId();
|
|
18
21
|
if (!this.paymasterAddress && chainId !== this.chainId) {
|
|
19
22
|
this.paymasterAddress = await chain.getAddress(this.name);
|
|
@@ -23,7 +26,7 @@ class Sponsor {
|
|
|
23
26
|
}
|
|
24
27
|
/** True if the specified sponsor is in blacklist mode. **/
|
|
25
28
|
async getListMode(sponsor, options = globalThis.globalEnvOption) {
|
|
26
|
-
const chain = await
|
|
29
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
27
30
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getListMode', [sponsor], chain);
|
|
28
31
|
}
|
|
29
32
|
async setToBlacklistMode() {
|
|
@@ -74,5 +77,4 @@ class Sponsor {
|
|
|
74
77
|
return await this.batchTransaction(calldata);
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
|
-
exports.Sponsor = Sponsor;
|
|
78
80
|
//# sourceMappingURL=Sponsor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sponsor.js","sourceRoot":"","sources":["../../../src/sponsors/Sponsor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Sponsor.js","sourceRoot":"","sources":["../../../src/sponsors/Sponsor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const types_1 = require("./types");
|
|
13
|
-
class TokenSponsor extends Sponsor_1.Sponsor {
|
|
1
|
+
import { concat, encodeAbiParameters } from 'viem';
|
|
2
|
+
import { addTransaction } from '../apis/PaymasterApis';
|
|
3
|
+
import { TOKEN_SPONSOR_SUPPORT_CHAINS } from '../common';
|
|
4
|
+
import { AddressZero, TOKEN_PAYMASTER_CONTRACT_INTERFACE, } from '../common/constants';
|
|
5
|
+
import { Chain, Token } from '../data';
|
|
6
|
+
import { ErrorCode, InvalidParameterError, ResourceNotFoundError, } from '../errors';
|
|
7
|
+
import { getPermitHash, getWalletPermitNonce } from '../utils';
|
|
8
|
+
import { Sponsor } from './Sponsor';
|
|
9
|
+
import { PaymasterType } from './types';
|
|
10
|
+
export class TokenSponsor extends Sponsor {
|
|
11
|
+
token;
|
|
14
12
|
constructor(options = globalThis.globalEnvOption) {
|
|
15
|
-
super(options,
|
|
13
|
+
super(options, TOKEN_PAYMASTER_CONTRACT_INTERFACE, 'tokenPaymasterAddress', PaymasterType.TokenSponsor);
|
|
16
14
|
if (!options.gasSponsor?.token) {
|
|
17
|
-
throw new
|
|
15
|
+
throw new InvalidParameterError(ErrorCode.MissingParameter, 'token field is missing', { gasSponsor: options.gasSponsor }, 'Provide correct token name or address.', 'https://docs.fun.xyz');
|
|
18
16
|
}
|
|
19
17
|
this.token = options.gasSponsor.token.toLowerCase();
|
|
20
18
|
}
|
|
21
19
|
async getFunSponsorAddress(options = globalThis.globalEnvOption) {
|
|
22
20
|
if (!this.sponsorAddress) {
|
|
23
|
-
const chain = await
|
|
24
|
-
if (
|
|
21
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
22
|
+
if (TOKEN_SPONSOR_SUPPORT_CHAINS.includes(await chain.getChainId())) {
|
|
25
23
|
this.sponsorAddress = await chain.getAddress('funTokenSponsorAddress');
|
|
26
24
|
}
|
|
27
25
|
else {
|
|
28
|
-
throw new
|
|
29
|
-
tokenSponsorSupportChains:
|
|
26
|
+
throw new ResourceNotFoundError(ErrorCode.MissingParameter, 'The network you are working with does not support token Fun Sponsor. You will need to run and manage your own token sponsor.', {
|
|
27
|
+
tokenSponsorSupportChains: TOKEN_SPONSOR_SUPPORT_CHAINS,
|
|
30
28
|
chain: await chain.getChainId(),
|
|
31
29
|
}, 'Manage your own token sponsor, or use a supported network', 'https://docs.fun.xyz');
|
|
32
30
|
}
|
|
@@ -35,16 +33,16 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
35
33
|
}
|
|
36
34
|
async getPaymasterAndData(options = globalThis.globalEnvOption) {
|
|
37
35
|
// TODO: temporary fallback, remove after refactoring -- Panda
|
|
38
|
-
const chain = await
|
|
36
|
+
const chain = await Chain.getChain({
|
|
39
37
|
chainIdentifier: globalThis.globalEnvOption.chain,
|
|
40
38
|
});
|
|
41
|
-
const tokenAddress = await
|
|
39
|
+
const tokenAddress = await Token.getAddress(this.token, chain);
|
|
42
40
|
const paymasterAddress = await this.getPaymasterAddress(options);
|
|
43
41
|
const sponsor = await this.getFunSponsorAddress(options);
|
|
44
|
-
return
|
|
42
|
+
return concat([paymasterAddress, sponsor, tokenAddress]);
|
|
45
43
|
}
|
|
46
44
|
async getPaymasterAndDataPermit(partialOp, walletAddr, userId, auth, options = globalThis.globalEnvOption) {
|
|
47
|
-
const chain = await
|
|
45
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
48
46
|
const estimateGasSignature = await auth.getEstimateGasSignature(userId, partialOp);
|
|
49
47
|
partialOp.userOp.signature = estimateGasSignature.toLowerCase();
|
|
50
48
|
const estimationPaymasterAddress = await chain.getAddress('estimationPaymasterAddress');
|
|
@@ -58,14 +56,14 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
58
56
|
(verificationGasLimit + 400000n) * 3n +
|
|
59
57
|
preVerificationGas) *
|
|
60
58
|
BigInt(maxFeePerGas);
|
|
61
|
-
const tokenAddress = await
|
|
62
|
-
const decAmount = await
|
|
63
|
-
const nonce = await
|
|
59
|
+
const tokenAddress = await Token.getAddress(this.token, chain);
|
|
60
|
+
const decAmount = await TOKEN_PAYMASTER_CONTRACT_INTERFACE.readFromChain(paymasterAddress, 'getTokenValueOfEth', [tokenAddress, requiredGas], chain);
|
|
61
|
+
const nonce = await getWalletPermitNonce(walletAddr, chain);
|
|
64
62
|
const client = await chain.getClient();
|
|
65
63
|
const chainId = await client.getChainId();
|
|
66
|
-
const hash = await
|
|
64
|
+
const hash = await getPermitHash(tokenAddress, paymasterAddress, decAmount, nonce, walletAddr, BigInt(chainId));
|
|
67
65
|
const sig = await auth.signHash(hash);
|
|
68
|
-
const encodedSig =
|
|
66
|
+
const encodedSig = encodeAbiParameters([
|
|
69
67
|
{ type: 'address' },
|
|
70
68
|
{ type: 'address' },
|
|
71
69
|
{ type: 'uint256' },
|
|
@@ -73,52 +71,52 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
73
71
|
{ type: 'bytes' },
|
|
74
72
|
], [tokenAddress, paymasterAddress, decAmount, nonce, sig]);
|
|
75
73
|
const sponsor = await this.getFunSponsorAddress(options);
|
|
76
|
-
const encodedAddresses =
|
|
77
|
-
const encodedData =
|
|
78
|
-
return
|
|
74
|
+
const encodedAddresses = encodeAbiParameters([{ type: 'address' }, { type: 'address' }], [sponsor, tokenAddress]);
|
|
75
|
+
const encodedData = encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [encodedAddresses, encodedSig]);
|
|
76
|
+
return concat([paymasterAddress, encodedData]);
|
|
79
77
|
}
|
|
80
78
|
async stake(sponsor, amount, options = globalThis.globalEnvOption) {
|
|
81
79
|
const chainIdentifier = options.chain ?? globalThis.globalEnvOption.chain;
|
|
82
|
-
const chain = await
|
|
83
|
-
const amountdec = await
|
|
80
|
+
const chain = await Chain.getChain({ chainIdentifier });
|
|
81
|
+
const amountdec = await Token.getDecimalAmount('eth', amount, chain);
|
|
84
82
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'addEthDepositTo', [sponsor, amountdec], BigInt(amountdec));
|
|
85
83
|
}
|
|
86
84
|
async unstake(receiver, amount, options = globalThis.globalEnvOption) {
|
|
87
85
|
// TODO: temporary fallback, remove after refactoring -- Panda
|
|
88
86
|
const chainIdentifier = options.chain ?? globalThis.globalEnvOption.chain;
|
|
89
|
-
const chain = await
|
|
90
|
-
const amountdec = await
|
|
87
|
+
const chain = await Chain.getChain({ chainIdentifier });
|
|
88
|
+
const amountdec = await Token.getDecimalAmount('eth', amount, chain);
|
|
91
89
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'withdrawEthDepositTo', [receiver, amountdec]);
|
|
92
90
|
}
|
|
93
91
|
async getUnlockBlock(sponsor, token, options = globalThis.globalEnvOption) {
|
|
94
92
|
// TODO: temporary fallback, remove after refactoring -- Panda
|
|
95
|
-
const chain = await
|
|
93
|
+
const chain = await Chain.getChain({
|
|
96
94
|
chainIdentifier: globalThis.globalEnvOption.chain,
|
|
97
95
|
});
|
|
98
|
-
const tokenAddr = (await
|
|
99
|
-
?
|
|
100
|
-
: await
|
|
96
|
+
const tokenAddr = (await Token.isNative(token))
|
|
97
|
+
? AddressZero
|
|
98
|
+
: await Token.getAddress(token, chain);
|
|
101
99
|
return (await this.getAllTokenData(tokenAddr, sponsor, options)).unlockBlock;
|
|
102
100
|
}
|
|
103
101
|
// false means unlocked, true means locked
|
|
104
102
|
async getLockState(sponsor, token, options = globalThis.globalEnvOption) {
|
|
105
|
-
const chain = await
|
|
106
|
-
const tokenAddr = (await
|
|
107
|
-
?
|
|
108
|
-
: await
|
|
103
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
104
|
+
const tokenAddr = (await Token.isNative(token))
|
|
105
|
+
? AddressZero
|
|
106
|
+
: await Token.getAddress(token, chain);
|
|
109
107
|
const unlockBlock = await this.getUnlockBlock(tokenAddr, sponsor);
|
|
110
108
|
const provider = await chain.getClient();
|
|
111
109
|
const currentBlock = await provider.getBlockNumber();
|
|
112
110
|
return unlockBlock === 0n || unlockBlock > currentBlock;
|
|
113
111
|
}
|
|
114
112
|
async getTokenInfo(token, options = globalThis.globalEnvOption) {
|
|
115
|
-
const chain = await
|
|
116
|
-
const tokenAddress = await
|
|
113
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
114
|
+
const tokenAddress = await Token.getAddress(token, chain);
|
|
117
115
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getToken', [tokenAddress], chain);
|
|
118
116
|
}
|
|
119
117
|
async getAllTokenData(spender, token, options = globalThis.globalEnvOption) {
|
|
120
|
-
const chain = await
|
|
121
|
-
const tokenAddress = await
|
|
118
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
119
|
+
const tokenAddress = await Token.getAddress(token, chain);
|
|
122
120
|
const data = await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getAllTokenData', [tokenAddress, spender], chain);
|
|
123
121
|
return {
|
|
124
122
|
unlockBlock: data[0],
|
|
@@ -126,11 +124,11 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
126
124
|
};
|
|
127
125
|
}
|
|
128
126
|
async getTokenBalance(spender, token, options = globalThis.globalEnvOption) {
|
|
129
|
-
const chain = await
|
|
130
|
-
const tokenData = new
|
|
127
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
128
|
+
const tokenData = new Token(token, chain);
|
|
131
129
|
let tokenAddress;
|
|
132
130
|
if (tokenData.isNative) {
|
|
133
|
-
tokenAddress =
|
|
131
|
+
tokenAddress = AddressZero;
|
|
134
132
|
}
|
|
135
133
|
else {
|
|
136
134
|
tokenAddress = await tokenData.getAddress();
|
|
@@ -138,85 +136,85 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
138
136
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getTokenBalance', [tokenAddress, spender], chain);
|
|
139
137
|
}
|
|
140
138
|
async getAllTokens(options = globalThis.globalEnvOption) {
|
|
141
|
-
const chain = await
|
|
139
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
142
140
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getAllTokens', [], chain);
|
|
143
141
|
}
|
|
144
142
|
async addUsableToken(oracle, token, aggregator, options = globalThis.globalEnvOption) {
|
|
145
|
-
const chain = await
|
|
146
|
-
const decimals = await
|
|
147
|
-
const tokenAddress = await
|
|
143
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
144
|
+
const decimals = await Token.getDecimals(token, chain);
|
|
145
|
+
const tokenAddress = await Token.getAddress(token, chain);
|
|
148
146
|
const data = [oracle, tokenAddress, decimals, aggregator];
|
|
149
147
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'setTokenData', [data]);
|
|
150
148
|
}
|
|
151
149
|
async depositToken(token, spender, amount, options = globalThis.globalEnvOption) {
|
|
152
|
-
const chain = await
|
|
153
|
-
const tokenObj = new
|
|
150
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
151
|
+
const tokenObj = new Token(token, chain);
|
|
154
152
|
const tokenAddress = await tokenObj.getAddress();
|
|
155
153
|
const amountDec = await tokenObj.getDecimalAmount(amount);
|
|
156
154
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'addTokenDepositTo', [tokenAddress, spender, amountDec]);
|
|
157
155
|
}
|
|
158
156
|
async withdrawToken(token, receiver, amount, options = globalThis.globalEnvOption) {
|
|
159
|
-
const chain = await
|
|
160
|
-
const tokenObj = new
|
|
157
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
158
|
+
const tokenObj = new Token(token, chain);
|
|
161
159
|
const tokenAddress = await tokenObj.getAddress();
|
|
162
160
|
const amountdec = await tokenObj.getDecimalAmount(amount);
|
|
163
161
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'withdrawTokenDepositTo', [tokenAddress, receiver, amountdec]);
|
|
164
162
|
}
|
|
165
163
|
async lockTokenDeposit(token, options = globalThis.globalEnvOption) {
|
|
166
|
-
const chain = await
|
|
167
|
-
const tokenData = new
|
|
164
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
165
|
+
const tokenData = new Token(token, chain);
|
|
168
166
|
const tokenAddress = tokenData.isNative
|
|
169
|
-
?
|
|
167
|
+
? AddressZero
|
|
170
168
|
: await tokenData.getAddress();
|
|
171
169
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'lockTokenDeposit', [tokenAddress]);
|
|
172
170
|
}
|
|
173
171
|
async unlockTokenDepositAfter(token, blocksToWait, options = globalThis.globalEnvOption) {
|
|
174
|
-
const chain = await
|
|
175
|
-
const tokenData = new
|
|
172
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
173
|
+
const tokenData = new Token(token, chain);
|
|
176
174
|
const tokenAddress = tokenData.isNative
|
|
177
|
-
?
|
|
175
|
+
? AddressZero
|
|
178
176
|
: await tokenData.getAddress();
|
|
179
177
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'unlockTokenDepositAfter', [tokenAddress, blocksToWait]);
|
|
180
178
|
}
|
|
181
179
|
async lockDeposit() {
|
|
182
|
-
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'lockTokenDeposit', [
|
|
180
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'lockTokenDeposit', [AddressZero]);
|
|
183
181
|
}
|
|
184
182
|
async unlockDepositAfter(blocksToWait) {
|
|
185
|
-
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'unlockTokenDepositAfter', [
|
|
183
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'unlockTokenDepositAfter', [AddressZero, blocksToWait]);
|
|
186
184
|
}
|
|
187
185
|
async approve(approver, token, amount, options = globalThis.globalEnvOption) {
|
|
188
186
|
const gasSponsorAddress = await this.getPaymasterAddress();
|
|
189
|
-
const chain = await
|
|
190
|
-
|
|
187
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
188
|
+
addTransaction(await chain.getChainId(), Date.now(), '0x', {
|
|
191
189
|
action: 'approve',
|
|
192
190
|
amount,
|
|
193
191
|
from: approver,
|
|
194
192
|
to: await this.getPaymasterAddress(options),
|
|
195
193
|
token,
|
|
196
194
|
}, this.paymasterType, approver);
|
|
197
|
-
return
|
|
195
|
+
return Token.approve(token, gasSponsorAddress, amount, chain);
|
|
198
196
|
}
|
|
199
197
|
async getSpenderBlacklisted(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
200
|
-
const chain = await
|
|
198
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
201
199
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getSpenderBlacklisted', [spender, sponsor], chain);
|
|
202
200
|
}
|
|
203
201
|
async getSpenderWhitelisted(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
204
|
-
const chain = await
|
|
202
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
205
203
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getSpenderWhitelisted', [spender, sponsor], chain);
|
|
206
204
|
}
|
|
207
205
|
async getTokenWhitelisted(sponsor, token, options = globalThis.globalEnvOption) {
|
|
208
|
-
const chain = await
|
|
209
|
-
const tokenAddress = await
|
|
206
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
207
|
+
const tokenAddress = await Token.getAddress(token, chain);
|
|
210
208
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getTokenWhitelisted', [tokenAddress, sponsor], chain);
|
|
211
209
|
}
|
|
212
210
|
async setTokenToWhitelistMode() {
|
|
213
211
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'setTokenListMode', [false]);
|
|
214
212
|
}
|
|
215
213
|
async batchWhitelistTokens(tokens, modes, options = globalThis.globalEnvOption) {
|
|
216
|
-
const chain = await
|
|
214
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
217
215
|
const calldata = [];
|
|
218
216
|
for (let i = 0; i < tokens.length; i++) {
|
|
219
|
-
const tokenAddress = await
|
|
217
|
+
const tokenAddress = await Token.getAddress(tokens[i], chain);
|
|
220
218
|
calldata.push(this.contractInterface.encodeData('setTokenWhitelistMode', [
|
|
221
219
|
tokenAddress,
|
|
222
220
|
modes[i],
|
|
@@ -225,30 +223,29 @@ class TokenSponsor extends Sponsor_1.Sponsor {
|
|
|
225
223
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'batchActions', [calldata]);
|
|
226
224
|
}
|
|
227
225
|
async getTokenListMode(sponsor, options = globalThis.globalEnvOption) {
|
|
228
|
-
const chain = await
|
|
226
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
229
227
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getTokenListMode', [sponsor], chain);
|
|
230
228
|
}
|
|
231
229
|
async getTokenBlacklisted(sponsor, token, options = globalThis.globalEnvOption) {
|
|
232
|
-
const chain = await
|
|
233
|
-
const tokenAddress = await
|
|
230
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
231
|
+
const tokenAddress = await Token.getAddress(token, chain);
|
|
234
232
|
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), 'getTokenBlacklisted', [tokenAddress, sponsor], chain);
|
|
235
233
|
}
|
|
236
234
|
async setTokenToBlacklistMode() {
|
|
237
235
|
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'setTokenListMode', [true]);
|
|
238
236
|
}
|
|
239
237
|
async batchBlacklistTokens(tokens, modes, options = globalThis.globalEnvOption) {
|
|
240
|
-
const chain = await
|
|
238
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
241
239
|
const calldata = [];
|
|
242
240
|
for (let i = 0; i < tokens.length; i++) {
|
|
243
|
-
const tokenAddress = await
|
|
241
|
+
const tokenAddress = await Token.getAddress(tokens[i], chain);
|
|
244
242
|
calldata.push(this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), 'setTokenBlacklistMode', [tokenAddress, modes[i]]));
|
|
245
243
|
}
|
|
246
244
|
return this.batchTransaction(calldata);
|
|
247
245
|
}
|
|
248
246
|
static async getPaymasterAddress(options = globalThis.globalEnvOption) {
|
|
249
|
-
const chain = await
|
|
247
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
250
248
|
return await chain.getAddress(this.name);
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
|
-
exports.TokenSponsor = TokenSponsor;
|
|
254
251
|
//# sourceMappingURL=TokenSponsor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/TokenSponsor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/TokenSponsor.ts"],"names":[],"mappings":"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"}
|