@funkit/core 2.1.2-next.0 → 2.1.2-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +16641 -12
- package/dist/index.js.map +7 -1
- package/dist/src/common/constants.d.ts +42 -0
- package/dist/src/viem/Converter.d.ts +4 -4
- package/package.json +6 -4
- package/dist/src/abis/ApproveAndExec.json +0 -106
- package/dist/src/abis/ApproveAndSwap.json +0 -141
- package/dist/src/abis/CheckoutPaymaster.json +0 -3358
- package/dist/src/abis/ERC20.json +0 -1
- package/dist/src/abis/ERC721.json +0 -1
- package/dist/src/abis/EntryPoint.json +0 -1023
- package/dist/src/abis/EstimationPaymaster.json +0 -266
- package/dist/src/abis/FeePercentOracle.json +0 -218
- package/dist/src/abis/FunWallet.json +0 -758
- package/dist/src/abis/FunWalletFactory.json +0 -232
- package/dist/src/abis/GaslessPaymaster.json +0 -558
- package/dist/src/abis/LidoWithdrawQueue.json +0 -1
- package/dist/src/abis/RoleBasedAccessControl.json +0 -836
- package/dist/src/abis/TestNFT.json +0 -226
- package/dist/src/abis/TokenPaymaster.json +0 -696
- package/dist/src/abis/TokenPriceOracle.json +0 -57
- package/dist/src/abis/UniswapV2Factory.json +0 -1
- package/dist/src/abis/UniswapV2Router02.json +0 -1
- package/dist/src/abis/UniswapV3LimitOrder.json +0 -1
- package/dist/src/abis/UserAuthentication.json +0 -338
- package/dist/src/abis/univ3factory.json +0 -1
- package/dist/src/abis/univ3quoter.json +0 -1
- package/dist/src/abis/univ3router.json +0 -1
- package/dist/src/actions/AccessControl.js +0 -87
- package/dist/src/actions/AccessControl.js.map +0 -1
- package/dist/src/actions/BatchActions.js +0 -8
- package/dist/src/actions/BatchActions.js.map +0 -1
- package/dist/src/actions/Bridge.js +0 -42
- package/dist/src/actions/Bridge.js.map +0 -1
- package/dist/src/actions/FirstClassActions.js +0 -329
- package/dist/src/actions/FirstClassActions.js.map +0 -1
- package/dist/src/actions/Group.js +0 -30
- package/dist/src/actions/Group.js.map +0 -1
- package/dist/src/actions/LimitOrder.js +0 -43
- package/dist/src/actions/LimitOrder.js.map +0 -1
- package/dist/src/actions/Stake.js +0 -108
- package/dist/src/actions/Stake.js.map +0 -1
- package/dist/src/actions/Swap.js +0 -150
- package/dist/src/actions/Swap.js.map +0 -1
- package/dist/src/actions/Token.js +0 -103
- package/dist/src/actions/Token.js.map +0 -1
- package/dist/src/actions/index.js +0 -8
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/actions/types.js +0 -14
- package/dist/src/actions/types.js.map +0 -1
- package/dist/src/apis/AccessControlApis.js +0 -19
- package/dist/src/apis/AccessControlApis.js.map +0 -1
- package/dist/src/apis/BridgeApis.js +0 -54
- package/dist/src/apis/BridgeApis.js.map +0 -1
- package/dist/src/apis/ContractApis.js +0 -7
- package/dist/src/apis/ContractApis.js.map +0 -1
- package/dist/src/apis/GroupApis.js +0 -15
- package/dist/src/apis/GroupApis.js.map +0 -1
- package/dist/src/apis/InfoApis.js +0 -53
- package/dist/src/apis/InfoApis.js.map +0 -1
- package/dist/src/apis/ListenerApis.js +0 -31
- package/dist/src/apis/ListenerApis.js.map +0 -1
- package/dist/src/apis/NFTApis.js +0 -29
- package/dist/src/apis/NFTApis.js.map +0 -1
- package/dist/src/apis/OperationApis.js +0 -76
- package/dist/src/apis/OperationApis.js.map +0 -1
- package/dist/src/apis/PaymasterApis.js +0 -18
- package/dist/src/apis/PaymasterApis.js.map +0 -1
- package/dist/src/apis/SwapApis.js +0 -40
- package/dist/src/apis/SwapApis.js.map +0 -1
- package/dist/src/apis/UserApis.js +0 -56
- package/dist/src/apis/UserApis.js.map +0 -1
- package/dist/src/apis/index.js +0 -9
- package/dist/src/apis/index.js.map +0 -1
- package/dist/src/apis/types.js +0 -2
- package/dist/src/apis/types.js.map +0 -1
- package/dist/src/auth/Auth.js +0 -321
- package/dist/src/auth/Auth.js.map +0 -1
- package/dist/src/auth/SessionKeyAuth.js +0 -115
- package/dist/src/auth/SessionKeyAuth.js.map +0 -1
- package/dist/src/auth/index.js +0 -3
- package/dist/src/auth/index.js.map +0 -1
- package/dist/src/auth/types.js +0 -2
- package/dist/src/auth/types.js.map +0 -1
- package/dist/src/common/constants.js +0 -477
- package/dist/src/common/constants.js.map +0 -1
- package/dist/src/common/index.js +0 -3
- package/dist/src/common/index.js.map +0 -1
- package/dist/src/common/types.js +0 -2
- package/dist/src/common/types.js.map +0 -1
- package/dist/src/config/Config.js +0 -50
- package/dist/src/config/Config.js.map +0 -1
- package/dist/src/config/index.js +0 -3
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/config/types.js +0 -2
- package/dist/src/config/types.js.map +0 -1
- package/dist/src/data/Chain.js +0 -209
- package/dist/src/data/Chain.js.map +0 -1
- package/dist/src/data/NFT.js +0 -101
- package/dist/src/data/NFT.js.map +0 -1
- package/dist/src/data/Operation.js +0 -88
- package/dist/src/data/Operation.js.map +0 -1
- package/dist/src/data/SolidityData.js +0 -84
- package/dist/src/data/SolidityData.js.map +0 -1
- package/dist/src/data/Token.js +0 -118
- package/dist/src/data/Token.js.map +0 -1
- package/dist/src/data/index.js +0 -7
- package/dist/src/data/index.js.map +0 -1
- package/dist/src/data/types.js +0 -22
- package/dist/src/data/types.js.map +0 -1
- package/dist/src/errors/BaseError.js +0 -25
- package/dist/src/errors/BaseError.js.map +0 -1
- package/dist/src/errors/ClientError.js +0 -63
- package/dist/src/errors/ClientError.js.map +0 -1
- package/dist/src/errors/ServerError.js +0 -13
- package/dist/src/errors/ServerError.js.map +0 -1
- package/dist/src/errors/errors.json +0 -626
- package/dist/src/errors/index.js +0 -5
- package/dist/src/errors/index.js.map +0 -1
- package/dist/src/errors/types.js +0 -48
- package/dist/src/errors/types.js.map +0 -1
- package/dist/src/sponsors/CheckoutSponsor.js +0 -61
- package/dist/src/sponsors/CheckoutSponsor.js.map +0 -1
- package/dist/src/sponsors/GaslessSponsor.js +0 -75
- package/dist/src/sponsors/GaslessSponsor.js.map +0 -1
- package/dist/src/sponsors/Sponsor.js +0 -80
- package/dist/src/sponsors/Sponsor.js.map +0 -1
- package/dist/src/sponsors/TokenSponsor.js +0 -251
- package/dist/src/sponsors/TokenSponsor.js.map +0 -1
- package/dist/src/sponsors/index.js +0 -5
- package/dist/src/sponsors/index.js.map +0 -1
- package/dist/src/sponsors/types.js +0 -8
- package/dist/src/sponsors/types.js.map +0 -1
- package/dist/src/utils/ApiUtils.js +0 -94
- package/dist/src/utils/ApiUtils.js.map +0 -1
- package/dist/src/utils/AuthUtils.js +0 -31
- package/dist/src/utils/AuthUtils.js.map +0 -1
- package/dist/src/utils/ChainUtils.js +0 -131
- package/dist/src/utils/ChainUtils.js.map +0 -1
- package/dist/src/utils/CheckoutUtils.js +0 -28
- package/dist/src/utils/CheckoutUtils.js.map +0 -1
- package/dist/src/utils/GroupUtils.js +0 -26
- package/dist/src/utils/GroupUtils.js.map +0 -1
- package/dist/src/utils/MerkleUtils.js +0 -86
- package/dist/src/utils/MerkleUtils.js.map +0 -1
- package/dist/src/utils/PaymasterUtils.js +0 -17
- package/dist/src/utils/PaymasterUtils.js.map +0 -1
- package/dist/src/utils/SwapUtils.js +0 -193
- package/dist/src/utils/SwapUtils.js.map +0 -1
- package/dist/src/utils/TypeUtils.js +0 -9
- package/dist/src/utils/TypeUtils.js.map +0 -1
- package/dist/src/utils/UserOpUtils.js +0 -171
- package/dist/src/utils/UserOpUtils.js.map +0 -1
- package/dist/src/utils/ViemUtils.js +0 -30
- package/dist/src/utils/ViemUtils.js.map +0 -1
- package/dist/src/utils/WalletUtils.js +0 -56
- package/dist/src/utils/WalletUtils.js.map +0 -1
- package/dist/src/utils/index.js +0 -9
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/viem/ContractInterface.js +0 -90
- package/dist/src/viem/ContractInterface.js.map +0 -1
- package/dist/src/viem/Converter.js +0 -47
- package/dist/src/viem/Converter.js.map +0 -1
- package/dist/src/viem/index.js +0 -3
- package/dist/src/viem/index.js.map +0 -1
- package/dist/src/wallet/FunWallet.js +0 -804
- package/dist/src/wallet/FunWallet.js.map +0 -1
- package/dist/src/wallet/index.js +0 -3
- package/dist/src/wallet/index.js.map +0 -1
- package/dist/src/wallet/types.js +0 -2
- package/dist/src/wallet/types.js.map +0 -1
package/dist/src/data/Chain.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { createPublicClient, http } from 'viem';
|
|
2
|
-
import { estimateOp, getChainFromId, getChainFromName, getGasPrice, getModuleInfo, } from '../apis';
|
|
3
|
-
import { BASE_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION, CONTRACT_ADDRESSES, ENTRYPOINT_CONTRACT_INTERFACE, ETHEREUM_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION, OPTIMISM_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION, } from '../common';
|
|
4
|
-
import { ErrorCode, InternalFailureError, InvalidParameterError, ResourceNotFoundError, } from '../errors';
|
|
5
|
-
import { isContract } from '../utils';
|
|
6
|
-
export class Chain {
|
|
7
|
-
initialized = false;
|
|
8
|
-
id;
|
|
9
|
-
name;
|
|
10
|
-
addresses = {};
|
|
11
|
-
currency;
|
|
12
|
-
rpcUrl;
|
|
13
|
-
client;
|
|
14
|
-
static chain;
|
|
15
|
-
constructor(chainInput) {
|
|
16
|
-
if (!chainInput.chainIdentifier && !chainInput.rpcUrl) {
|
|
17
|
-
throw new InvalidParameterError(ErrorCode.InvalidChainIdentifier, 'valid chain identifier or rpcUrl is required, could be chainId, chainName, Fun Chain object, or rpcUrl', { chainInput }, 'Please provide valid chain identifier or rpcUrl', 'https://docs.fun.xyz');
|
|
18
|
-
}
|
|
19
|
-
if (chainInput.rpcUrl) {
|
|
20
|
-
this.rpcUrl = chainInput.rpcUrl;
|
|
21
|
-
}
|
|
22
|
-
else if (chainInput.chainIdentifier instanceof Chain) {
|
|
23
|
-
return chainInput.chainIdentifier;
|
|
24
|
-
}
|
|
25
|
-
else if (typeof chainInput.chainIdentifier === 'number' ||
|
|
26
|
-
Number(chainInput.chainIdentifier)) {
|
|
27
|
-
this.id = chainInput.chainIdentifier.toString();
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.name = chainInput.chainIdentifier;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
static async getChain(chainInput) {
|
|
34
|
-
if (chainInput.chainIdentifier instanceof Chain) {
|
|
35
|
-
return chainInput.chainIdentifier;
|
|
36
|
-
}
|
|
37
|
-
else if (!Chain.chain ||
|
|
38
|
-
((await Chain.chain.getChainId()) !==
|
|
39
|
-
chainInput.chainIdentifier?.toString() &&
|
|
40
|
-
(await Chain.chain.getChainName()) !==
|
|
41
|
-
chainInput.chainIdentifier?.toString() &&
|
|
42
|
-
(await Chain.chain.getRpcUrl()) !== chainInput.rpcUrl)) {
|
|
43
|
-
if (typeof chainInput.chainIdentifier === 'string') {
|
|
44
|
-
chainInput.chainIdentifier = chainInput.chainIdentifier.replace(/\s/g, '');
|
|
45
|
-
}
|
|
46
|
-
if (chainInput.chainIdentifier === 'ethereum-goerli') {
|
|
47
|
-
chainInput.chainIdentifier = 'goerli';
|
|
48
|
-
}
|
|
49
|
-
if (chainInput.chainIdentifier === 'polygon') {
|
|
50
|
-
chainInput.chainIdentifier = 'polygon-mainnet';
|
|
51
|
-
}
|
|
52
|
-
Chain.chain = new Chain(chainInput);
|
|
53
|
-
}
|
|
54
|
-
return Chain.chain;
|
|
55
|
-
}
|
|
56
|
-
async init() {
|
|
57
|
-
if (this.initialized)
|
|
58
|
-
return;
|
|
59
|
-
if (this.id) {
|
|
60
|
-
await this.loadChain(this.id);
|
|
61
|
-
}
|
|
62
|
-
else if (this.name) {
|
|
63
|
-
await this.loadChain(this.name);
|
|
64
|
-
}
|
|
65
|
-
else if (this.rpcUrl) {
|
|
66
|
-
await this.loadChainFromRpc();
|
|
67
|
-
}
|
|
68
|
-
this.initialized = true;
|
|
69
|
-
}
|
|
70
|
-
async loadChainFromRpc() {
|
|
71
|
-
this.client = createPublicClient({
|
|
72
|
-
transport: http(this.rpcUrl),
|
|
73
|
-
});
|
|
74
|
-
this.id = (await this.client.getChainId()).toString();
|
|
75
|
-
await this.loadChain(this.id);
|
|
76
|
-
}
|
|
77
|
-
async loadChain(identifier) {
|
|
78
|
-
let chain;
|
|
79
|
-
if (!Number(identifier)) {
|
|
80
|
-
chain = await getChainFromName(identifier);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
chain = await getChainFromId(identifier);
|
|
84
|
-
}
|
|
85
|
-
this.id = chain.id;
|
|
86
|
-
this.name = chain.name;
|
|
87
|
-
this.currency = chain.nativeCurrency.symbol;
|
|
88
|
-
const abisAddresses = Object.keys(CONTRACT_ADDRESSES).reduce((result, key) => {
|
|
89
|
-
result[key] = CONTRACT_ADDRESSES[key][this.id];
|
|
90
|
-
return result;
|
|
91
|
-
}, {});
|
|
92
|
-
const addresses = { ...abisAddresses };
|
|
93
|
-
this.rpcUrl = chain.rpcUrls.default;
|
|
94
|
-
this.client = createPublicClient({
|
|
95
|
-
transport: http(this.rpcUrl),
|
|
96
|
-
});
|
|
97
|
-
Object.assign(this, { ...this, addresses });
|
|
98
|
-
}
|
|
99
|
-
async getChainId() {
|
|
100
|
-
await this.init();
|
|
101
|
-
return this.id;
|
|
102
|
-
}
|
|
103
|
-
async getChainName() {
|
|
104
|
-
await this.init();
|
|
105
|
-
return this.name;
|
|
106
|
-
}
|
|
107
|
-
async getRpcUrl() {
|
|
108
|
-
await this.init();
|
|
109
|
-
return this.rpcUrl;
|
|
110
|
-
}
|
|
111
|
-
async getAddress(name) {
|
|
112
|
-
await this.init();
|
|
113
|
-
const res = this.addresses[name];
|
|
114
|
-
if (!res) {
|
|
115
|
-
throw new ResourceNotFoundError(ErrorCode.AddressNotFound, 'address not found', { name }, 'Provide correct name to query address', 'https://docs.fun.xyz');
|
|
116
|
-
}
|
|
117
|
-
return res;
|
|
118
|
-
}
|
|
119
|
-
async getModuleAddresses(name) {
|
|
120
|
-
await this.init();
|
|
121
|
-
return await getModuleInfo(name, this.id);
|
|
122
|
-
}
|
|
123
|
-
async getCurrency() {
|
|
124
|
-
await this.init();
|
|
125
|
-
return this.currency;
|
|
126
|
-
}
|
|
127
|
-
async getClient() {
|
|
128
|
-
await this.init();
|
|
129
|
-
return this.client;
|
|
130
|
-
}
|
|
131
|
-
async getFeeData() {
|
|
132
|
-
await this.init();
|
|
133
|
-
let result;
|
|
134
|
-
try {
|
|
135
|
-
result = await getGasPrice(this.id);
|
|
136
|
-
}
|
|
137
|
-
catch (err) {
|
|
138
|
-
const fallBackGasPrice = await this.client.getGasPrice();
|
|
139
|
-
result = {
|
|
140
|
-
maxFeePerGas: fallBackGasPrice,
|
|
141
|
-
maxPriorityFeePerGas: fallBackGasPrice,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
return result;
|
|
145
|
-
}
|
|
146
|
-
async estimateOpGas(partialOp) {
|
|
147
|
-
await this.init();
|
|
148
|
-
if (!this.addresses || !this.addresses.entryPointAddress) {
|
|
149
|
-
throw new InternalFailureError(ErrorCode.AddressNotFound, 'entryPointAddress is required', { partialOp }, 'This is an internal error, please contact support.', 'https://docs.fun.xyz');
|
|
150
|
-
}
|
|
151
|
-
// clone partialOp and replace paymasterAndData with a workaround for pimlico since they overestimate gas limits for simulation
|
|
152
|
-
const estimationUserOp = Object.assign({}, partialOp);
|
|
153
|
-
if (this.id === '8453') {
|
|
154
|
-
estimationUserOp.paymasterAndData =
|
|
155
|
-
BASE_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION;
|
|
156
|
-
}
|
|
157
|
-
else if (this.id === '10') {
|
|
158
|
-
estimationUserOp.paymasterAndData =
|
|
159
|
-
OPTIMISM_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION;
|
|
160
|
-
}
|
|
161
|
-
else if (this.id === '1' || this.id === '36865') {
|
|
162
|
-
estimationUserOp.paymasterAndData =
|
|
163
|
-
ETHEREUM_PIMLICO_PAYMASTER_AND_DATA_ESTIMATION;
|
|
164
|
-
}
|
|
165
|
-
let { preVerificationGas, callGasLimit, verificationGasLimit } = await estimateOp({
|
|
166
|
-
chainId: this.id,
|
|
167
|
-
entryPointAddress: this.addresses.entryPointAddress,
|
|
168
|
-
userOp: estimationUserOp,
|
|
169
|
-
});
|
|
170
|
-
if (!preVerificationGas || !verificationGasLimit || !callGasLimit) {
|
|
171
|
-
throw new Error(JSON.stringify({
|
|
172
|
-
preVerificationGas,
|
|
173
|
-
callGasLimit,
|
|
174
|
-
verificationGasLimit,
|
|
175
|
-
}));
|
|
176
|
-
}
|
|
177
|
-
callGasLimit = BigInt(callGasLimit) * 2n;
|
|
178
|
-
preVerificationGas = BigInt(preVerificationGas);
|
|
179
|
-
verificationGasLimit = BigInt(verificationGasLimit) + 200000n;
|
|
180
|
-
return { preVerificationGas, verificationGasLimit, callGasLimit };
|
|
181
|
-
}
|
|
182
|
-
async getTxId(userOpHash, timeout = 60_000, interval = 5_000, fromBlock) {
|
|
183
|
-
const endtime = Date.now() + timeout;
|
|
184
|
-
const client = await this.getClient();
|
|
185
|
-
const entryPointAddress = await this.getAddress('entryPointAddress');
|
|
186
|
-
fromBlock = fromBlock ? fromBlock : (await client.getBlockNumber()) - 100n;
|
|
187
|
-
let filter;
|
|
188
|
-
while (Date.now() < endtime) {
|
|
189
|
-
let events;
|
|
190
|
-
if ((await client.getChainId()) === 84531 ||
|
|
191
|
-
(await client.getChainId()) === 36865) {
|
|
192
|
-
events = await ENTRYPOINT_CONTRACT_INTERFACE.getLog(entryPointAddress, 'UserOperationEvent', { userOpHash }, client, fromBlock);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
filter = await ENTRYPOINT_CONTRACT_INTERFACE.createFilter(entryPointAddress, 'UserOperationEvent', [userOpHash], client, fromBlock);
|
|
196
|
-
events = await client.getFilterLogs({ filter });
|
|
197
|
-
}
|
|
198
|
-
if (events.length > 0) {
|
|
199
|
-
return events[0].transactionHash;
|
|
200
|
-
}
|
|
201
|
-
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
202
|
-
}
|
|
203
|
-
return null;
|
|
204
|
-
}
|
|
205
|
-
async addressIsContract(address) {
|
|
206
|
-
return isContract(address, await this.getClient());
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=Chain.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/data/Chain.ts"],"names":[],"mappings":"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"}
|
package/dist/src/data/NFT.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { isAddress } from 'viem';
|
|
2
|
-
import { getNftAddress, getNftName } from '../apis/NFTApis';
|
|
3
|
-
import { ERC721_CONTRACT_INTERFACE } from '../common';
|
|
4
|
-
import { ErrorCode, InvalidParameterError } from '../errors';
|
|
5
|
-
import { Chain } from './Chain';
|
|
6
|
-
export class NFT {
|
|
7
|
-
address;
|
|
8
|
-
name = '';
|
|
9
|
-
constructor(input) {
|
|
10
|
-
if (!input) {
|
|
11
|
-
throw new InvalidParameterError(ErrorCode.InvalidNFTIdentifier, 'valid NFT identifier is required, could be address or name', { input }, 'Please provide valid NFT identifier', 'https://docs.fun.xyz');
|
|
12
|
-
}
|
|
13
|
-
if (isAddress(input)) {
|
|
14
|
-
this.address = input;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
this.name = input;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async approve(spender, tokenId, options = globalThis.globalEnvOption) {
|
|
21
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
22
|
-
const data = ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'approve', [spender, tokenId]);
|
|
23
|
-
return { ...data, chain };
|
|
24
|
-
}
|
|
25
|
-
async ownerOf(tokenId, options = globalThis.globalEnvOption) {
|
|
26
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
27
|
-
return await ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'ownerOf', [tokenId], chain);
|
|
28
|
-
}
|
|
29
|
-
async approveForAll(spender, options = globalThis.globalEnvOption) {
|
|
30
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
31
|
-
const data = ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'setApprovalForAll', [spender, true]);
|
|
32
|
-
return { ...data, chain };
|
|
33
|
-
}
|
|
34
|
-
async getAddress() {
|
|
35
|
-
if (!this.address) {
|
|
36
|
-
if (!this.name) {
|
|
37
|
-
throw new InvalidParameterError(ErrorCode.InvalidNFTIdentifier, 'valid NFT identifier is required, could be address or name', {}, 'Please provide valid NFT identifier', 'https://docs.fun.xyz');
|
|
38
|
-
}
|
|
39
|
-
const nft = await getNftAddress(this.name);
|
|
40
|
-
return nft.address;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return this.address;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
async getName(options = globalThis.globalEnvOption) {
|
|
47
|
-
if (!this.name && this.address) {
|
|
48
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
49
|
-
const nft = await getNftName(await chain.getChainId(), this.address);
|
|
50
|
-
return nft.name;
|
|
51
|
-
}
|
|
52
|
-
return this.name;
|
|
53
|
-
}
|
|
54
|
-
async getBalance(address, options = globalThis.globalEnvOption) {
|
|
55
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
56
|
-
return await ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'balanceOf', [address], chain);
|
|
57
|
-
}
|
|
58
|
-
async getApproved(tokenId, options = globalThis.globalEnvOption) {
|
|
59
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
60
|
-
return await ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'getApproved', [tokenId], chain);
|
|
61
|
-
}
|
|
62
|
-
async revokeForAll(spender, options = globalThis.globalEnvOption) {
|
|
63
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
64
|
-
const data = ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'setApprovalForAll', [spender, false]);
|
|
65
|
-
return { ...data, chain };
|
|
66
|
-
}
|
|
67
|
-
async transfer(sender, spender, tokenId, options = globalThis.globalEnvOption) {
|
|
68
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
69
|
-
const data = ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'transferFrom', [sender, spender, tokenId]);
|
|
70
|
-
return { ...data, chain };
|
|
71
|
-
}
|
|
72
|
-
static async approve(data, spender, tokenId, options = globalThis.globalEnvOption) {
|
|
73
|
-
const nft = new NFT(data);
|
|
74
|
-
return await nft.approve(spender, tokenId, options);
|
|
75
|
-
}
|
|
76
|
-
static async approveForAll(data, spender, options = globalThis.globalEnvOption) {
|
|
77
|
-
const nft = new NFT(data);
|
|
78
|
-
return await nft.approveForAll(spender, options);
|
|
79
|
-
}
|
|
80
|
-
static async getAddress(data) {
|
|
81
|
-
const nft = new NFT(data);
|
|
82
|
-
return await nft.getAddress();
|
|
83
|
-
}
|
|
84
|
-
static async getApproved(data, tokenId, options = globalThis.globalEnvOption) {
|
|
85
|
-
const nft = new NFT(data);
|
|
86
|
-
return await nft.getApproved(tokenId, options);
|
|
87
|
-
}
|
|
88
|
-
static async revokeForAll(data, spender, options = globalThis.globalEnvOption) {
|
|
89
|
-
const nft = new NFT(data);
|
|
90
|
-
return await nft.revokeForAll(spender, options);
|
|
91
|
-
}
|
|
92
|
-
static async transfer(data, sender, spender, tokenId, options = globalThis.globalEnvOption) {
|
|
93
|
-
const nft = new NFT(data);
|
|
94
|
-
return await nft.transfer(sender, spender, tokenId, options);
|
|
95
|
-
}
|
|
96
|
-
static async ownerOf(data, tokenId, options = globalThis.globalEnvOption) {
|
|
97
|
-
const nft = new NFT(data);
|
|
98
|
-
return await nft.ownerOf(tokenId, options);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=NFT.js.map
|
package/dist/src/data/NFT.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NFT.js","sourceRoot":"","sources":["../../../src/data/NFT.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { ENTRYPOINT_CONTRACT_INTERFACE } from '../common/constants';
|
|
2
|
-
import { calcPreVerificationGas } from '../utils';
|
|
3
|
-
import { Chain } from './Chain';
|
|
4
|
-
export class Operation {
|
|
5
|
-
opId;
|
|
6
|
-
chainId;
|
|
7
|
-
opType;
|
|
8
|
-
authType;
|
|
9
|
-
groupId;
|
|
10
|
-
message;
|
|
11
|
-
walletAddr;
|
|
12
|
-
userOp;
|
|
13
|
-
status;
|
|
14
|
-
proposer; // do not use address in case we later use non-address data as the proposer
|
|
15
|
-
proposedTime;
|
|
16
|
-
executedBy;
|
|
17
|
-
executedTime;
|
|
18
|
-
relatedOpIds;
|
|
19
|
-
signatures;
|
|
20
|
-
txid;
|
|
21
|
-
gasUsed;
|
|
22
|
-
opFeeUSD;
|
|
23
|
-
opFee;
|
|
24
|
-
executedBlockNumber;
|
|
25
|
-
executedBlockTimeStamp;
|
|
26
|
-
constructor(userOp, metadata) {
|
|
27
|
-
this.userOp = userOp;
|
|
28
|
-
this.userOp.preVerificationGas = userOp.preVerificationGas
|
|
29
|
-
? userOp.preVerificationGas
|
|
30
|
-
: calcPreVerificationGas(this.userOp);
|
|
31
|
-
this.opId = metadata.opId;
|
|
32
|
-
this.chainId = metadata.chainId;
|
|
33
|
-
this.opType = metadata.opType;
|
|
34
|
-
this.authType = metadata.authType;
|
|
35
|
-
this.groupId = metadata.groupId;
|
|
36
|
-
this.message = metadata.message;
|
|
37
|
-
this.walletAddr = metadata.walletAddr;
|
|
38
|
-
this.status = metadata.status;
|
|
39
|
-
this.proposer = metadata.proposer;
|
|
40
|
-
this.proposedTime = metadata.proposedTime;
|
|
41
|
-
this.executedBy = metadata.executedBy;
|
|
42
|
-
this.executedTime = metadata.executedTime;
|
|
43
|
-
this.relatedOpIds = metadata.relatedOpIds;
|
|
44
|
-
this.signatures = metadata.signatures;
|
|
45
|
-
this.txid = metadata.txid;
|
|
46
|
-
this.gasUsed = metadata.gasUsed;
|
|
47
|
-
this.opFeeUSD = metadata.opFeeUSD;
|
|
48
|
-
this.opFee = metadata.opFee;
|
|
49
|
-
this.executedBlockNumber = metadata.executedBlockNumber;
|
|
50
|
-
this.executedBlockTimeStamp = metadata.executedBlockTimeStamp;
|
|
51
|
-
}
|
|
52
|
-
static convertTypeToObject(op) {
|
|
53
|
-
return new Operation(op.userOp, {
|
|
54
|
-
...op,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
async getOpHash(chain) {
|
|
58
|
-
const entryPointAddress = await chain.getAddress('entryPointAddress');
|
|
59
|
-
return await ENTRYPOINT_CONTRACT_INTERFACE.readFromChain(entryPointAddress, 'getUserOpHash', [this.userOp], chain);
|
|
60
|
-
}
|
|
61
|
-
getMaxTxCost() {
|
|
62
|
-
const { maxFeePerGas, preVerificationGas, callGasLimit, verificationGasLimit, } = this.userOp;
|
|
63
|
-
const mul = this.userOp.paymasterAndData !== '0x' ? 3n : 1n;
|
|
64
|
-
const additionalGas = preVerificationGas ? preVerificationGas : 0n;
|
|
65
|
-
const requiredGas = callGasLimit + verificationGasLimit * mul + additionalGas;
|
|
66
|
-
return BigInt(maxFeePerGas) * requiredGas;
|
|
67
|
-
}
|
|
68
|
-
async estimateGas(auth, userId, options = globalThis.globalEnvOption) {
|
|
69
|
-
if (!this.userOp.signature || this.userOp.signature === '0x') {
|
|
70
|
-
this.userOp.signature = await auth.getEstimateGasSignature(userId, this);
|
|
71
|
-
}
|
|
72
|
-
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
73
|
-
const res = await chain.estimateOpGas({
|
|
74
|
-
...this.userOp,
|
|
75
|
-
paymasterAndData: '0x',
|
|
76
|
-
maxFeePerGas: 0n,
|
|
77
|
-
maxPriorityFeePerGas: 0n,
|
|
78
|
-
preVerificationGas: 0n,
|
|
79
|
-
callGasLimit: 0n,
|
|
80
|
-
verificationGasLimit: BigInt(10e6),
|
|
81
|
-
});
|
|
82
|
-
this.userOp.preVerificationGas = res.preVerificationGas;
|
|
83
|
-
this.userOp.verificationGasLimit = res.verificationGasLimit;
|
|
84
|
-
this.userOp.callGasLimit = res.callGasLimit;
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=Operation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../src/data/Operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { defaultAbiCoder } from '@ethersproject/abi';
|
|
2
|
-
import { encodeAbiParameters, pad } from 'viem';
|
|
3
|
-
import { AddressZero, HashZero } from '../common';
|
|
4
|
-
const extraDataStructType = {
|
|
5
|
-
type: 'tuple',
|
|
6
|
-
components: [
|
|
7
|
-
{ type: 'bytes32[]' },
|
|
8
|
-
{ type: 'bytes32[]' },
|
|
9
|
-
{ type: 'bytes32[]' },
|
|
10
|
-
{ type: 'bytes32[]' },
|
|
11
|
-
],
|
|
12
|
-
};
|
|
13
|
-
const walletSigEncodingTypes = [
|
|
14
|
-
{ type: 'uint8' },
|
|
15
|
-
{ type: 'bytes32' },
|
|
16
|
-
{ type: 'bytes32' },
|
|
17
|
-
{ type: 'bytes32' },
|
|
18
|
-
{ type: 'bytes' },
|
|
19
|
-
extraDataStructType,
|
|
20
|
-
];
|
|
21
|
-
export function encodeLoginData(data) {
|
|
22
|
-
let { loginType, newFunWalletOwner, index, socialHandle, salt } = data;
|
|
23
|
-
newFunWalletOwner = newFunWalletOwner ? newFunWalletOwner : AddressZero;
|
|
24
|
-
index = index ? BigInt(index) : 0n;
|
|
25
|
-
socialHandle = socialHandle ? socialHandle : '0x';
|
|
26
|
-
salt = salt ? salt : HashZero;
|
|
27
|
-
loginType = loginType ? loginType : 0;
|
|
28
|
-
return encodeAbiParameters([
|
|
29
|
-
{
|
|
30
|
-
type: 'tuple',
|
|
31
|
-
components: [
|
|
32
|
-
{ type: 'uint8' },
|
|
33
|
-
{ type: 'address' },
|
|
34
|
-
{ type: 'bytes32' },
|
|
35
|
-
{ type: 'uint256' },
|
|
36
|
-
{ type: 'bytes' },
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
], [[loginType, newFunWalletOwner, salt, index, socialHandle]]);
|
|
40
|
-
}
|
|
41
|
-
const parseExtraData = (data) => {
|
|
42
|
-
let { targetPath, selectorPath, feeRecipientPath, tokenPath } = data;
|
|
43
|
-
targetPath ??= [];
|
|
44
|
-
selectorPath ??= [];
|
|
45
|
-
feeRecipientPath ??= [];
|
|
46
|
-
tokenPath ??= [];
|
|
47
|
-
return [targetPath, selectorPath, feeRecipientPath, tokenPath];
|
|
48
|
-
};
|
|
49
|
-
export function encodeWalletSignature(data) {
|
|
50
|
-
const { userId, signature, extraData } = data;
|
|
51
|
-
let { authType, roleId, ruleId } = data;
|
|
52
|
-
roleId ??= HashZero;
|
|
53
|
-
ruleId ??= HashZero;
|
|
54
|
-
authType ??= 0;
|
|
55
|
-
const extraDataEncoded = extraData
|
|
56
|
-
? parseExtraData(extraData)
|
|
57
|
-
: [[], [], [], []];
|
|
58
|
-
return encodeAbiParameters(walletSigEncodingTypes, [
|
|
59
|
-
authType,
|
|
60
|
-
userId,
|
|
61
|
-
roleId,
|
|
62
|
-
ruleId,
|
|
63
|
-
signature,
|
|
64
|
-
extraDataEncoded,
|
|
65
|
-
]).toLowerCase();
|
|
66
|
-
}
|
|
67
|
-
export function encodeUserAuthInitData(groupUsers) {
|
|
68
|
-
const groupIds = [];
|
|
69
|
-
const groupInfos = [];
|
|
70
|
-
groupUsers.forEach((user) => {
|
|
71
|
-
groupIds.push(user.userId);
|
|
72
|
-
const paddedMemberIds = user.groupInfo.memberIds.map((memberId) => pad(memberId, { size: 32 }));
|
|
73
|
-
const sortedMemberIds = paddedMemberIds.sort((a, b) => (a > b ? -1 : 1));
|
|
74
|
-
groupInfos.push([sortedMemberIds, user.groupInfo.threshold]);
|
|
75
|
-
});
|
|
76
|
-
return defaultAbiCoder.encode(['bytes32[]', 'tuple(bytes32[],uint256)[]'], [groupIds, groupInfos]);
|
|
77
|
-
}
|
|
78
|
-
export function addresstoBytes32(data) {
|
|
79
|
-
return encodeAbiParameters([{ type: 'address' }], [data]);
|
|
80
|
-
}
|
|
81
|
-
export function toBytes32Arr(data) {
|
|
82
|
-
return encodeAbiParameters([{ type: 'bytes32[]' }], [data]);
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=SolidityData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SolidityData.js","sourceRoot":"","sources":["../../../src/data/SolidityData.ts"],"names":[],"mappings":"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"}
|
package/dist/src/data/Token.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { formatUnits, isAddress, parseUnits } from 'viem';
|
|
2
|
-
import { getTokenInfo } from '../apis';
|
|
3
|
-
import { ERC20_CONTRACT_INTERFACE } from '../common';
|
|
4
|
-
import { ErrorCode, InternalFailureError, InvalidParameterError, } from '../errors';
|
|
5
|
-
const wrappedNativeTokens = { eth: 'weth', matic: 'wmatic', mnt: 'wmnt' };
|
|
6
|
-
export class Token {
|
|
7
|
-
address;
|
|
8
|
-
chain;
|
|
9
|
-
isNative = false;
|
|
10
|
-
symbol = '';
|
|
11
|
-
constructor(input, chain) {
|
|
12
|
-
this.chain = chain;
|
|
13
|
-
if (isAddress(input)) {
|
|
14
|
-
this.address = input;
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
else if (input.toLowerCase() in wrappedNativeTokens) {
|
|
18
|
-
this.isNative = true;
|
|
19
|
-
}
|
|
20
|
-
this.symbol = input.toLowerCase();
|
|
21
|
-
}
|
|
22
|
-
async getAddress() {
|
|
23
|
-
const chainId = await this.chain.getChainId();
|
|
24
|
-
if (this.isNative) {
|
|
25
|
-
const nativeName = wrappedNativeTokens[this.symbol];
|
|
26
|
-
return await getTokenInfo(nativeName, chainId);
|
|
27
|
-
}
|
|
28
|
-
else if (this.address) {
|
|
29
|
-
return this.address;
|
|
30
|
-
}
|
|
31
|
-
else if (this.symbol) {
|
|
32
|
-
return await getTokenInfo(this.symbol, chainId);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
throw new InternalFailureError(ErrorCode.ServerMissingData, 'server missing token symbol and address info', { symbol: this.symbol, address: this.address, isNative: this.isNative }, 'Please check token symbol and address. If things look correct, contract fun support for help', 'https://docs.fun.xyz');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async getDecimals() {
|
|
39
|
-
if (this.isNative) {
|
|
40
|
-
return 18n;
|
|
41
|
-
}
|
|
42
|
-
return await ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'decimals', [], this.chain);
|
|
43
|
-
}
|
|
44
|
-
async getBalance(address) {
|
|
45
|
-
const amount = await this.getBalanceBN(address);
|
|
46
|
-
const decimals = await this.getDecimals();
|
|
47
|
-
return formatUnits(amount, Number(decimals));
|
|
48
|
-
}
|
|
49
|
-
async getBalanceBN(address) {
|
|
50
|
-
const chain = this.chain;
|
|
51
|
-
let amount = 0n;
|
|
52
|
-
if (this.isNative) {
|
|
53
|
-
const client = await chain.getClient();
|
|
54
|
-
amount = await client.getBalance({ address });
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
amount = await ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'balanceOf', [address], chain);
|
|
58
|
-
}
|
|
59
|
-
return amount;
|
|
60
|
-
}
|
|
61
|
-
async getApproval(owner, spender) {
|
|
62
|
-
if (this.isNative) {
|
|
63
|
-
throw new InvalidParameterError(ErrorCode.InvalidParameter, 'Native token can not approve', { isNative: this.isNative }, 'No need to approve native token', 'https://docs.fun.xyz');
|
|
64
|
-
}
|
|
65
|
-
const chain = this.chain;
|
|
66
|
-
return BigInt(await ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), 'allowance', [owner, spender], chain));
|
|
67
|
-
}
|
|
68
|
-
async getDecimalAmount(amount) {
|
|
69
|
-
const decimals = await this.getDecimals();
|
|
70
|
-
return parseUnits(`${amount}`, Number(decimals));
|
|
71
|
-
}
|
|
72
|
-
async approve(spender, amount) {
|
|
73
|
-
const amountDec = await this.getDecimalAmount(amount);
|
|
74
|
-
const calldata = ERC20_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'approve', [spender, amountDec]);
|
|
75
|
-
const { to, data, value } = calldata;
|
|
76
|
-
return { to: to, data: data, value: value };
|
|
77
|
-
}
|
|
78
|
-
async transfer(spender, amount) {
|
|
79
|
-
const amountDec = await this.getDecimalAmount(amount);
|
|
80
|
-
return ERC20_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), 'transfer', [spender, amountDec]);
|
|
81
|
-
}
|
|
82
|
-
static async getAddress(data, chain) {
|
|
83
|
-
const token = new Token(data, chain);
|
|
84
|
-
return await token.getAddress();
|
|
85
|
-
}
|
|
86
|
-
static async getDecimals(data, chain) {
|
|
87
|
-
const token = new Token(data, chain);
|
|
88
|
-
return await token.getDecimals();
|
|
89
|
-
}
|
|
90
|
-
static async getBalance(data, address, chain) {
|
|
91
|
-
const token = new Token(data, chain);
|
|
92
|
-
return await token.getBalance(address);
|
|
93
|
-
}
|
|
94
|
-
static async getBalanceBN(data, address, chain) {
|
|
95
|
-
const token = new Token(data, chain);
|
|
96
|
-
return await token.getBalanceBN(address);
|
|
97
|
-
}
|
|
98
|
-
static async getApproval(data, owner, spender, chain) {
|
|
99
|
-
const token = new Token(data, chain);
|
|
100
|
-
return await token.getApproval(owner, spender);
|
|
101
|
-
}
|
|
102
|
-
static async getDecimalAmount(data, amount, chain) {
|
|
103
|
-
const token = new Token(data, chain);
|
|
104
|
-
return await token.getDecimalAmount(amount);
|
|
105
|
-
}
|
|
106
|
-
static async approve(data, spender, amount, chain) {
|
|
107
|
-
const token = new Token(data, chain);
|
|
108
|
-
return await token.approve(spender, amount);
|
|
109
|
-
}
|
|
110
|
-
static async transfer(data, spender, amount, chain) {
|
|
111
|
-
const token = new Token(data, chain);
|
|
112
|
-
return await token.transfer(spender, amount);
|
|
113
|
-
}
|
|
114
|
-
static isNative(data) {
|
|
115
|
-
return data.toLowerCase() in wrappedNativeTokens;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=Token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/data/Token.ts"],"names":[],"mappings":"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"}
|