@funkit/core 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +110 -0
  2. package/dist/fetch-polyfill.d.ts +1 -0
  3. package/dist/fetch-polyfill.js +35 -0
  4. package/dist/fetch-polyfill.js.map +1 -0
  5. package/dist/index.d.ts +12 -0
  6. package/dist/index.js +29 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/src/abis/ApproveAndExec.json +1 -0
  9. package/dist/src/abis/ApproveAndSwap.json +1 -0
  10. package/dist/src/abis/ERC20.json +1 -0
  11. package/dist/src/abis/ERC721.json +1 -0
  12. package/dist/src/abis/EntryPoint.json +1 -0
  13. package/dist/src/abis/EstimationPaymaster.json +1 -0
  14. package/dist/src/abis/FeePercentOracle.json +1 -0
  15. package/dist/src/abis/FunWallet.json +1 -0
  16. package/dist/src/abis/FunWalletFactory.json +1 -0
  17. package/dist/src/abis/GaslessPaymaster.json +1 -0
  18. package/dist/src/abis/LidoWithdrawQueue.json +1 -0
  19. package/dist/src/abis/RoleBasedAccessControl.json +1 -0
  20. package/dist/src/abis/TestNFT.json +1 -0
  21. package/dist/src/abis/TokenPaymaster.json +1 -0
  22. package/dist/src/abis/TokenPriceOracle.json +1 -0
  23. package/dist/src/abis/UniswapV2Factory.json +1 -0
  24. package/dist/src/abis/UniswapV2Router02.json +1 -0
  25. package/dist/src/abis/UniswapV3LimitOrder.json +1 -0
  26. package/dist/src/abis/UserAuthentication.json +1 -0
  27. package/dist/src/abis/univ3factory.json +1 -0
  28. package/dist/src/abis/univ3quoter.json +1 -0
  29. package/dist/src/abis/univ3router.json +1 -0
  30. package/dist/src/actions/AccessControl.d.ts +9 -0
  31. package/dist/src/actions/AccessControl.js +88 -0
  32. package/dist/src/actions/AccessControl.js.map +1 -0
  33. package/dist/src/actions/BatchActions.d.ts +3 -0
  34. package/dist/src/actions/BatchActions.js +12 -0
  35. package/dist/src/actions/BatchActions.js.map +1 -0
  36. package/dist/src/actions/FirstClassActions.d.ts +161 -0
  37. package/dist/src/actions/FirstClassActions.js +347 -0
  38. package/dist/src/actions/FirstClassActions.js.map +1 -0
  39. package/dist/src/actions/Group.d.ts +6 -0
  40. package/dist/src/actions/Group.js +44 -0
  41. package/dist/src/actions/Group.js.map +1 -0
  42. package/dist/src/actions/LimitOrder.d.ts +4 -0
  43. package/dist/src/actions/LimitOrder.js +45 -0
  44. package/dist/src/actions/LimitOrder.js.map +1 -0
  45. package/dist/src/actions/Stake.d.ts +8 -0
  46. package/dist/src/actions/Stake.js +124 -0
  47. package/dist/src/actions/Stake.js.map +1 -0
  48. package/dist/src/actions/Swap.d.ts +9 -0
  49. package/dist/src/actions/Swap.js +169 -0
  50. package/dist/src/actions/Swap.js.map +1 -0
  51. package/dist/src/actions/Token.d.ts +12 -0
  52. package/dist/src/actions/Token.js +102 -0
  53. package/dist/src/actions/Token.js.map +1 -0
  54. package/dist/src/actions/index.d.ts +7 -0
  55. package/dist/src/actions/index.js +24 -0
  56. package/dist/src/actions/index.js.map +1 -0
  57. package/dist/src/actions/types.d.ts +117 -0
  58. package/dist/src/actions/types.js +11 -0
  59. package/dist/src/actions/types.js.map +1 -0
  60. package/dist/src/apis/AccessControlApis.d.ts +5 -0
  61. package/dist/src/apis/AccessControlApis.js +22 -0
  62. package/dist/src/apis/AccessControlApis.js.map +1 -0
  63. package/dist/src/apis/AssetApis.d.ts +79 -0
  64. package/dist/src/apis/AssetApis.js +100 -0
  65. package/dist/src/apis/AssetApis.js.map +1 -0
  66. package/dist/src/apis/ContractApis.d.ts +1 -0
  67. package/dist/src/apis/ContractApis.js +11 -0
  68. package/dist/src/apis/ContractApis.js.map +1 -0
  69. package/dist/src/apis/GroupApis.d.ts +8 -0
  70. package/dist/src/apis/GroupApis.js +45 -0
  71. package/dist/src/apis/GroupApis.js.map +1 -0
  72. package/dist/src/apis/InfoApis.d.ts +6 -0
  73. package/dist/src/apis/InfoApis.js +59 -0
  74. package/dist/src/apis/InfoApis.js.map +1 -0
  75. package/dist/src/apis/ListenerApis.d.ts +3 -0
  76. package/dist/src/apis/ListenerApis.js +36 -0
  77. package/dist/src/apis/ListenerApis.js.map +1 -0
  78. package/dist/src/apis/NFTApis.d.ts +22 -0
  79. package/dist/src/apis/NFTApis.js +34 -0
  80. package/dist/src/apis/NFTApis.js.map +1 -0
  81. package/dist/src/apis/OnOffRampApis.d.ts +2 -0
  82. package/dist/src/apis/OnOffRampApis.js +23 -0
  83. package/dist/src/apis/OnOffRampApis.js.map +1 -0
  84. package/dist/src/apis/OnOffRampUtils.d.ts +2 -0
  85. package/dist/src/apis/OnOffRampUtils.js +23 -0
  86. package/dist/src/apis/OnOffRampUtils.js.map +1 -0
  87. package/dist/src/apis/OperationApis.d.ts +14 -0
  88. package/dist/src/apis/OperationApis.js +77 -0
  89. package/dist/src/apis/OperationApis.js.map +1 -0
  90. package/dist/src/apis/PaymasterApis.d.ts +15 -0
  91. package/dist/src/apis/PaymasterApis.js +89 -0
  92. package/dist/src/apis/PaymasterApis.js.map +1 -0
  93. package/dist/src/apis/UserApis.d.ts +12 -0
  94. package/dist/src/apis/UserApis.js +77 -0
  95. package/dist/src/apis/UserApis.js.map +1 -0
  96. package/dist/src/apis/index.d.ts +10 -0
  97. package/dist/src/apis/index.js +27 -0
  98. package/dist/src/apis/index.js.map +1 -0
  99. package/dist/src/apis/types.d.ts +49 -0
  100. package/dist/src/apis/types.js +3 -0
  101. package/dist/src/apis/types.js.map +1 -0
  102. package/dist/src/auth/Auth.d.ts +81 -0
  103. package/dist/src/auth/Auth.js +317 -0
  104. package/dist/src/auth/Auth.js.map +1 -0
  105. package/dist/src/auth/SessionKeyAuth.d.ts +19 -0
  106. package/dist/src/auth/SessionKeyAuth.js +118 -0
  107. package/dist/src/auth/SessionKeyAuth.js.map +1 -0
  108. package/dist/src/auth/index.d.ts +2 -0
  109. package/dist/src/auth/index.js +19 -0
  110. package/dist/src/auth/index.js.map +1 -0
  111. package/dist/src/auth/types.d.ts +20 -0
  112. package/dist/src/auth/types.js +3 -0
  113. package/dist/src/auth/types.js.map +1 -0
  114. package/dist/src/common/constants.d.ts +1072 -0
  115. package/dist/src/common/constants.js +153 -0
  116. package/dist/src/common/constants.js.map +1 -0
  117. package/dist/src/common/index.d.ts +2 -0
  118. package/dist/src/common/index.js +19 -0
  119. package/dist/src/common/index.js.map +1 -0
  120. package/dist/src/common/types.d.ts +32 -0
  121. package/dist/src/common/types.js +3 -0
  122. package/dist/src/common/types.js.map +1 -0
  123. package/dist/src/config/Config.d.ts +3 -0
  124. package/dist/src/config/Config.js +46 -0
  125. package/dist/src/config/Config.js.map +1 -0
  126. package/dist/src/config/index.d.ts +2 -0
  127. package/dist/src/config/index.js +19 -0
  128. package/dist/src/config/index.js.map +1 -0
  129. package/dist/src/config/types.d.ts +21 -0
  130. package/dist/src/config/types.js +3 -0
  131. package/dist/src/config/types.js.map +1 -0
  132. package/dist/src/data/Chain.d.ts +29 -0
  133. package/dist/src/data/Chain.js +174 -0
  134. package/dist/src/data/Chain.js.map +1 -0
  135. package/dist/src/data/NFT.d.ts +24 -0
  136. package/dist/src/data/NFT.js +104 -0
  137. package/dist/src/data/NFT.js.map +1 -0
  138. package/dist/src/data/Operation.d.ts +33 -0
  139. package/dist/src/data/Operation.js +68 -0
  140. package/dist/src/data/Operation.js.map +1 -0
  141. package/dist/src/data/SolidityData.d.ts +8 -0
  142. package/dist/src/data/SolidityData.js +72 -0
  143. package/dist/src/data/SolidityData.js.map +1 -0
  144. package/dist/src/data/Token.d.ts +26 -0
  145. package/dist/src/data/Token.js +122 -0
  146. package/dist/src/data/Token.js.map +1 -0
  147. package/dist/src/data/index.d.ts +6 -0
  148. package/dist/src/data/index.js +23 -0
  149. package/dist/src/data/index.js.map +1 -0
  150. package/dist/src/data/types.d.ts +112 -0
  151. package/dist/src/data/types.js +25 -0
  152. package/dist/src/data/types.js.map +1 -0
  153. package/dist/src/errors/BaseError.d.ts +9 -0
  154. package/dist/src/errors/BaseError.js +23 -0
  155. package/dist/src/errors/BaseError.js.map +1 -0
  156. package/dist/src/errors/ClientError.d.ts +22 -0
  157. package/dist/src/errors/ClientError.js +75 -0
  158. package/dist/src/errors/ClientError.js.map +1 -0
  159. package/dist/src/errors/ServerError.d.ts +7 -0
  160. package/dist/src/errors/ServerError.js +18 -0
  161. package/dist/src/errors/ServerError.js.map +1 -0
  162. package/dist/src/errors/index.d.ts +4 -0
  163. package/dist/src/errors/index.js +21 -0
  164. package/dist/src/errors/index.js.map +1 -0
  165. package/dist/src/errors/types.d.ts +54 -0
  166. package/dist/src/errors/types.js +45 -0
  167. package/dist/src/errors/types.js.map +1 -0
  168. package/dist/src/sponsors/GaslessSponsor.d.ts +19 -0
  169. package/dist/src/sponsors/GaslessSponsor.js +91 -0
  170. package/dist/src/sponsors/GaslessSponsor.js.map +1 -0
  171. package/dist/src/sponsors/Sponsor.d.ts +31 -0
  172. package/dist/src/sponsors/Sponsor.js +94 -0
  173. package/dist/src/sponsors/Sponsor.js.map +1 -0
  174. package/dist/src/sponsors/TokenSponsor.d.ts +40 -0
  175. package/dist/src/sponsors/TokenSponsor.js +271 -0
  176. package/dist/src/sponsors/TokenSponsor.js.map +1 -0
  177. package/dist/src/sponsors/index.d.ts +3 -0
  178. package/dist/src/sponsors/index.js +20 -0
  179. package/dist/src/sponsors/index.js.map +1 -0
  180. package/dist/src/sponsors/types.d.ts +9 -0
  181. package/dist/src/sponsors/types.js +10 -0
  182. package/dist/src/sponsors/types.js.map +1 -0
  183. package/dist/src/utils/ApiUtils.d.ts +19 -0
  184. package/dist/src/utils/ApiUtils.js +97 -0
  185. package/dist/src/utils/ApiUtils.js.map +1 -0
  186. package/dist/src/utils/AuthUtils.d.ts +4 -0
  187. package/dist/src/utils/AuthUtils.js +54 -0
  188. package/dist/src/utils/AuthUtils.js.map +1 -0
  189. package/dist/src/utils/ChainUtils.d.ts +12 -0
  190. package/dist/src/utils/ChainUtils.js +89 -0
  191. package/dist/src/utils/ChainUtils.js.map +1 -0
  192. package/dist/src/utils/MerkleUtils.d.ts +18 -0
  193. package/dist/src/utils/MerkleUtils.js +96 -0
  194. package/dist/src/utils/MerkleUtils.js.map +1 -0
  195. package/dist/src/utils/PaymasterUtils.d.ts +3 -0
  196. package/dist/src/utils/PaymasterUtils.js +17 -0
  197. package/dist/src/utils/PaymasterUtils.js.map +1 -0
  198. package/dist/src/utils/SwapUtils.d.ts +35 -0
  199. package/dist/src/utils/SwapUtils.js +193 -0
  200. package/dist/src/utils/SwapUtils.js.map +1 -0
  201. package/dist/src/utils/TypeUtils.d.ts +1 -0
  202. package/dist/src/utils/TypeUtils.js +13 -0
  203. package/dist/src/utils/TypeUtils.js.map +1 -0
  204. package/dist/src/utils/UserOpUtils.d.ts +12 -0
  205. package/dist/src/utils/UserOpUtils.js +166 -0
  206. package/dist/src/utils/UserOpUtils.js.map +1 -0
  207. package/dist/src/utils/ViemUtils.d.ts +9 -0
  208. package/dist/src/utils/ViemUtils.js +30 -0
  209. package/dist/src/utils/ViemUtils.js.map +1 -0
  210. package/dist/src/utils/WalletUtils.d.ts +11 -0
  211. package/dist/src/utils/WalletUtils.js +61 -0
  212. package/dist/src/utils/WalletUtils.js.map +1 -0
  213. package/dist/src/utils/index.d.ts +7 -0
  214. package/dist/src/utils/index.js +24 -0
  215. package/dist/src/utils/index.js.map +1 -0
  216. package/dist/src/viem/ContractInterface.d.ts +19 -0
  217. package/dist/src/viem/ContractInterface.js +88 -0
  218. package/dist/src/viem/ContractInterface.js.map +1 -0
  219. package/dist/src/viem/Converter.d.ts +1770 -0
  220. package/dist/src/viem/Converter.js +50 -0
  221. package/dist/src/viem/Converter.js.map +1 -0
  222. package/dist/src/viem/index.d.ts +2 -0
  223. package/dist/src/viem/index.js +19 -0
  224. package/dist/src/viem/index.js.map +1 -0
  225. package/dist/src/wallet/FunWallet.d.ts +185 -0
  226. package/dist/src/wallet/FunWallet.js +720 -0
  227. package/dist/src/wallet/FunWallet.js.map +1 -0
  228. package/dist/src/wallet/index.d.ts +2 -0
  229. package/dist/src/wallet/index.js +19 -0
  230. package/dist/src/wallet/index.js.map +1 -0
  231. package/dist/src/wallet/types.d.ts +13 -0
  232. package/dist/src/wallet/types.js +3 -0
  233. package/dist/src/wallet/types.js.map +1 -0
  234. package/package.json +89 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NFT = void 0;
