@pufferfinance/puffer-sdk 1.13.1 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/api/puffer-client-helpers.cjs.map +1 -1
  2. package/dist/api/puffer-client-helpers.js.map +1 -1
  3. package/dist/ccip-C0xwQhXU.cjs.map +1 -1
  4. package/dist/ccip-K-z2PL4P.js.map +1 -1
  5. package/dist/constants-BcPRVxdH.cjs.map +1 -1
  6. package/dist/constants-CH7Tz5jz.js.map +1 -1
  7. package/dist/contracts/abis/l1-reward-manager-abis.d.ts +1 -527
  8. package/dist/contracts/abis/l2-reward-manager-abis.d.ts +1 -1416
  9. package/dist/contracts/abis/nucleus-accountant-abis.d.ts +1 -2
  10. package/dist/contracts/abis/nucleus-atomic-queue-abis.d.ts +1 -2
  11. package/dist/contracts/abis/nucleus-boring-vault-abis.d.ts +1 -2
  12. package/dist/contracts/abis/nucleus-teller-abis.d.ts +1 -2
  13. package/dist/contracts/abis/puf-locker-abis.d.ts +1 -484
  14. package/dist/contracts/abis/puffer-depositor-abis.d.ts +4 -665
  15. package/dist/contracts/abis/puffer-vault-abis.d.ts +2 -4
  16. package/dist/contracts/abis/puffer-withdrawal-manager-abis.d.ts +1 -514
  17. package/dist/contracts/addresses.d.ts +15 -6
  18. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
  19. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
  20. package/dist/contracts/vaults-addresses.d.ts +4 -5
  21. package/dist/createWalletClient-DNLhBkOd.js.map +1 -1
  22. package/dist/createWalletClient-Di5of07E.cjs.map +1 -1
  23. package/dist/getContract-6ajhFbP2.js.map +1 -1
  24. package/dist/getContract-ChPFzc5y.cjs.map +1 -1
  25. package/dist/utils/version.cjs +1 -1
  26. package/dist/utils/version.js +1 -1
  27. package/dist/writeContract-BatuNuTe.cjs.map +1 -1
  28. package/dist/writeContract-CjcOEtWX.js.map +1 -1
  29. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"getContract-6ajhFbP2.js","sources":["../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/actions/getContract.js"],"sourcesContent":["import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map"],"names":["getContract","abi","address","client_","client","publicClient","walletClient","hasPublicClient","hasWalletClient","contract","hasReadFunction","hasWriteFunction","hasEvent","item","_","functionName","parameters","args","options","getFunctionParameters","getAction","readContract","simulateContract","eventName","abiEvent","x","getEventParameters","createContractEventFilter","getContractEvents","watchContractEvent","writeContract","estimateContractGas","values","hasArgs"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"getContract-6ajhFbP2.js","sources":["../node_modules/.pnpm/viem@2.23.6_typescript@5.7.3_zod@3.24.2/node_modules/viem/_esm/actions/getContract.js"],"sourcesContent":["import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map"],"names":["getContract","abi","address","client_","client","publicClient","walletClient","hasPublicClient","hasWalletClient","contract","hasReadFunction","hasWriteFunction","hasEvent","item","_","functionName","parameters","args","options","getFunctionParameters","getAction","readContract","simulateContract","eventName","abiEvent","x","getEventParameters","createContractEventFilter","getContractEvents","watchContractEvent","writeContract","estimateContractGas","values","hasArgs"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"getContract-ChPFzc5y.cjs","sources":["../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/actions/getContract.js"],"sourcesContent":["import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map"],"names":["getContract","abi","address","client_","client","publicClient","walletClient","hasPublicClient","hasWalletClient","contract","hasReadFunction","hasWriteFunction","hasEvent","item","_","functionName","parameters","args","options","getFunctionParameters","getAction","readContract","simulateContract","eventName","abiEvent","x","getEventParameters","createContractEventFilter","getContractEvents","watchContractEvent","writeContract","estimateContractGas","values","hasArgs"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"getContract-ChPFzc5y.cjs","sources":["../node_modules/.pnpm/viem@2.23.6_typescript@5.7.3_zod@3.24.2/node_modules/viem/_esm/actions/getContract.js"],"sourcesContent":["import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map"],"names":["getContract","abi","address","client_","client","publicClient","walletClient","hasPublicClient","hasWalletClient","contract","hasReadFunction","hasWriteFunction","hasEvent","item","_","functionName","parameters","args","options","getFunctionParameters","getAction","readContract","simulateContract","eventName","abiEvent","x","getEventParameters","createContractEventFilter","getContractEvents","watchContractEvent","writeContract","estimateContractGas","values","hasArgs"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="1.13.0",o=e;exports.version=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="1.13.1",o=e;exports.version=o;
2
2
  //# sourceMappingURL=version.cjs.map
@@ -1,4 +1,4 @@
1
- const o = "1.13.0", n = o;
1
+ const o = "1.13.1", n = o;
2
2
  export {
3
3
  n as version
4
4
  };