@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,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGasStation = exports.getPermitHash = exports.getWalletPermitNonce = exports.randomBytes = exports.isContract = exports.fundWallet = exports.isAddress = void 0;
4
+ const viem_1 = require("viem");
5
+ const ApiUtils_1 = require("./ApiUtils");
6
+ const common_1 = require("../common");
7
+ const data_1 = require("../data");
8
+ const isAddress = (address) => {
9
+ try {
10
+ const [decodedAddr] = (0, viem_1.decodeAbiParameters)([{ type: "address" }], (0, viem_1.pad)(address, { size: 32 }));
11
+ return (0, viem_1.isAddress)(decodedAddr);
12
+ }
13
+ catch (err) {
14
+ return false;
15
+ }
16
+ };
17
+ exports.isAddress = isAddress;
18
+ const fundWallet = async (auth, wallet, value, txOptions = globalThis.globalEnvOption) => {
19
+ const chain = await data_1.Chain.getChain({ chainIdentifier: txOptions.chain });
20
+ const chainId = await chain.getChainId();
21
+ const to = await wallet.getAddress();
22
+ let txData;
23
+ if (common_1.gasSpecificChain[chainId]) {
24
+ let maxPriorityFee, maxFee;
25
+ try {
26
+ const { standard: { maxPriorityFee: maxPriorityFee1, maxFee: maxFee1 } } = await (0, exports.getGasStation)(common_1.gasSpecificChain[chainId].gasStationUrl);
27
+ maxPriorityFee = maxPriorityFee1;
28
+ maxFee = maxFee1;
29
+ }
30
+ catch (e) {
31
+ maxPriorityFee = BigInt(common_1.gasSpecificChain[chainId].backupPriorityFee);
32
+ maxFee = BigInt(common_1.gasSpecificChain[chainId].backupFee);
33
+ }
34
+ txData = {
35
+ to,
36
+ data: "0x",
37
+ value: (0, viem_1.parseEther)(`${value}`),
38
+ maxFeePerGas: BigInt(Math.floor(maxPriorityFee * 1e9)),
39
+ maxPriorityFeePerGas: BigInt(Math.floor(maxFee * 1e9))
40
+ };
41
+ }
42
+ else {
43
+ txData = { to, data: "0x", value: (0, viem_1.parseEther)(`${value}`) };
44
+ }
45
+ const receipt = await auth.sendTx({ ...txData });
46
+ return await receipt;
47
+ };
48
+ exports.fundWallet = fundWallet;
49
+ const isContract = async (address, client) => {
50
+ try {
51
+ const code = await client.getBytecode({ address });
52
+ return !!code;
53
+ }
54
+ catch (error) {
55
+ return false;
56
+ }
57
+ };
58
+ exports.isContract = isContract;
59
+ const randomBytes = (length) => {
60
+ const bytes = new Uint8Array(length);
61
+ for (let i = 0; i < length; i++) {
62
+ bytes[i] = Math.floor(Math.random() * 256);
63
+ }
64
+ return (0, viem_1.toHex)(bytes);
65
+ };
66
+ exports.randomBytes = randomBytes;
67
+ const getWalletPermitNonce = async (walletAddr, chain, nonceKey = 0) => {
68
+ try {
69
+ return await common_1.WALLET_CONTRACT_INTERFACE.readFromChain(walletAddr, "getNonce", [nonceKey], chain);
70
+ }
71
+ catch (e) {
72
+ return 0;
73
+ }
74
+ };
75
+ exports.getWalletPermitNonce = getWalletPermitNonce;
76
+ const getPermitHash = (token, to, amount, nonce, walletAddr, chainId) => {
77
+ const salt = (0, viem_1.keccak256)((0, viem_1.toBytes)("Create3Deployer.deployers()"));
78
+ const EIP712_DOMAIN = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: "string" }], ["EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)"]));
79
+ const PERMIT_TYPEHASH = "PermitTransferStruct(address token, address to, uint256 amount, uint256 nonce)";
80
+ const DOMAIN_SEPARATOR = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: "bytes32" }, { type: "bytes32" }, { type: "bytes32" }, { type: "uint256" }, { type: "address" }, { type: "bytes32" }], [EIP712_DOMAIN, salt, (0, viem_1.keccak256)((0, viem_1.toBytes)("1")), chainId, walletAddr, salt]));
81
+ const PERMIT_HASH = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: "string" }, { type: "address" }, { type: "address" }, { type: "uint256" }, { type: "uint256" }], [PERMIT_TYPEHASH, token, to, amount, nonce]));
82
+ return (0, viem_1.keccak256)((0, viem_1.concat)([DOMAIN_SEPARATOR, PERMIT_HASH]));
83
+ };
84
+ exports.getPermitHash = getPermitHash;
85
+ const getGasStation = async (gasStationUrl) => {
86
+ return await (0, ApiUtils_1.sendRequest)(gasStationUrl, "GET", "");
87
+ };
88
+ exports.getGasStation = getGasStation;
89
+ //# sourceMappingURL=ChainUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainUtils.js","sourceRoot":"","sources":["../../../src/utils/ChainUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Hex } from "viem";
2
+ export declare const createMerkleHashes: (list: Hex[]) => any[];
3
+ export declare const getLeft: (i: number) => number;
4
+ export declare const getRight: (i: number) => number;
5
+ export declare const getParent: (index: number) => number;
6
+ export declare const getSibling: (index: number) => number;
7
+ export declare const getHash: (list: Hex[], i: number) => Hex;
8
+ export declare const getHashPair: (left: Hex, right: Hex) => `0x${string}`;
9
+ export declare const arrayCopy: (arr: any[], copy: any[], start: number) => void;
10
+ export declare const getPathForItem: (list: Hex[], item: Hex) => `0x${string}`[];
11
+ export declare const verifyPath: (root: Hex, item: Hex, path: Hex[]) => boolean;
12
+ export declare class MerkleTree {
13
+ tree: Hex[];
14
+ constructor(list: Hex[]);
15
+ getPathForItem(item: Hex): `0x${string}`[];
16
+ verifyPath(item: Hex, path: Hex[]): boolean;
17
+ getRoot(): `0x${string}`;
18
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MerkleTree = exports.verifyPath = exports.getPathForItem = exports.arrayCopy = exports.getHashPair = exports.getHash = exports.getSibling = exports.getParent = exports.getRight = exports.getLeft = exports.createMerkleHashes = void 0;
4
+ const viem_1 = require("viem");
5
+ // Copied from contracts repo
6
+ const createMerkleHashes = (list) => {
7
+ list = list.map((data) => (0, viem_1.keccak256)(data));
8
+ const treeSize = 2 ** Math.ceil(Math.log2(list.length)) * 2;
9
+ const buffer = new Array(treeSize).fill("0x");
10
+ (0, exports.arrayCopy)(buffer, list, treeSize / 2);
11
+ for (let i = treeSize / 2 - list.length; i > 0; i--) {
12
+ buffer[buffer.length - i] = list[list.length - 1];
13
+ }
14
+ for (let i = 1; i < buffer.length; i++) {
15
+ buffer[i] = (0, exports.getHash)(buffer, i);
16
+ }
17
+ return buffer;
18
+ };
19
+ exports.createMerkleHashes = createMerkleHashes;
20
+ const getLeft = (i) => i * 2;
21
+ exports.getLeft = getLeft;
22
+ const getRight = (i) => i * 2 + 1;
23
+ exports.getRight = getRight;
24
+ const getParent = (index) => Math.floor(index / 2);
25
+ exports.getParent = getParent;
26
+ const getSibling = (index) => {
27
+ const parent = (0, exports.getParent)(index);
28
+ if (index % 2 === 0) {
29
+ return (0, exports.getRight)(parent);
30
+ }
31
+ return (0, exports.getLeft)(parent);
32
+ };
33
+ exports.getSibling = getSibling;
34
+ const getHash = (list, i) => {
35
+ if (list[i] === "0x") {
36
+ if ((0, exports.getRight)(i) < list.length) {
37
+ const left = (0, exports.getHash)(list, (0, exports.getLeft)(i));
38
+ const right = (0, exports.getHash)(list, (0, exports.getRight)(i));
39
+ return (0, exports.getHashPair)(left, right);
40
+ }
41
+ throw new Error("Invalid tree");
42
+ }
43
+ return list[i];
44
+ };
45
+ exports.getHash = getHash;
46
+ const getHashPair = (left, right) => {
47
+ if (BigInt(left) < BigInt(right)) {
48
+ return (0, viem_1.keccak256)((0, viem_1.concat)([left, right]));
49
+ }
50
+ return (0, viem_1.keccak256)((0, viem_1.concat)([right, left]));
51
+ };
52
+ exports.getHashPair = getHashPair;
53
+ const arrayCopy = (arr, copy, start) => {
54
+ for (let i = 0; i < copy.length; i++) {
55
+ arr[i + start] = copy[i];
56
+ }
57
+ };
58
+ exports.arrayCopy = arrayCopy;
59
+ const getPathForItem = (list, item) => {
60
+ let index = list.indexOf((0, viem_1.keccak256)(item));
61
+ if (index === -1) {
62
+ throw new Error("Item not found");
63
+ }
64
+ const path = [];
65
+ while (index > 1) {
66
+ const sibling = (0, exports.getSibling)(index);
67
+ path.push(list[sibling]);
68
+ index = (0, exports.getParent)(index);
69
+ }
70
+ return path;
71
+ };
72
+ exports.getPathForItem = getPathForItem;
73
+ const verifyPath = (root, item, path) => {
74
+ let hash = (0, viem_1.keccak256)(item);
75
+ for (let i = 0; i < path.length; i++) {
76
+ hash = (0, exports.getHashPair)(hash, path[i]);
77
+ }
78
+ return hash === root;
79
+ };
80
+ exports.verifyPath = verifyPath;
81
+ class MerkleTree {
82
+ constructor(list) {
83
+ this.tree = (0, exports.createMerkleHashes)(list);
84
+ }
85
+ getPathForItem(item) {
86
+ return (0, exports.getPathForItem)(this.tree, item);
87
+ }
88
+ verifyPath(item, path) {
89
+ return (0, exports.verifyPath)(this.getRoot(), item, path);
90
+ }
91
+ getRoot() {
92
+ return this.tree[1];
93
+ }
94
+ }
95
+ exports.MerkleTree = MerkleTree;
96
+ //# sourceMappingURL=MerkleUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MerkleUtils.js","sourceRoot":"","sources":["../../../src/utils/MerkleUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EnvOption } from "../config";
2
+ import { PaymasterType } from "../sponsors/types";
3
+ export declare const getPaymasterType: (txOptions: EnvOption) => PaymasterType.GaslessSponsor | PaymasterType.TokenSponsor;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPaymasterType = void 0;
4
+ const types_1 = require("../sponsors/types");
5
+ const getPaymasterType = (txOptions) => {
6
+ if (txOptions.gasSponsor?.sponsorAddress && txOptions.gasSponsor?.token) {
7
+ return types_1.PaymasterType.TokenSponsor;
8
+ }
9
+ else if (txOptions.gasSponsor?.sponsorAddress) {
10
+ return types_1.PaymasterType.GaslessSponsor;
11
+ }
12
+ else {
13
+ throw Error("Invalid paymaster type");
14
+ }
15
+ };
16
+ exports.getPaymasterType = getPaymasterType;
17
+ //# sourceMappingURL=PaymasterUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymasterUtils.js","sourceRoot":"","sources":["../../../src/utils/PaymasterUtils.ts"],"names":[],"mappings":";;;AACA,6CAAiD;AAE1C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACrD,IAAI,SAAS,CAAC,UAAU,EAAE,cAAc,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE;QACrE,OAAO,qBAAa,CAAC,YAAY,CAAA;KACpC;SAAM,IAAI,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE;QAC7C,OAAO,qBAAa,CAAC,cAAc,CAAA;KACtC;SAAM;QACH,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAA;KACxC;AACL,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B"}
@@ -0,0 +1,35 @@
1
+ import { Address, PublicClient } from "viem";
2
+ import { UniSwapPoolFeeOptions } from "../actions";
3
+ import { EnvOption } from "../config";
4
+ export declare function fromReadableAmount(amount: number, decimals: number): bigint;
5
+ type SwapParamsUtils = {
6
+ tokenInAddress: Address;
7
+ tokenOutAddress: Address;
8
+ amountIn: number;
9
+ recipient: Address;
10
+ percentDecimal: number;
11
+ slippage: number;
12
+ poolFee: UniSwapPoolFeeOptions;
13
+ };
14
+ export type UniswapV3Addrs = {
15
+ univ3quoter: Address;
16
+ univ3factory: Address;
17
+ univ3router: Address;
18
+ };
19
+ export type UniswapV2Addrs = {
20
+ factory: Address;
21
+ router: Address;
22
+ };
23
+ export declare function swapExec(client: PublicClient, uniswapAddrs: UniswapV3Addrs, swapParams: SwapParamsUtils, chainId: number): Promise<{
24
+ amount: string;
25
+ data: string;
26
+ to: string;
27
+ value: string;
28
+ }>;
29
+ export declare function swapExecV2(client: PublicClient, uniswapAddrs: UniswapV2Addrs, swapParams: SwapParamsUtils, chainId: number): Promise<{
30
+ data: any;
31
+ to: any;
32
+ amount: string;
33
+ }>;
34
+ export declare function oneInchAPIRequest(methodName: string, queryParams: any, options?: EnvOption): Promise<string>;
35
+ export {};
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.oneInchAPIRequest = exports.swapExecV2 = exports.swapExec = exports.fromReadableAmount = void 0;
4
+ const sdk_1 = require("@uniswap/sdk");
5
+ const sdk_core_1 = require("@uniswap/sdk-core");
6
+ const v3_sdk_1 = require("@uniswap/v3-sdk");
7
+ const viem_1 = require("viem");
8
+ const apis_1 = require("../apis");
9
+ const common_1 = require("../common");
10
+ const data_1 = require("../data");
11
+ const apiBaseUrl = "https://api.1inch.io/v5.0/";
12
+ function fromReadableAmount(amount, decimals) {
13
+ return (0, viem_1.parseUnits)(`${amount}`, decimals);
14
+ }
15
+ exports.fromReadableAmount = fromReadableAmount;
16
+ class SwapToken {
17
+ constructor(client, version, quoterContractAddr, poolFactoryContractAddr, v2router, v2Factory) {
18
+ this.client = client;
19
+ this.version = version;
20
+ if (version === 3) {
21
+ if (quoterContractAddr !== undefined && poolFactoryContractAddr !== undefined) {
22
+ this.quoterContractAddr = quoterContractAddr;
23
+ this.poolFactoryContractAddr = poolFactoryContractAddr;
24
+ }
25
+ else {
26
+ throw new Error("quoterContractAddr and poolFactoryContractAddr must be provided");
27
+ }
28
+ }
29
+ else if (version === 2) {
30
+ if (v2router !== undefined && v2Factory !== undefined) {
31
+ this.v2Factory = v2Factory;
32
+ this.v2router = v2router;
33
+ }
34
+ else {
35
+ throw new Error("v2quoter and v2Factory must be provided");
36
+ }
37
+ }
38
+ else {
39
+ throw new Error("Invalid version");
40
+ }
41
+ }
42
+ async getOutputQuote(route, token0, amountIn) {
43
+ const { calldata } = await v3_sdk_1.SwapQuoter.quoteCallParameters(route, sdk_core_1.CurrencyAmount.fromRawAmount(token0, fromReadableAmount(amountIn, token0.decimals).toString()), sdk_core_1.TradeType.EXACT_INPUT, {
44
+ useQuoterV2: true
45
+ });
46
+ const quoteCallReturnData = await this.client.call({
47
+ to: this.quoterContractAddr,
48
+ data: calldata
49
+ });
50
+ if (!quoteCallReturnData.data) {
51
+ throw new Error("No data returned from quote call");
52
+ }
53
+ return (0, viem_1.decodeAbiParameters)([{ name: "return", type: "uint256" }], quoteCallReturnData.data)[0];
54
+ }
55
+ async getPoolInfo(tokenIn, tokenOut, poolFee) {
56
+ const currentPoolAddress = (0, v3_sdk_1.computePoolAddress)({
57
+ factoryAddress: this.poolFactoryContractAddr,
58
+ tokenA: tokenIn,
59
+ tokenB: tokenOut,
60
+ fee: poolFee
61
+ });
62
+ const [token0, token1, fee, tickSpacing, liquidity, slot0] = await common_1.POOL_CONTRACT_INTERFACE.batchReadFromChain(currentPoolAddress, this.client, [
63
+ {
64
+ functionName: "token0"
65
+ },
66
+ {
67
+ functionName: "token1"
68
+ },
69
+ {
70
+ functionName: "fee"
71
+ },
72
+ {
73
+ functionName: "tickSpacing"
74
+ },
75
+ {
76
+ functionName: "liquidity"
77
+ },
78
+ {
79
+ functionName: "slot0"
80
+ }
81
+ ]);
82
+ return {
83
+ token0,
84
+ token1,
85
+ fee,
86
+ tickSpacing,
87
+ liquidity,
88
+ sqrtPriceX96: slot0[0],
89
+ tick: slot0[1]
90
+ };
91
+ }
92
+ async getTokenDecimals(tokenAddr) {
93
+ return await common_1.ERC20_CONTRACT_INTERFACE.readFromChain(tokenAddr, "decimals", [], this.client);
94
+ }
95
+ async createTrade(amountIn, tokenIn, tokenOut, poolFee) {
96
+ const poolInfo = await this.getPoolInfo(tokenIn, tokenOut, poolFee);
97
+ const pool = new v3_sdk_1.Pool(tokenIn, tokenOut, poolFee, poolInfo.sqrtPriceX96.toString(), poolInfo.liquidity.toString(), poolInfo.tick);
98
+ const swapRoute = new v3_sdk_1.Route([pool], tokenIn, tokenOut);
99
+ const amountOut = await this.getOutputQuote(swapRoute, tokenIn, amountIn);
100
+ const tokenInAmount = fromReadableAmount(amountIn, tokenIn.decimals).toString();
101
+ const uncheckedTrade = v3_sdk_1.Trade.createUncheckedTrade({
102
+ route: swapRoute,
103
+ inputAmount: sdk_core_1.CurrencyAmount.fromRawAmount(tokenIn, tokenInAmount),
104
+ outputAmount: sdk_core_1.CurrencyAmount.fromRawAmount(tokenOut, sdk_1.JSBI.BigInt(amountOut.toString())),
105
+ tradeType: sdk_core_1.TradeType.EXACT_INPUT
106
+ });
107
+ return { uncheckedTrade, tokenInAmount };
108
+ }
109
+ async createTradeV2(amountIn, tokenIn, tokenOut, poolFee) {
110
+ const poolInfo = await this.getPoolInfo(tokenIn, tokenOut, poolFee);
111
+ const pool = new v3_sdk_1.Pool(tokenIn, tokenOut, poolFee, poolInfo.sqrtPriceX96.toString(), poolInfo.liquidity.toString(), poolInfo.tick);
112
+ const swapRoute = new v3_sdk_1.Route([pool], tokenIn, tokenOut);
113
+ const amountOut = await this.getOutputQuote(swapRoute, tokenIn, amountIn);
114
+ const tokenInAmount = fromReadableAmount(amountIn, tokenIn.decimals).toString();
115
+ const uncheckedTrade = v3_sdk_1.Trade.createUncheckedTrade({
116
+ route: swapRoute,
117
+ inputAmount: sdk_core_1.CurrencyAmount.fromRawAmount(tokenIn, tokenInAmount),
118
+ outputAmount: sdk_core_1.CurrencyAmount.fromRawAmount(tokenOut, sdk_1.JSBI.BigInt(amountOut.toString())),
119
+ tradeType: sdk_core_1.TradeType.EXACT_INPUT
120
+ });
121
+ return { uncheckedTrade, tokenInAmount };
122
+ }
123
+ executeTrade(trade, routerAddr, walletAddress, slippage = 5000, percentDec = 10000) {
124
+ const options = {
125
+ slippageTolerance: new sdk_core_1.Percent(slippage, percentDec),
126
+ deadline: Date.now() + 1800,
127
+ recipient: walletAddress
128
+ };
129
+ const { calldata, value } = v3_sdk_1.SwapRouter.swapCallParameters(trade, options);
130
+ return {
131
+ data: calldata,
132
+ to: routerAddr,
133
+ value: value
134
+ };
135
+ }
136
+ }
137
+ const fees = {
138
+ lowest: v3_sdk_1.FeeAmount.LOWEST,
139
+ low: v3_sdk_1.FeeAmount.LOW,
140
+ medium: v3_sdk_1.FeeAmount.MEDIUM,
141
+ high: v3_sdk_1.FeeAmount.HIGH
142
+ };
143
+ async function swapExec(client, uniswapAddrs, swapParams, chainId) {
144
+ const { univ3quoter, univ3factory, univ3router } = uniswapAddrs;
145
+ const { tokenInAddress, tokenOutAddress, amountIn, recipient, percentDecimal, slippage, poolFee } = swapParams;
146
+ const _poolFee = fees[poolFee];
147
+ const swapper = new SwapToken(client, 3, univ3quoter, univ3factory);
148
+ const tokenInDecimal = await swapper.getTokenDecimals(tokenInAddress);
149
+ const tokenOutDecimal = await swapper.getTokenDecimals(tokenOutAddress);
150
+ const tokenIn = new sdk_core_1.Token(chainId, tokenInAddress, tokenInDecimal);
151
+ const tokenOut = new sdk_core_1.Token(chainId, tokenOutAddress, tokenOutDecimal);
152
+ const { uncheckedTrade, tokenInAmount } = await swapper.createTrade(amountIn, tokenIn, tokenOut, _poolFee);
153
+ const data = swapper.executeTrade(uncheckedTrade, univ3router, recipient, slippage, percentDecimal);
154
+ return { ...data, amount: tokenInAmount };
155
+ }
156
+ exports.swapExec = swapExec;
157
+ async function swapExecV2(client, uniswapAddrs, swapParams, chainId) {
158
+ const { router, factory } = uniswapAddrs;
159
+ const { tokenInAddress, tokenOutAddress, amountIn, recipient } = swapParams;
160
+ const swapper = new SwapToken(client, 2, undefined, undefined, router, factory);
161
+ const tokenInDecimal = await swapper.getTokenDecimals(tokenInAddress);
162
+ const wethAddr = await (0, apis_1.getTokenInfo)("weth", chainId.toString());
163
+ let swapTxData;
164
+ if (wethAddr === tokenOutAddress) {
165
+ swapTxData = common_1.UNISWAPV2ROUTER02_INTERFACE.encodeTransactionParams(router, "swapExactTokensForETH", [
166
+ fromReadableAmount(amountIn, tokenInDecimal).toString(),
167
+ 0,
168
+ [tokenInAddress, tokenOutAddress],
169
+ recipient,
170
+ Date.now() + 180000 // Long enough to rarely fail
171
+ ]);
172
+ return { data: swapTxData.data, to: swapTxData.to, amount: fromReadableAmount(amountIn, tokenInDecimal).toString() };
173
+ }
174
+ else {
175
+ swapTxData = common_1.UNISWAPV2ROUTER02_INTERFACE.encodeTransactionParams(router, "swapExactTokensForTokens", [
176
+ fromReadableAmount(amountIn, tokenInDecimal).toString(),
177
+ 0,
178
+ [tokenInAddress, tokenOutAddress],
179
+ recipient,
180
+ Date.now() + 180000 // Long enough to rarely fail
181
+ ]);
182
+ return { data: swapTxData.data, to: swapTxData.to, amount: fromReadableAmount(amountIn, tokenInDecimal).toString() };
183
+ }
184
+ }
185
+ exports.swapExecV2 = swapExecV2;
186
+ const testIds = [36864, 31337];
187
+ async function oneInchAPIRequest(methodName, queryParams, options = globalThis.globalEnvOption) {
188
+ const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
189
+ const chainId = testIds.includes(Number(await chain.getChainId())) ? 1 : await chain.getChainId();
190
+ return apiBaseUrl + chainId + methodName + "?" + new URLSearchParams(queryParams).toString();
191
+ }
192
+ exports.oneInchAPIRequest = oneInchAPIRequest;
193
+ //# sourceMappingURL=SwapUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapUtils.js","sourceRoot":"","sources":["../../../src/utils/SwapUtils.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;AACnC,gDAAuF;AACvF,4CAA2G;AAC3G,+BAAkF;AAElF,kCAAsC;AACtC,sCAA0G;AAE1G,kCAA+B;AAE/B,MAAM,UAAU,GAAG,4BAA4B,CAAA;AAE/C,SAAgB,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IAC/D,OAAO,IAAA,iBAAU,EAAC,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC5C,CAAC;AAFD,gDAEC;AAED,MAAM,SAAS;IAQX,YACI,MAAoB,EACpB,OAAc,EACd,kBAA4B,EAC5B,uBAAgC,EAChC,QAAiB,EACjB,SAAkB;QAElB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,OAAO,KAAK,CAAC,EAAE;YACf,IAAI,kBAAkB,KAAK,SAAS,IAAI,uBAAuB,KAAK,SAAS,EAAE;gBAC3E,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;gBAC5C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;aACzD;iBAAM;gBACH,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;aACrF;SACJ;aAAM,IAAI,OAAO,KAAK,CAAC,EAAE;YACtB,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;gBACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;gBAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;aAC3B;iBAAM;gBACH,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;aAC7D;SACJ;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;SACrC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAgC,EAAE,MAAa,EAAE,QAAgB;QAClF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAU,CAAC,mBAAmB,CACrD,KAAK,EACL,yBAAc,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,EAC9F,oBAAS,CAAC,WAAW,EACrB;YACI,WAAW,EAAE,IAAI;SACpB,CACJ,CAAA;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/C,EAAE,EAAE,IAAI,CAAC,kBAAkB;YAC3B,IAAI,EAAE,QAAe;SACxB,CAAC,CAAA;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACtD;QACD,OAAO,IAAA,0BAAmB,EAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAW,CAAA;IAC5G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAc,EAAE,QAAe,EAAE,OAAkB;QACjE,MAAM,kBAAkB,GAAG,IAAA,2BAAkB,EAAC;YAC1C,cAAc,EAAE,IAAI,CAAC,uBAAwB;YAC7C,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,OAAO;SACf,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,gCAAuB,CAAC,kBAAkB,CACzG,kBAA6B,EAC7B,IAAI,CAAC,MAAM,EACX;YACI;gBACI,YAAY,EAAE,QAAQ;aACzB;YACD;gBACI,YAAY,EAAE,QAAQ;aACzB;YACD;gBACI,YAAY,EAAE,KAAK;aACtB;YACD;gBACI,YAAY,EAAE,aAAa;aAC9B;YACD;gBACI,YAAY,EAAE,WAAW;aAC5B;YACD;gBACI,YAAY,EAAE,OAAO;aACxB;SACJ,CACJ,CAAA;QAED,OAAO;YACH,MAAM;YACN,MAAM;YACN,GAAG;YACH,WAAW;YACX,SAAS;YACT,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAkB;QACrC,OAAO,MAAM,iCAAwB,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAc,EAAE,QAAe,EAAE,OAAkB;QACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,IAAI,aAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACjI,MAAM,SAAS,GAAG,IAAI,cAAK,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAEtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC/E,MAAM,cAAc,GAAG,cAAK,CAAC,oBAAoB,CAAC;YAC9C,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,yBAAc,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC;YACjE,YAAY,EAAE,yBAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,SAAS,EAAE,oBAAS,CAAC,WAAW;SACnC,CAAC,CAAA;QAEF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAc,EAAE,QAAe,EAAE,OAAkB;QACrF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,IAAI,aAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACjI,MAAM,SAAS,GAAG,IAAI,cAAK,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAEtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC/E,MAAM,cAAc,GAAG,cAAK,CAAC,oBAAoB,CAAC;YAC9C,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,yBAAc,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC;YACjE,YAAY,EAAE,yBAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,SAAS,EAAE,oBAAS,CAAC,WAAW;SACnC,CAAC,CAAA;QAEF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA;IAC5C,CAAC;IAED,YAAY,CACR,KAA2C,EAC3C,UAAkB,EAClB,aAAqB,EACrB,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,KAAK;QAElB,MAAM,OAAO,GAAG;YACZ,iBAAiB,EAAE,IAAI,kBAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;YACpD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;YAC3B,SAAS,EAAE,aAAa;SAC3B,CAAA;QAED,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzE,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,KAAK;SACf,CAAA;IACL,CAAC;CACJ;AAED,MAAM,IAAI,GAAG;IACT,MAAM,EAAE,kBAAS,CAAC,MAAM;IACxB,GAAG,EAAE,kBAAS,CAAC,GAAG;IAClB,MAAM,EAAE,kBAAS,CAAC,MAAM;IACxB,IAAI,EAAE,kBAAS,CAAC,IAAI;CACvB,CAAA;AAqBM,KAAK,UAAU,QAAQ,CAAC,MAAoB,EAAE,YAA4B,EAAE,UAA2B,EAAE,OAAe;IAC3H,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,YAAY,CAAA;IAE/D,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAE9B,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;IACrE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;IAEvE,MAAM,OAAO,GAAG,IAAI,gBAAK,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,IAAI,gBAAK,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IAErE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1G,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;IACnG,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;AAC7C,CAAC;AAhBD,4BAgBC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAoB,EAAE,YAA4B,EAAE,UAA2B,EAAE,OAAe;IAC7H,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAA;IAExC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;IAE3E,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/E,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/D,IAAI,UAAU,CAAA;IACd,IAAI,QAAQ,KAAK,eAAe,EAAE;QAC9B,UAAU,GAAG,oCAA2B,CAAC,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,EAAE;YAC9F,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;YACvD,CAAC;YACD,CAAC,cAAc,EAAE,eAAe,CAAC;YACjC,SAAS;YACT,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,6BAA6B;SACpD,CAAC,CAAA;QACF,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAA;KACvH;SAAM;QACH,UAAU,GAAG,oCAA2B,CAAC,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,EAAE;YACjG,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;YACvD,CAAC;YACD,CAAC,cAAc,EAAE,eAAe,CAAC;YACjC,SAAS;YACT,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,6BAA6B;SACpD,CAAC,CAAA;QACF,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAA;KACvH;AACL,CAAC;AA5BD,gCA4BC;AAED,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,WAAgB,EAAE,UAAsB,UAAkB,CAAC,eAAe;IAClI,MAAM,KAAK,GAAG,MAAM,YAAK,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;IACjG,OAAO,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAA;AAChG,CAAC;AAJD,8CAIC"}
@@ -0,0 +1 @@
1
+ export declare const isBytes32: (input: string) => boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBytes32 = void 0;
4
+ const viem_1 = require("viem");
5
+ const common_1 = require("../common");
6
+ const isBytes32 = (input) => {
7
+ if (!(0, viem_1.isHex)(input)) {
8
+ return false;
9
+ }
10
+ return input.length === common_1.BYTES32_LENGTH;
11
+ };
12
+ exports.isBytes32 = isBytes32;
13
+ //# sourceMappingURL=TypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeUtils.js","sourceRoot":"","sources":["../../../src/utils/TypeUtils.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,sCAA0C;AAEnC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IAChD,IAAI,CAAC,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE;QACf,OAAO,KAAK,CAAA;KACf;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,uBAAc,CAAA;AAC1C,CAAC,CAAA;AALY,QAAA,SAAS,aAKrB"}
@@ -0,0 +1,12 @@
1
+ import { Hex } from "viem";
2
+ import { Chain, UserOperation } from "../data";
3
+ export declare const calcPreVerificationGas: (userOp: UserOperation) => bigint;
4
+ export declare const getPromiseFromOp: (op: UserOperation) => Promise<any>;
5
+ export declare function gasCalculation(txid: string, chain: Chain): Promise<{
6
+ gasUsed: string;
7
+ opFee: string;
8
+ opFeeUSD: string;
9
+ }>;
10
+ export declare const stringify: (object: any) => string;
11
+ export declare const objectify: (op: any) => any;
12
+ export declare function getOpHash(chain: Chain, userOp: UserOperation): Promise<Hex>;