4
+ const viem_1 = require("viem");
5
+ const Chain_1 = require("./Chain");
6
+ const NFTApis_1 = require("../apis/NFTApis");
7
+ const common_1 = require("../common");
8
+ const errors_1 = require("../errors");
9
+ class NFT {
10
+ constructor(input) {
11
+ this.name = "";
12
+ if (!input) {
13
+ throw new errors_1.InvalidParameterError(errors_1.ErrorCode.InvalidNFTIdentifier, "valid NFT identifier is required, could be address or name", { input }, "Please provide valid NFT identifier", "https://docs.fun.xyz");
14
+ }
15
+ if ((0, viem_1.isAddress)(input)) {
16
+ this.address = input;
17
+ }
18
+ else {
19
+ this.name = input;
20
+ }
21
+ }
22
+ async approve(spender, tokenId, options = globalThis.globalEnvOption) {
23
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
24
+ const data = common_1.ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), "approve", [spender, tokenId]);
25
+ return { ...data, chain };
26
+ }
27
+ async ownerOf(tokenId, options = globalThis.globalEnvOption) {
28
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
29
+ return await common_1.ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), "ownerOf", [tokenId], chain);
30
+ }
31
+ async approveForAll(spender, options = globalThis.globalEnvOption) {
32
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
33
+ const data = common_1.ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), "setApprovalForAll", [spender, true]);
34
+ return { ...data, chain };
35
+ }
36
+ async getAddress() {
37
+ if (!this.address) {
38
+ if (!this.name) {
39
+ throw new errors_1.InvalidParameterError(errors_1.ErrorCode.InvalidNFTIdentifier, "valid NFT identifier is required, could be address or name", {}, "Please provide valid NFT identifier", "https://docs.fun.xyz");
40
+ }
41
+ const nft = await (0, NFTApis_1.getNftAddress)(this.name);
42
+ return nft.address;
43
+ }
44
+ else {
45
+ return this.address;
46
+ }
47
+ }
48
+ async getName(options = globalThis.globalEnvOption) {
49
+ if (!this.name && this.address) {
50
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
51
+ const nft = await (0, NFTApis_1.getNftName)(await chain.getChainId(), this.address);
52
+ return nft.name;
53
+ }
54
+ return this.name;
55
+ }
56
+ async getBalance(address, options = globalThis.globalEnvOption) {
57
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
58
+ return await common_1.ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), "balanceOf", [address], chain);
59
+ }
60
+ async getApproved(tokenId, options = globalThis.globalEnvOption) {
61
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
62
+ return await common_1.ERC721_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), "getApproved", [tokenId], chain);
63
+ }
64
+ async revokeForAll(spender, options = globalThis.globalEnvOption) {
65
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
66
+ const data = common_1.ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), "setApprovalForAll", [spender, false]);
67
+ return { ...data, chain };
68
+ }
69
+ async transfer(sender, spender, tokenId, options = globalThis.globalEnvOption) {
70
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
71
+ const data = common_1.ERC721_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(), "transferFrom", [sender, spender, tokenId]);
72
+ return { ...data, chain };
73
+ }
74
+ static async approve(data, spender, tokenId, options = globalThis.globalEnvOption) {
75
+ const nft = new NFT(data);
76
+ return await nft.approve(spender, tokenId, options);
77
+ }
78
+ static async approveForAll(data, spender, options = globalThis.globalEnvOption) {
79
+ const nft = new NFT(data);
80
+ return await nft.approveForAll(spender, options);
81
+ }
82
+ static async getAddress(data) {
83
+ const nft = new NFT(data);
84
+ return await nft.getAddress();
85
+ }
86
+ static async getApproved(data, tokenId, options = globalThis.globalEnvOption) {
87
+ const nft = new NFT(data);
88
+ return await nft.getApproved(tokenId, options);
89
+ }
90
+ static async revokeForAll(data, spender, options = globalThis.globalEnvOption) {
91
+ const nft = new NFT(data);
92
+ return await nft.revokeForAll(spender, options);
93
+ }
94
+ static async transfer(data, sender, spender, tokenId, options = globalThis.globalEnvOption) {
95
+ const nft = new NFT(data);
96
+ return await nft.transfer(sender, spender, tokenId, options);
97
+ }
98
+ static async ownerOf(data, tokenId, options = globalThis.globalEnvOption) {
99
+ const nft = new NFT(data);
100
+ return await nft.ownerOf(tokenId, options);
101
+ }
102
+ }
103
+ exports.NFT = NFT;
104
+ //# sourceMappingURL=NFT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NFT.js","sourceRoot":"","sources":["../../../src/data/NFT.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Address, Hex } from "viem";
2
+ import { Chain } from "./Chain";
3
+ import { AuthType, OperationMetadata, OperationStatus, OperationType, Signature, UserOperation } from "./types";
4
+ import { Auth } from "../auth";
5
+ import { EnvOption } from "../config";
6
+ export declare class Operation {
7
+ opId?: Hex;
8
+ chainId: string;
9
+ opType: OperationType;
10
+ authType: AuthType;
11
+ groupId?: Hex;
12
+ message?: string;
13
+ walletAddr: Address;
14
+ userOp: UserOperation;
15
+ status?: OperationStatus;
16
+ proposer: string;
17
+ proposedTime?: number;
18
+ executedBy?: string;
19
+ executedTime?: number;
20
+ relatedOpIds?: Hex[];
21
+ signatures?: Signature[];
22
+ txid?: string;
23
+ gasUsed?: string;
24
+ opFeeUSD?: string;
25
+ opFee?: string;
26
+ executedBlockNumber?: number;
27
+ executedBlockTimeStamp?: number;
28
+ constructor(userOp: UserOperation, metadata: OperationMetadata);
29
+ static convertTypeToObject(op: Operation): Operation;
30
+ getOpHash(chain: Chain): Promise<Hex>;
31
+ getMaxTxCost(): bigint;
32
+ estimateGas(auth: Auth, userId: string, options?: EnvOption): Promise<Operation>;
33
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Operation = void 0;
4
+ const Chain_1 = require("./Chain");
5
+ const constants_1 = require("../common/constants");
6
+ const utils_1 = require("../utils");
7
+ class Operation {
8
+ constructor(userOp, metadata) {
9
+ this.userOp = userOp;
10
+ this.userOp.preVerificationGas = userOp.preVerificationGas ? userOp.preVerificationGas : (0, utils_1.calcPreVerificationGas)(this.userOp);
11
+ this.opId = metadata.opId;
12
+ this.chainId = metadata.chainId;
13
+ this.opType = metadata.opType;
14
+ this.authType = metadata.authType;
15
+ this.groupId = metadata.groupId;
16
+ this.message = metadata.message;
17
+ this.walletAddr = metadata.walletAddr;
18
+ this.status = metadata.status;
19
+ this.proposer = metadata.proposer;
20
+ this.proposedTime = metadata.proposedTime;
21
+ this.executedBy = metadata.executedBy;
22
+ this.executedTime = metadata.executedTime;
23
+ this.relatedOpIds = metadata.relatedOpIds;
24
+ this.signatures = metadata.signatures;
25
+ this.txid = metadata.txid;
26
+ this.gasUsed = metadata.gasUsed;
27
+ this.opFeeUSD = metadata.opFeeUSD;
28
+ this.opFee = metadata.opFee;
29
+ this.executedBlockNumber = metadata.executedBlockNumber;
30
+ this.executedBlockTimeStamp = metadata.executedBlockTimeStamp;
31
+ }
32
+ static convertTypeToObject(op) {
33
+ return new Operation(op.userOp, {
34
+ ...op
35
+ });
36
+ }
37
+ async getOpHash(chain) {
38
+ const entryPointAddress = await chain.getAddress("entryPointAddress");
39
+ return await constants_1.ENTRYPOINT_CONTRACT_INTERFACE.readFromChain(entryPointAddress, "getUserOpHash", [this.userOp], chain);
40
+ }
41
+ getMaxTxCost() {
42
+ const { maxFeePerGas, preVerificationGas, callGasLimit, verificationGasLimit } = this.userOp;
43
+ const mul = this.userOp.paymasterAndData !== "0x" ? 3 : 1;
44
+ const requiredGas = callGasLimit + verificationGasLimit * BigInt(mul) + preVerificationGas ? preVerificationGas : 0n;
45
+ return maxFeePerGas * requiredGas;
46
+ }
47
+ async estimateGas(auth, userId, options = globalThis.globalEnvOption) {
48
+ if (!this.userOp.signature || this.userOp.signature === "0x") {
49
+ this.userOp.signature = await auth.getEstimateGasSignature(userId, this);
50
+ }
51
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
52
+ const res = await chain.estimateOpGas({
53
+ ...this.userOp,
54
+ paymasterAndData: "0x",
55
+ maxFeePerGas: 0n,
56
+ maxPriorityFeePerGas: 0n,
57
+ preVerificationGas: 0n,
58
+ callGasLimit: 0n,
59
+ verificationGasLimit: BigInt(10e6)
60
+ });
61
+ this.userOp.preVerificationGas = res.preVerificationGas;
62
+ this.userOp.verificationGasLimit = res.verificationGasLimit;
63
+ this.userOp.callGasLimit = res.callGasLimit;
64
+ return this;
65
+ }
66
+ }
67
+ exports.Operation = Operation;
68
+ //# sourceMappingURL=Operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../src/data/Operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Address, Hex } from "viem";
2
+ import { LoginData, WalletSignature } from "./types";
3
+ import { User } from "../wallet/types";
4
+ export declare function encodeLoginData(data: LoginData): Hex;
5
+ export declare function encodeWalletSignature(data: WalletSignature): Hex;
6
+ export declare function encodeUserAuthInitData(groupUsers: User[]): Hex;
7
+ export declare function addresstoBytes32(data: Address): Hex;
8
+ export declare function toBytes32Arr(data: Hex[]): Hex;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toBytes32Arr = exports.addresstoBytes32 = exports.encodeUserAuthInitData = exports.encodeWalletSignature = exports.encodeLoginData = void 0;
4
+ const abi_1 = require("@ethersproject/abi");
5
+ const viem_1 = require("viem");
6
+ const common_1 = require("../common");
7
+ const extraDataStructType = {
8
+ type: "tuple",
9
+ components: [{ type: "bytes32[]" }, { type: "bytes32[]" }, { type: "bytes32[]" }, { type: "bytes32[]" }]
10
+ };
11
+ const walletSigEncodingTypes = [
12
+ { type: "uint8" },
13
+ { type: "bytes32" },
14
+ { type: "bytes32" },
15
+ { type: "bytes32" },
16
+ { type: "bytes" },
17
+ extraDataStructType
18
+ ];
19
+ function encodeLoginData(data) {
20
+ let { loginType, newFunWalletOwner, index, socialHandle, salt } = data;
21
+ newFunWalletOwner = newFunWalletOwner ? newFunWalletOwner : common_1.AddressZero;
22
+ index = index ? BigInt(index) : 0n;
23
+ socialHandle = socialHandle ? socialHandle : "0x";
24
+ salt = salt ? salt : common_1.HashZero;
25
+ loginType = loginType ? loginType : 0;
26
+ return (0, viem_1.encodeAbiParameters)([
27
+ {
28
+ type: "tuple",
29
+ components: [{ type: "uint8" }, { type: "address" }, { type: "bytes32" }, { type: "uint256" }, { type: "bytes" }]
30
+ }
31
+ ], [[loginType, newFunWalletOwner, salt, index, socialHandle]]);
32
+ }
33
+ exports.encodeLoginData = encodeLoginData;
34
+ const parseExtraData = (data) => {
35
+ let { targetPath, selectorPath, feeRecipientPath, tokenPath } = data;
36
+ targetPath ?? (targetPath = []);
37
+ selectorPath ?? (selectorPath = []);
38
+ feeRecipientPath ?? (feeRecipientPath = []);
39
+ tokenPath ?? (tokenPath = []);
40
+ return [targetPath, selectorPath, feeRecipientPath, tokenPath];
41
+ };
42
+ function encodeWalletSignature(data) {
43
+ const { userId, signature, extraData } = data;
44
+ let { authType, roleId, ruleId } = data;
45
+ roleId ?? (roleId = common_1.HashZero);
46
+ ruleId ?? (ruleId = common_1.HashZero);
47
+ authType ?? (authType = 0);
48
+ const extraDataEncoded = extraData ? parseExtraData(extraData) : [[], [], [], []];
49
+ return (0, viem_1.encodeAbiParameters)(walletSigEncodingTypes, [authType, userId, roleId, ruleId, signature, extraDataEncoded]).toLowerCase();
50
+ }
51
+ exports.encodeWalletSignature = encodeWalletSignature;
52
+ function encodeUserAuthInitData(groupUsers) {
53
+ const groupIds = [];
54
+ const groupInfos = [];
55
+ groupUsers.forEach((user) => {
56
+ groupIds.push(user.userId);
57
+ const paddedMemberIds = user.groupInfo.memberIds.map((memberId) => (0, viem_1.pad)(memberId, { size: 32 }));
58
+ const sortedMemberIds = paddedMemberIds.sort((a, b) => (a > b ? -1 : 1));
59
+ groupInfos.push([sortedMemberIds, user.groupInfo.threshold]);
60
+ });
61
+ return abi_1.defaultAbiCoder.encode(["bytes32[]", "tuple(bytes32[],uint256)[]"], [groupIds, groupInfos]);
62
+ }
63
+ exports.encodeUserAuthInitData = encodeUserAuthInitData;
64
+ function addresstoBytes32(data) {
65
+ return (0, viem_1.encodeAbiParameters)([{ type: "address" }], [data]);
66
+ }
67
+ exports.addresstoBytes32 = addresstoBytes32;
68
+ function toBytes32Arr(data) {
69
+ return (0, viem_1.encodeAbiParameters)([{ type: "bytes32[]" }], [data]);
70
+ }
71
+ exports.toBytes32Arr = toBytes32Arr;
72
+ //# sourceMappingURL=SolidityData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidityData.js","sourceRoot":"","sources":["../../../src/data/SolidityData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Address } from "viem";
2
+ import { TransactionParams } from "../common";
3
+ import { EnvOption } from "../config";
4
+ export declare class Token {
5
+ address?: Address;
6
+ isNative: boolean;
7
+ symbol: string;
8
+ constructor(input: Address | string);
9
+ getAddress(options?: EnvOption): Promise<Address>;
10
+ getDecimals(options?: EnvOption): Promise<bigint>;
11
+ getBalance(address: Address, options?: EnvOption): Promise<string>;
12
+ getBalanceBN(address: Address, options?: EnvOption): Promise<bigint>;
13
+ getApproval(owner: string, spender: string, options?: EnvOption): Promise<bigint>;
14
+ getDecimalAmount(amount: number, options?: EnvOption): Promise<bigint>;
15
+ approve(spender: string, amount: number, options?: EnvOption): Promise<TransactionParams>;
16
+ transfer(spender: string, amount: number, options?: EnvOption): Promise<TransactionParams>;
17
+ static getAddress(data: string, options?: EnvOption): Promise<Address>;
18
+ static getDecimals(data: string, options?: EnvOption): Promise<bigint>;
19
+ static getBalance(data: string, address: Address, options?: EnvOption): Promise<string>;
20
+ static getBalanceBN(data: string, address: Address, options?: EnvOption): Promise<bigint>;
21
+ static getApproval(data: string, owner: string, spender: string, options?: EnvOption): Promise<bigint>;
22
+ static getDecimalAmount(data: string, amount: number, options?: EnvOption): Promise<bigint>;
23
+ static approve(data: string, spender: string, amount: number, options?: EnvOption): Promise<TransactionParams>;
24
+ static transfer(data: string, spender: string, amount: number, options?: EnvOption): Promise<TransactionParams>;
25
+ static isNative(data: string): boolean;
26
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Token = void 0;
4
+ const viem_1 = require("viem");
5
+ const Chain_1 = require("./Chain");
6
+ const apis_1 = require("../apis");
7
+ const common_1 = require("../common");
8
+ const errors_1 = require("../errors");
9
+ const wrappedNativeTokens = { eth: "weth", matic: "wmatic" };
10
+ class Token {
11
+ constructor(input) {
12
+ this.isNative = false;
13
+ this.symbol = "";
14
+ if ((0, viem_1.isAddress)(input)) {
15
+ this.address = input;
16
+ return;
17
+ }
18
+ else if (input.toLowerCase() in wrappedNativeTokens) {
19
+ this.isNative = true;
20
+ }
21
+ this.symbol = input;
22
+ }
23
+ async getAddress(options = globalThis.globalEnvOption) {
24
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
25
+ const chainId = await chain.getChainId();
26
+ if (this.isNative) {
27
+ const nativeName = wrappedNativeTokens[this.symbol];
28
+ return await (0, apis_1.getTokenInfo)(nativeName, chainId);
29
+ }
30
+ else if (this.address) {
31
+ return this.address;
32
+ }
33
+ else if (this.symbol) {
34
+ return await (0, apis_1.getTokenInfo)(this.symbol, chainId);
35
+ }
36
+ else {
37
+ throw new errors_1.InternalFailureError(errors_1.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");
38
+ }
39
+ }
40
+ async getDecimals(options = globalThis.globalEnvOption) {
41
+ if (this.isNative) {
42
+ return 18n;
43
+ }
44
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
45
+ return await common_1.ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(options), "decimals", [], chain);
46
+ }
47
+ async getBalance(address, options = globalThis.globalEnvOption) {
48
+ const amount = await this.getBalanceBN(address, options);
49
+ const decimals = await this.getDecimals(options);
50
+ return (0, viem_1.formatUnits)(amount, Number(decimals));
51
+ }
52
+ async getBalanceBN(address, options = globalThis.globalEnvOption) {
53
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
54
+ let amount = 0n;
55
+ if (this.isNative) {
56
+ const client = await chain.getClient();
57
+ amount = await client.getBalance({ address });
58
+ }
59
+ else {
60
+ amount = await common_1.ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(), "balanceOf", [address], chain);
61
+ }
62
+ return amount;
63
+ }
64
+ async getApproval(owner, spender, options = globalThis.globalEnvOption) {
65
+ if (this.isNative) {
66
+ throw new errors_1.InvalidParameterError(errors_1.ErrorCode.InvalidParameter, "Native token can not approve", { isNative: this.isNative }, "No need to approve native token", "https://docs.fun.xyz");
67
+ }
68
+ const chain = await Chain_1.Chain.getChain({ chainIdentifier: options.chain });
69
+ return BigInt(await common_1.ERC20_CONTRACT_INTERFACE.readFromChain(await this.getAddress(options), "allowance", [owner, spender], chain));
70
+ }
71
+ async getDecimalAmount(amount, options = globalThis.globalEnvOption) {
72
+ const decimals = await this.getDecimals(options);
73
+ return (0, viem_1.parseUnits)(`${amount}`, Number(decimals));
74
+ }
75
+ async approve(spender, amount, options = globalThis.globalEnvOption) {
76
+ const amountDec = await this.getDecimalAmount(amount);
77
+ const calldata = common_1.ERC20_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(options), "approve", [spender, amountDec]);
78
+ const { to, data, value } = calldata;
79
+ return { to: to, data: data, value: value };
80
+ }
81
+ async transfer(spender, amount, options = globalThis.globalEnvOption) {
82
+ const amountDec = await this.getDecimalAmount(amount);
83
+ return common_1.ERC20_CONTRACT_INTERFACE.encodeTransactionParams(await this.getAddress(options), "transfer", [spender, amountDec]);
84
+ }
85
+ static async getAddress(data, options = globalThis.globalEnvOption) {
86
+ const token = new Token(data);
87
+ return await token.getAddress(options);
88
+ }
89
+ static async getDecimals(data, options = globalThis.globalEnvOption) {
90
+ const token = new Token(data);
91
+ return await token.getDecimals(options);
92
+ }
93
+ static async getBalance(data, address, options = globalThis.globalEnvOption) {
94
+ const token = new Token(data);
95
+ return await token.getBalance(address, options);
96
+ }
97
+ static async getBalanceBN(data, address, options = globalThis.globalEnvOption) {
98
+ const token = new Token(data);
99
+ return await token.getBalanceBN(address, options);
100
+ }
101
+ static async getApproval(data, owner, spender, options = globalThis.globalEnvOption) {
102
+ const token = new Token(data);
103
+ return await token.getApproval(owner, spender, options);
104
+ }
105
+ static async getDecimalAmount(data, amount, options = globalThis.globalEnvOption) {
106
+ const token = new Token(data);
107
+ return await token.getDecimalAmount(amount, options);
108
+ }
109
+ static async approve(data, spender, amount, options = globalThis.globalEnvOption) {
110
+ const token = new Token(data);
111
+ return await token.approve(spender, amount, options);
112
+ }
113
+ static async transfer(data, spender, amount, options = globalThis.globalEnvOption) {
114
+ const token = new Token(data);
115
+ return await token.transfer(spender, amount, options);
116
+ }
117
+ static isNative(data) {
118
+ return data.toLowerCase() in wrappedNativeTokens;
119
+ }
120
+ }
121
+ exports.Token = Token;
122
+ //# sourceMappingURL=Token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/data/Token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./Chain";
2
+ export * from "./Token";
3
+ export * from "./Operation";
4
+ export * from "./SolidityData";
5
+ export * from "./NFT";
6
+ export * from "./types";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Chain"), exports);
18
+ __exportStar(require("./Token"), exports);
19
+ __exportStar(require("./Operation"), exports);
20
+ __exportStar(require("./SolidityData"), exports);
21
+ __exportStar(require("./NFT"), exports);
22
+ __exportStar(require("./types"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,8CAA2B;AAC3B,iDAA8B;AAC9B,wCAAqB;AACrB,0CAAuB"}
@@ -0,0 +1,112 @@
1
+ import { Address, Hex } from "viem";
2
+ import { Chain } from "./Chain";
3
+ export interface ChainInput {
4
+ chainIdentifier?: string | Chain | number;
5
+ rpcUrl?: string;
6
+ }
7
+ export type FactoryCreateAccountParams = {
8
+ initializerCallData: string;
9
+ implementation: string;
10
+ data: string;
11
+ };
12
+ export type InitCodeParams = {
13
+ entryPointAddress: Address;
14
+ factoryAddress: Address;
15
+ implementationAddress?: Address;
16
+ loginData: LoginData;
17
+ verificationData: readonly Hex[];
18
+ verificationAddresses: readonly Address[];
19
+ };
20
+ export type Addresses = {
21
+ [key: string]: Address;
22
+ };
23
+ /**
24
+ * @param loginType 0 = EOA, 1 = Twitter
25
+ * @param newFunWalletOwner *social login* Address of the new FunWallet owner, used to stop frontrunning
26
+ * @param index *social login* Hashed with socialHandle and loginType to generate salt
27
+ * @param socialHandle *social login*
28
+ * @param salt *EOA login* Hashed with loginType to generate salt
29
+ */
30
+ export type LoginData = {
31
+ loginType?: number;
32
+ newFunWalletOwner?: Hex;
33
+ index?: number | bigint;
34
+ socialHandle?: Hex;
35
+ salt?: Hex;
36
+ };
37
+ export type WalletInitialzeParams = {
38
+ _newEntryPoint: string;
39
+ validationInitData: string;
40
+ };
41
+ export type WalletSignature = {
42
+ authType?: number;
43
+ userId: Hex;
44
+ roleId?: Hex;
45
+ ruleId?: Hex;
46
+ signature: Hex;
47
+ extraData?: ExtraDataType;
48
+ };
49
+ export type ExtraDataType = {
50
+ targetPath?: Hex[];
51
+ selectorPath?: Hex[];
52
+ feeRecipientPath?: Hex[];
53
+ tokenPath?: Hex[];
54
+ };
55
+ export type UserOperation = {
56
+ sender: string;
57
+ nonce: bigint;
58
+ initCode?: string;
59
+ callData: string;
60
+ callGasLimit: bigint;
61
+ verificationGasLimit: bigint;
62
+ preVerificationGas?: bigint;
63
+ maxFeePerGas: bigint;
64
+ maxPriorityFeePerGas: bigint;
65
+ paymasterAndData?: string;
66
+ signature?: string;
67
+ };
68
+ export declare enum AuthType {
69
+ ECDSA = 0,
70
+ MULTI_SIG = 1
71
+ }
72
+ export type Signature = {
73
+ userId: Hex;
74
+ signature: Hex;
75
+ signedTime: number;
76
+ };
77
+ export declare enum OperationType {
78
+ SINGLE_OPERATION = "SINGLE_OPERATION",
79
+ GROUP_OPERATION = "GROUP_OPERATION",
80
+ REJECTION = "REJECTION"
81
+ }
82
+ export declare enum OperationStatus {
83
+ ALL = "",
84
+ PENDING_APPROVED = "PENDING_APPROVED",
85
+ APPROVED = "APPROVED",
86
+ PENDING = "PENDING",
87
+ OP_SUCCEED = "OP_SUCCEED",
88
+ OP_REVERTED = "OP_REVERTED",
89
+ SCHEDULED = "SCHEDULED"
90
+ }
91
+ export type OperationMetadata = {
92
+ opId?: Hex;
93
+ chainId: string;
94
+ opType: OperationType;
95
+ authType: AuthType;
96
+ groupId?: Hex;
97
+ message?: string;
98
+ walletAddr: Address;
99
+ status?: OperationStatus;
100
+ proposer: string;
101
+ proposedTime?: number;
102
+ executedBy?: string;
103
+ executedTime?: number;
104
+ relatedOpIds?: Hex[];
105
+ signatures?: Signature[];
106
+ txid?: string;
107
+ gasUsed?: string;
108
+ opFeeUSD?: string;
109
+ opFee?: string;
110
+ executedBlockNumber?: number;
111
+ executedBlockTimeStamp?: number;
112
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperationStatus = exports.OperationType = exports.AuthType = void 0;
4
+ var AuthType;
5
+ (function (AuthType) {
6
+ AuthType[AuthType["ECDSA"] = 0] = "ECDSA";
7
+ AuthType[AuthType["MULTI_SIG"] = 1] = "MULTI_SIG";
8
+ })(AuthType || (exports.AuthType = AuthType = {}));
9
+ var OperationType;
10
+ (function (OperationType) {
11
+ OperationType["SINGLE_OPERATION"] = "SINGLE_OPERATION";
12
+ OperationType["GROUP_OPERATION"] = "GROUP_OPERATION";
13
+ OperationType["REJECTION"] = "REJECTION";
14
+ })(OperationType || (exports.OperationType = OperationType = {}));
15
+ var OperationStatus;
16
+ (function (OperationStatus) {
17
+ OperationStatus["ALL"] = "";
18
+ OperationStatus["PENDING_APPROVED"] = "PENDING_APPROVED";
19
+ OperationStatus["APPROVED"] = "APPROVED";
20
+ OperationStatus["PENDING"] = "PENDING";
21
+ OperationStatus["OP_SUCCEED"] = "OP_SUCCEED";
22
+ OperationStatus["OP_REVERTED"] = "OP_REVERTED";
23
+ OperationStatus["SCHEDULED"] = "SCHEDULED";
24
+ })(OperationStatus || (exports.OperationStatus = OperationStatus = {}));
25
+ //# sourceMappingURL=types.js.map