@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,153 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BYTES32_LENGTH = exports.VALID_PRIVATE_KEY_LENGTH = exports.ETH_TRANSFER_SELECTOR = exports.gasSpecificChain = exports.CONTRACT_ADDRESSES = exports.UNISWAP_V3_LIMIT_ORDER_CONTRACT_INTERFACE = exports.USER_AUTHENTICATION_CONTRACT_INTERFACE = exports.RBAC_CONTRACT_INTERFACE = exports.UNISWAPV2ROUTER02_INTERFACE = exports.UNISWAPV2FACTORY_INTERFACE = exports.APPROVE_AND_EXEC_CONTRACT_INTERFACE = exports.POOL_CONTRACT_INTERFACE = exports.WALLET_CONTRACT_INTERFACE = exports.TOKEN_PAYMASTER_CONTRACT_INTERFACE = exports.GASLESS_PAYMASTER_CONTRACT_INTERFACE = exports.FACTORY_CONTRACT_INTERFACE = exports.ERC20_CONTRACT_INTERFACE = exports.ERC721_CONTRACT_INTERFACE = exports.ENTRYPOINT_CONTRACT_INTERFACE = exports.ESTIMATION_PAYMASTER_ABI = exports.USER_AUTHENTICATION_ABI = exports.ROLE_BASED_ACCESS_CONTROL_ABI = exports.UNISWAPV2ROUTER02_ABI = exports.UNISWAPV2FACTORY_ABI = exports.UNISWAP_V3_LIMIT_ORDER_ABI = exports.ERC_721_ABI = exports.WITHDRAW_QUEUE_ABI = exports.TOKEN_PAYMASTER_ABI = exports.GASLESS_PAYMASTER_ABI = exports.FACTORY_ABI = exports.WALLET_ABI = exports.ERC20_ABI = exports.ENTRYPOINT_ABI = exports.APPROVE_AND_SWAP_ABI = exports.APPROVE_AND_EXEC_ABI = exports.HashZero = exports.AddressZero = exports.GASLESS_SPONSOR_SUPPORT_CHAINS = exports.TOKEN_SPONSOR_SUPPORT_CHAINS = exports.FUN_TOKEN_SPONSOR_ADDRESS = exports.FUN_GASLESS_SPONSOR_ADDRESS = exports.BASE_WRAP_TOKEN_ADDR = exports.DASHBOARD_API_URL = exports.API_URL = exports.LOCAL_API_URL = void 0;
7
+ const IUniswapV3Pool_json_1 = __importDefault(require("@uniswap/v3-core/artifacts/contracts/interfaces/IUniswapV3Pool.sol/IUniswapV3Pool.json"));
8
+ const viem_1 = require("viem");
9
+ const ApproveAndExec_json_1 = __importDefault(require("../abis/ApproveAndExec.json"));
10
+ const ApproveAndSwap_json_1 = __importDefault(require("../abis/ApproveAndSwap.json"));
11
+ const EntryPoint_json_1 = __importDefault(require("../abis/EntryPoint.json"));
12
+ const ERC20_json_1 = __importDefault(require("../abis/ERC20.json"));
13
+ const ERC721_json_1 = __importDefault(require("../abis/ERC721.json"));
14
+ const EstimationPaymaster_json_1 = __importDefault(require("../abis/EstimationPaymaster.json"));
15
+ const FeePercentOracle_json_1 = __importDefault(require("../abis/FeePercentOracle.json"));
16
+ const FunWallet_json_1 = __importDefault(require("../abis/FunWallet.json"));
17
+ const FunWalletFactory_json_1 = __importDefault(require("../abis/FunWalletFactory.json"));
18
+ const GaslessPaymaster_json_1 = __importDefault(require("../abis/GaslessPaymaster.json"));
19
+ const LidoWithdrawQueue_json_1 = __importDefault(require("../abis/LidoWithdrawQueue.json"));
20
+ const RoleBasedAccessControl_json_1 = __importDefault(require("../abis/RoleBasedAccessControl.json"));
21
+ const TestNFT_json_1 = __importDefault(require("../abis/TestNFT.json"));
22
+ const TokenPaymaster_json_1 = __importDefault(require("../abis/TokenPaymaster.json"));
23
+ const TokenPriceOracle_json_1 = __importDefault(require("../abis/TokenPriceOracle.json"));
24
+ const UniswapV2Factory_json_1 = __importDefault(require("../abis/UniswapV2Factory.json"));
25
+ const UniswapV2Router02_json_1 = __importDefault(require("../abis/UniswapV2Router02.json"));
26
+ const UniswapV3LimitOrder_json_1 = __importDefault(require("../abis/UniswapV3LimitOrder.json"));
27
+ const univ3factory_json_1 = __importDefault(require("../abis/univ3factory.json"));
28
+ const univ3quoter_json_1 = __importDefault(require("../abis/univ3quoter.json"));
29
+ const univ3router_json_1 = __importDefault(require("../abis/univ3router.json"));
30
+ const UserAuthentication_json_1 = __importDefault(require("../abis/UserAuthentication.json"));
31
+ const ContractInterface_1 = require("../viem/ContractInterface");
32
+ // local environment
33
+ exports.LOCAL_API_URL = "http://127.0.0.1:3000";
34
+ // prod
35
+ let API_URL = "https://api.fun.xyz/v1";
36
+ exports.API_URL = API_URL;
37
+ switch (process.env.NODE_ENV) {
38
+ case "staging":
39
+ exports.API_URL = API_URL = "https://api.fun.xyz/staging/v1";
40
+ break;
41
+ case "testing":
42
+ exports.API_URL = API_URL = "https://api.fun.xyz/testing";
43
+ break;
44
+ case "local":
45
+ exports.API_URL = API_URL = exports.LOCAL_API_URL;
46
+ break;
47
+ }
48
+ exports.DASHBOARD_API_URL = "https://api.fun.xyz/dashboard";
49
+ exports.BASE_WRAP_TOKEN_ADDR = {
50
+ "1": {
51
+ weth: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
52
+ },
53
+ "5": {
54
+ weth: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6"
55
+ },
56
+ "10": {
57
+ weth: "0x4200000000000000000000000000000000000006"
58
+ },
59
+ "137": {
60
+ wmatic: "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270"
61
+ },
62
+ "8453": {
63
+ weth: "0x4200000000000000000000000000000000000006"
64
+ },
65
+ "36865": {
66
+ weth: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
67
+ },
68
+ "42161": {
69
+ weth: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
70
+ },
71
+ "43113": {
72
+ weth: "0x1D308089a2D1Ced3f1Ce36B1FcaF815b07217be3"
73
+ }
74
+ };
75
+ // When update this, also remember to update the address in api service
76
+ exports.FUN_GASLESS_SPONSOR_ADDRESS = "0xCB5D0b4569A39C217c243a436AC3feEe5dFeb9Ad";
77
+ exports.FUN_TOKEN_SPONSOR_ADDRESS = "0x40C0cCa76088D45106c2D74D0B4B6405865f22De";
78
+ exports.TOKEN_SPONSOR_SUPPORT_CHAINS = ["1", "5", "10", "137", "8453", "42161"];
79
+ exports.GASLESS_SPONSOR_SUPPORT_CHAINS = ["5"];
80
+ exports.AddressZero = (0, viem_1.padHex)("0x", { size: 20 });
81
+ exports.HashZero = (0, viem_1.padHex)("0x", { size: 32 });
82
+ // abis
83
+ exports.APPROVE_AND_EXEC_ABI = ApproveAndExec_json_1.default["abi"];
84
+ exports.APPROVE_AND_SWAP_ABI = ApproveAndSwap_json_1.default["abi"];
85
+ exports.ENTRYPOINT_ABI = EntryPoint_json_1.default["abi"];
86
+ exports.ERC20_ABI = ERC20_json_1.default["abi"];
87
+ exports.WALLET_ABI = FunWallet_json_1.default["abi"];
88
+ exports.FACTORY_ABI = FunWalletFactory_json_1.default["abi"];
89
+ exports.GASLESS_PAYMASTER_ABI = GaslessPaymaster_json_1.default["abi"];
90
+ exports.TOKEN_PAYMASTER_ABI = TokenPaymaster_json_1.default["abi"];
91
+ exports.WITHDRAW_QUEUE_ABI = LidoWithdrawQueue_json_1.default["abi"];
92
+ exports.ERC_721_ABI = ERC721_json_1.default["abi"];
93
+ exports.UNISWAP_V3_LIMIT_ORDER_ABI = UniswapV3LimitOrder_json_1.default["abi"];
94
+ exports.UNISWAPV2FACTORY_ABI = UniswapV2Factory_json_1.default["abi"];
95
+ exports.UNISWAPV2ROUTER02_ABI = UniswapV2Router02_json_1.default["abi"];
96
+ exports.ROLE_BASED_ACCESS_CONTROL_ABI = RoleBasedAccessControl_json_1.default["abi"];
97
+ exports.USER_AUTHENTICATION_ABI = UserAuthentication_json_1.default["abi"];
98
+ exports.ESTIMATION_PAYMASTER_ABI = EstimationPaymaster_json_1.default["abi"];
99
+ // contract interface
100
+ exports.ENTRYPOINT_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.ENTRYPOINT_ABI);
101
+ exports.ERC721_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.ERC_721_ABI);
102
+ exports.ERC20_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.ERC20_ABI);
103
+ exports.FACTORY_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.FACTORY_ABI);
104
+ exports.GASLESS_PAYMASTER_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.GASLESS_PAYMASTER_ABI);
105
+ exports.TOKEN_PAYMASTER_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.TOKEN_PAYMASTER_ABI);
106
+ exports.WALLET_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.WALLET_ABI);
107
+ exports.POOL_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(IUniswapV3Pool_json_1.default["abi"]);
108
+ exports.APPROVE_AND_EXEC_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.APPROVE_AND_EXEC_ABI);
109
+ exports.UNISWAPV2FACTORY_INTERFACE = new ContractInterface_1.ContractInterface(exports.UNISWAPV2FACTORY_ABI);
110
+ exports.UNISWAPV2ROUTER02_INTERFACE = new ContractInterface_1.ContractInterface(exports.UNISWAPV2ROUTER02_ABI);
111
+ exports.RBAC_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.ROLE_BASED_ACCESS_CONTROL_ABI);
112
+ exports.USER_AUTHENTICATION_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.USER_AUTHENTICATION_ABI);
113
+ exports.UNISWAP_V3_LIMIT_ORDER_CONTRACT_INTERFACE = new ContractInterface_1.ContractInterface(exports.UNISWAP_V3_LIMIT_ORDER_ABI);
114
+ exports.CONTRACT_ADDRESSES = {
115
+ approveAndExecAddress: ApproveAndExec_json_1.default["addresses"],
116
+ tokenSwapAddress: ApproveAndSwap_json_1.default["addresses"],
117
+ entryPointAddress: EntryPoint_json_1.default["addresses"],
118
+ factoryAddress: FunWalletFactory_json_1.default["addresses"],
119
+ gaslessPaymasterAddress: GaslessPaymaster_json_1.default["addresses"],
120
+ estimationPaymasterAddress: EstimationPaymaster_json_1.default["addresses"],
121
+ tokenPaymasterAddress: TokenPaymaster_json_1.default["addresses"],
122
+ oracle: TokenPriceOracle_json_1.default["addresses"],
123
+ userAuthAddress: UserAuthentication_json_1.default["addresses"],
124
+ rbacAddress: RoleBasedAccessControl_json_1.default["addresses"],
125
+ feeOracle: FeePercentOracle_json_1.default["addresses"],
126
+ uniswapv3LimitOrder: UniswapV3LimitOrder_json_1.default["addresses"],
127
+ univ3factory: univ3factory_json_1.default["addresses"],
128
+ univ3quoter: univ3quoter_json_1.default["addresses"],
129
+ univ3router: univ3router_json_1.default["addresses"],
130
+ UniswapV2Factory: UniswapV2Factory_json_1.default["addresses"],
131
+ UniswapV2Router02: UniswapV2Router02_json_1.default["addresses"],
132
+ TestNFT: TestNFT_json_1.default["addresses"],
133
+ funGaslessSponsorAddress: { "5": exports.FUN_GASLESS_SPONSOR_ADDRESS },
134
+ funTokenSponsorAddress: {
135
+ "1": exports.FUN_TOKEN_SPONSOR_ADDRESS,
136
+ "5": exports.FUN_TOKEN_SPONSOR_ADDRESS,
137
+ "10": exports.FUN_TOKEN_SPONSOR_ADDRESS,
138
+ "137": exports.FUN_TOKEN_SPONSOR_ADDRESS,
139
+ "8453": exports.FUN_TOKEN_SPONSOR_ADDRESS,
140
+ "42161": exports.FUN_TOKEN_SPONSOR_ADDRESS
141
+ }
142
+ };
143
+ exports.gasSpecificChain = {
144
+ "137": {
145
+ gasStationUrl: "https://gasstation.polygon.technology/v2",
146
+ backupPriorityFee: "1000",
147
+ backupFee: "200" // 200 gwei
148
+ }
149
+ };
150
+ exports.ETH_TRANSFER_SELECTOR = "0x00000000";
151
+ exports.VALID_PRIVATE_KEY_LENGTH = 64;
152
+ exports.BYTES32_LENGTH = 66;
153
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./constants";
2
+ export * from "./types";
@@ -0,0 +1,19 @@
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("./constants"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,0CAAuB"}
@@ -0,0 +1,32 @@
1
+ import { Address, Hex } from "viem";
2
+ import { Chain } from "../data";
3
+ type BigIntIsh = bigint | number | string | undefined;
4
+ export type TransactionParams = {
5
+ to: Address;
6
+ value?: BigIntIsh;
7
+ data?: Hex;
8
+ };
9
+ export interface TransactionData extends TransactionParams {
10
+ chain?: Chain;
11
+ }
12
+ export interface TransactionDataWithFee extends TransactionData {
13
+ token?: string;
14
+ amount?: BigIntIsh;
15
+ gasPercent?: BigIntIsh;
16
+ recipient?: Address;
17
+ oracle?: Address;
18
+ }
19
+ export interface ExecutionReceipt {
20
+ userOpHash: string;
21
+ txId?: Hex;
22
+ gasUsed?: string;
23
+ opFeeUSD?: string;
24
+ opFee?: string;
25
+ }
26
+ export type EstimateGasResult = {
27
+ verificationGas?: bigint;
28
+ preVerificationGas: bigint;
29
+ verificationGasLimit: bigint;
30
+ callGasLimit: bigint;
31
+ };
32
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { EnvOption, GlobalEnvOption } from "./types";
2
+ export declare function parseOptions(option: EnvOption): any;
3
+ export declare function configureEnvironment(option: GlobalEnvOption): Promise<void>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configureEnvironment = exports.parseOptions = void 0;
4
+ const data_1 = require("../data");
5
+ const errors_1 = require("../errors");
6
+ function parseOptions(option) {
7
+ const globalOptions = globalThis.globalEnvOption;
8
+ return { ...globalOptions, ...option };
9
+ }
10
+ exports.parseOptions = parseOptions;
11
+ async function configureEnvironment(option) {
12
+ const global = globalThis;
13
+ if (!global.globalEnvOption) {
14
+ global.globalEnvOption = {};
15
+ }
16
+ const globalEnvOption = global.globalEnvOption;
17
+ if ((!option || !option.chain) && !globalEnvOption.chain) {
18
+ globalEnvOption.chain = await data_1.Chain.getChain({ chainIdentifier: 5 });
19
+ }
20
+ else {
21
+ globalEnvOption.chain = option.chain ? await data_1.Chain.getChain({ chainIdentifier: option.chain }) : globalEnvOption.chain;
22
+ }
23
+ globalEnvOption.apiKey = option.apiKey ? option.apiKey : globalEnvOption.apiKey;
24
+ if (!globalEnvOption.apiKey) {
25
+ throw new errors_1.InvalidParameterError(errors_1.ErrorCode.MissingParameter, "apiKey is required", { option }, "Provide apiKey when configureEnvironment.", "https://docs.fun.xyz");
26
+ }
27
+ if (option.gasSponsor !== null && option.gasSponsor !== undefined) {
28
+ if (Object.keys(option.gasSponsor).length !== 0) {
29
+ if (option.gasSponsor.token) {
30
+ const usePermit = option.gasSponsor.usePermit === false ? false : true;
31
+ globalEnvOption.gasSponsor = { ...option.gasSponsor, usePermit };
32
+ }
33
+ else {
34
+ globalEnvOption.gasSponsor = { ...option.gasSponsor };
35
+ }
36
+ }
37
+ else {
38
+ globalEnvOption.gasSponsor = {};
39
+ }
40
+ }
41
+ globalEnvOption.fee = option.fee ? option.fee : globalEnvOption.fee;
42
+ globalEnvOption.skipDBAction =
43
+ option.skipDBAction === null || option.skipDBAction === undefined ? globalEnvOption.skipDBAction : option.skipDBAction;
44
+ }
45
+ exports.configureEnvironment = configureEnvironment;
46
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/config/Config.ts"],"names":[],"mappings":";;;AACA,kCAA+B;AAC/B,sCAA4D;AAE5D,SAAgB,YAAY,CAAC,MAAiB;IAC1C,MAAM,aAAa,GAAI,UAAkB,CAAC,eAAe,CAAA;IACzD,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAA;AAC1C,CAAC;AAHD,oCAGC;AAEM,KAAK,UAAU,oBAAoB,CAAC,MAAuB;IAC9D,MAAM,MAAM,GAAG,UAAiB,CAAA;IAChC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;QACzB,MAAM,CAAC,eAAe,GAAG,EAAE,CAAA;KAC9B;IACD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;IAE9C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QACtD,eAAe,CAAC,KAAK,GAAG,MAAM,YAAK,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;KACvE;SAAM;QACH,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,YAAK,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAA;KACzH;IAED,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAA;IAC/E,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QACzB,MAAM,IAAI,8BAAqB,CAC3B,kBAAS,CAAC,gBAAgB,EAC1B,oBAAoB,EACpB,EAAE,MAAM,EAAE,EACV,2CAA2C,EAC3C,sBAAsB,CACzB,CAAA;KACJ;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;QAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;gBACtE,eAAe,CAAC,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAA;aACnE;iBAAM;gBACH,eAAe,CAAC,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;aACxD;SACJ;aAAM;YACH,eAAe,CAAC,UAAU,GAAG,EAAE,CAAA;SAClC;KACJ;IACD,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAA;IACnE,eAAe,CAAC,YAAY;QACxB,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAA;AAC9H,CAAC;AAvCD,oDAuCC"}
@@ -0,0 +1,2 @@
1
+ export * from "./Config";
2
+ export * from "./types";
@@ -0,0 +1,19 @@
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("./Config"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,0CAAuB"}
@@ -0,0 +1,21 @@
1
+ import { Address } from "viem";
2
+ import { Chain } from "../data";
3
+ export interface EnvOption {
4
+ chain: string | Chain | number;
5
+ gasSponsor?: {
6
+ sponsorAddress?: Address;
7
+ token?: string;
8
+ usePermit?: boolean;
9
+ };
10
+ fee?: {
11
+ token?: string;
12
+ amount?: number;
13
+ gasPercent?: number;
14
+ recipient: Address;
15
+ };
16
+ skipDBAction?: boolean;
17
+ nonce?: bigint;
18
+ }
19
+ export interface GlobalEnvOption extends EnvOption {
20
+ apiKey?: string;
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { Address, Hex, PublicClient } from "viem";
2
+ import { ChainInput, UserOperation } from "./types";
3
+ import { EstimateGasResult } from "../common";
4
+ export declare class Chain {
5
+ private initialized;
6
+ private id?;
7
+ private name?;
8
+ private addresses;
9
+ private currency?;
10
+ private rpcUrl?;
11
+ private client?;
12
+ private static chain;
13
+ private constructor();
14
+ static getChain(chainInput: ChainInput): Promise<Chain>;
15
+ private init;
16
+ private loadChainFromRpc;
17
+ private loadChain;
18
+ getChainId(): Promise<string>;
19
+ getChainName(): Promise<string>;
20
+ getRpcUrl(): Promise<string>;
21
+ getAddress(name: string): Promise<Address>;
22
+ getModuleAddresses(name: string): Promise<string[]>;
23
+ getCurrency(): Promise<string>;
24
+ getClient(): Promise<PublicClient>;
25
+ getFeeData(): Promise<bigint>;
26
+ estimateOpGas(partialOp: UserOperation): Promise<EstimateGasResult>;
27
+ getTxId(userOpHash: string, timeout?: number, interval?: number, fromBlock?: bigint): Promise<Hex | null>;
28
+ addressIsContract(address: Address): Promise<boolean>;
29
+ }
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chain = void 0;
4
+ const viem_1 = require("viem");
5
+ const apis_1 = require("../apis");
6
+ const common_1 = require("../common");
7
+ const errors_1 = require("../errors");
8
+ const utils_1 = require("../utils");
9
+ class Chain {
10
+ constructor(chainInput) {
11
+ this.initialized = false;
12
+ this.addresses = {};
13
+ if (!chainInput.chainIdentifier && !chainInput.rpcUrl) {
14
+ throw new errors_1.InvalidParameterError(errors_1.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");
15
+ }
16
+ if (chainInput.rpcUrl) {
17
+ this.rpcUrl = chainInput.rpcUrl;
18
+ }
19
+ else if (chainInput.chainIdentifier instanceof Chain) {
20
+ return chainInput.chainIdentifier;
21
+ }
22
+ else if (typeof chainInput.chainIdentifier === "number" || Number(chainInput.chainIdentifier)) {
23
+ this.id = chainInput.chainIdentifier.toString();
24
+ }
25
+ else {
26
+ this.name = chainInput.chainIdentifier;
27
+ }
28
+ }
29
+ static async getChain(chainInput) {
30
+ if (chainInput.chainIdentifier instanceof Chain) {
31
+ return chainInput.chainIdentifier;
32
+ }
33
+ else if (!Chain.chain ||
34
+ ((await Chain.chain.getChainId()) !== chainInput.chainIdentifier?.toString() &&
35
+ (await Chain.chain.getChainName()) !== chainInput.chainIdentifier?.toString() &&
36
+ (await Chain.chain.getRpcUrl()) !== chainInput.rpcUrl)) {
37
+ if (typeof chainInput.chainIdentifier === "string") {
38
+ chainInput.chainIdentifier = chainInput.chainIdentifier.replace(/\s/g, "");
39
+ }
40
+ if (chainInput.chainIdentifier === "ethereum-goerli") {
41
+ chainInput.chainIdentifier = "goerli";
42
+ }
43
+ if (chainInput.chainIdentifier === "polygon") {
44
+ chainInput.chainIdentifier = "polygon-mainnet";
45
+ }
46
+ Chain.chain = new Chain(chainInput);
47
+ }
48
+ return Chain.chain;
49
+ }
50
+ async init() {
51
+ if (this.initialized)
52
+ return;
53
+ if (this.id) {
54
+ await this.loadChain(this.id);
55
+ }
56
+ else if (this.name) {
57
+ await this.loadChain(this.name);
58
+ }
59
+ else if (this.rpcUrl) {
60
+ await this.loadChainFromRpc();
61
+ }
62
+ this.initialized = true;
63
+ }
64
+ async loadChainFromRpc() {
65
+ this.client = (0, viem_1.createPublicClient)({
66
+ transport: (0, viem_1.http)(this.rpcUrl)
67
+ });
68
+ this.id = (await this.client.getChainId()).toString();
69
+ await this.loadChain(this.id);
70
+ }
71
+ async loadChain(identifier) {
72
+ let chain;
73
+ if (!Number(identifier)) {
74
+ chain = await (0, apis_1.getChainFromName)(identifier);
75
+ }
76
+ else {
77
+ chain = await (0, apis_1.getChainFromId)(identifier);
78
+ }
79
+ this.id = chain.id;
80
+ this.name = chain.name;
81
+ this.currency = chain.nativeCurrency.symbol;
82
+ const abisAddresses = Object.keys(common_1.CONTRACT_ADDRESSES).reduce((result, key) => {
83
+ result[key] = common_1.CONTRACT_ADDRESSES[key][this.id];
84
+ return result;
85
+ }, {});
86
+ const addresses = { ...abisAddresses };
87
+ this.rpcUrl = chain.rpcUrls.default;
88
+ this.client = (0, viem_1.createPublicClient)({
89
+ transport: (0, viem_1.http)(this.rpcUrl)
90
+ });
91
+ Object.assign(this, { ...this, addresses });
92
+ }
93
+ async getChainId() {
94
+ await this.init();
95
+ return this.id;
96
+ }
97
+ async getChainName() {
98
+ await this.init();
99
+ return this.name;
100
+ }
101
+ async getRpcUrl() {
102
+ await this.init();
103
+ return this.rpcUrl;
104
+ }
105
+ async getAddress(name) {
106
+ await this.init();
107
+ const res = this.addresses[name];
108
+ if (!res) {
109
+ throw new errors_1.ResourceNotFoundError(errors_1.ErrorCode.AddressNotFound, "address not found", { name }, "Provide correct name to query address", "https://docs.fun.xyz");
110
+ }
111
+ return res;
112
+ }
113
+ async getModuleAddresses(name) {
114
+ await this.init();
115
+ return await (0, apis_1.getModuleInfo)(name, this.id);
116
+ }
117
+ async getCurrency() {
118
+ await this.init();
119
+ return this.currency;
120
+ }
121
+ async getClient() {
122
+ await this.init();
123
+ return this.client;
124
+ }
125
+ async getFeeData() {
126
+ await this.init();
127
+ return this.client.getGasPrice();
128
+ }
129
+ async estimateOpGas(partialOp) {
130
+ await this.init();
131
+ if (!this.addresses || !this.addresses.entryPointAddress) {
132
+ throw new errors_1.InternalFailureError(errors_1.ErrorCode.AddressNotFound, "entryPointAddress is required", { partialOp }, "This is an internal error, please contact support.", "https://docs.fun.xyz");
133
+ }
134
+ let { preVerificationGas, callGasLimit, verificationGasLimit } = await (0, apis_1.estimateOp)({
135
+ chainId: this.id,
136
+ entryPointAddress: this.addresses.entryPointAddress,
137
+ userOp: partialOp
138
+ });
139
+ if (!preVerificationGas || !verificationGasLimit || !callGasLimit) {
140
+ throw new Error(JSON.stringify({ preVerificationGas, callGasLimit, verificationGasLimit }));
141
+ }
142
+ callGasLimit = BigInt(callGasLimit) * 2n;
143
+ preVerificationGas = BigInt(preVerificationGas) * 2n;
144
+ verificationGasLimit = BigInt(verificationGasLimit) + 200000n;
145
+ return { preVerificationGas, verificationGasLimit, callGasLimit };
146
+ }
147
+ async getTxId(userOpHash, timeout = 60000, interval = 5000, fromBlock) {
148
+ const endtime = Date.now() + timeout;
149
+ const client = await this.getClient();
150
+ const entryPointAddress = await this.getAddress("entryPointAddress");
151
+ fromBlock = fromBlock ? fromBlock : (await client.getBlockNumber()) - 100n;
152
+ let filter;
153
+ while (Date.now() < endtime) {
154
+ let events;
155
+ if ((await client.getChainId()) === 84531 || (await client.getChainId()) === 36865) {
156
+ events = await common_1.ENTRYPOINT_CONTRACT_INTERFACE.getLog(entryPointAddress, "UserOperationEvent", { userOpHash }, client, fromBlock);
157
+ }
158
+ else {
159
+ filter = await common_1.ENTRYPOINT_CONTRACT_INTERFACE.createFilter(entryPointAddress, "UserOperationEvent", [userOpHash], client, fromBlock);
160
+ events = await client.getFilterLogs({ filter });
161
+ }
162
+ if (events.length > 0) {
163
+ return events[0].transactionHash;
164
+ }
165
+ await new Promise((resolve) => setTimeout(resolve, interval));
166
+ }
167
+ return null;
168
+ }
169
+ async addressIsContract(address) {
170
+ return (0, utils_1.isContract)(address, await this.getClient());
171
+ }
172
+ }
173
+ exports.Chain = Chain;
174
+ //# sourceMappingURL=Chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/data/Chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Address } from "viem";
2
+ import { TransactionData } from "../common";
3
+ import { EnvOption } from "../config";
4
+ export declare class NFT {
5
+ address?: Address;
6
+ name: string;
7
+ constructor(input: string);
8
+ approve(spender: string, tokenId: number, options?: EnvOption): Promise<TransactionData>;
9
+ ownerOf(tokenId: number, options?: EnvOption): Promise<Address>;
10
+ approveForAll(spender: string, options?: EnvOption): Promise<any>;
11
+ getAddress(): Promise<Address>;
12
+ getName(options?: EnvOption): Promise<string>;
13
+ getBalance(address: Address, options?: EnvOption): Promise<bigint>;
14
+ getApproved(tokenId: string, options?: EnvOption): Promise<Address>;
15
+ revokeForAll(spender: string, options?: EnvOption): Promise<TransactionData>;
16
+ transfer(sender: string, spender: string, tokenId: number, options?: EnvOption): Promise<any>;
17
+ static approve(data: string, spender: string, tokenId: number, options?: EnvOption): Promise<TransactionData>;
18
+ static approveForAll(data: string, spender: string, options?: EnvOption): Promise<TransactionData>;
19
+ static getAddress(data: string): Promise<string>;
20
+ static getApproved(data: string, tokenId: string, options?: EnvOption): Promise<string>;
21
+ static revokeForAll(data: string, spender: string, options?: EnvOption): Promise<TransactionData>;
22
+ static transfer(data: string, sender: string, spender: string, tokenId: number, options?: EnvOption): Promise<TransactionData>;
23
+ static ownerOf(data: string, tokenId: number, options?: EnvOption): Promise<Address>;
24
+ }