diff --git a/apps/local b/apps/local deleted file mode 160000 index a4b70ab8..00000000 --- a/apps/local +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a4b70ab823dc305df2fcf928d9155f923e13056f diff --git a/bun.lockb b/bun.lockb index d72426dc..f41f8dfb 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/contracts/solidity b/contracts/solidity index 318e5f19..38d94911 160000 --- a/contracts/solidity +++ b/contracts/solidity @@ -1 +1 @@ -Subproject commit 318e5f19eda4e9d1616a9c3d975a84c5dfd768cf +Subproject commit 38d9491121b8f512da5578b80ef34e6b543b0470 diff --git a/package.json b/package.json index 53564ca6..3e77b1a9 100644 --- a/package.json +++ b/package.json @@ -1,131 +1,137 @@ { - "name": "@pwndao-sdk/source", - "version": "0.0.0", - "license": "MIT", - "private": true, - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/preset-classic": "3.4.0", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.14.0", - "@mdx-js/react": "^3.0.0", - "@tanstack/query-core": "^5.67.3", - "@tanstack/react-query": "^5.67.3", - "@vue/theme": "^1.3.0", - "ajv": "^8.17.1", - "clsx": "^2.0.0", - "next": "^15.3.0-canary.1", - "nock": "^14.0.1", - "prism-react-renderer": "^2.3.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "reka-ui": "^2.1.0", - "ts-invariant": "^0.10.3", - "viem": "^2.29.2", - "vue": "3.5.13", - "vue-router": "4.5.0" - }, - "devDependencies": { - "@ahryman40k/nx-vitepress": "^15.1.1", - "@babel/core": "^7.14.5", - "@babel/preset-react": "^7.14.5", - "@biomejs/biome": "^1.9.4", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/tsconfig": "3.4.0", - "@docusaurus/types": "3.4.0", - "@faker-js/faker": "^9.5.0", - "@gitopslovers/nx-biome": "^1.5.0", - "@nrwl/devkit": "^19.8.4", - "@nx-extend/docusaurus": "^3.1.1", - "@nx/devkit": "20.8.0-beta.0", - "@nx/eslint": "20.8.0-beta.0", - "@nx/eslint-plugin": "20.8.0-beta.0", - "@nx/js": "20.8.0-beta.0", - "@nx/next": "20.8.0-beta.0", - "@nx/playwright": "20.8.0-beta.0", - "@nx/react": "20.8.0-beta.0", - "@nx/vite": "20.8.0-beta.0", - "@nx/vue": "20.8.0-beta.0", - "@nx/web": "20.8.0-beta.0", - "@playwright/test": "^1.36.0", - "@swc-node/register": "~1.9.1", - "@swc/cli": "0.6.0", - "@swc/core": "~1.5.7", - "@swc/helpers": "~0.5.11", - "@testing-library/react": "16.1.0", - "@types/node": "18.16.9", - "@types/react": "^19.0.1", - "@types/react-dom": "^19.0.2", - "@vitejs/plugin-react": "^4.2.0", - "@vitejs/plugin-vue": "5.2.3", - "@vitest/coverage-v8": "^1.0.4", - "@vitest/ui": "^1.3.1", - "@vue/test-utils": "^2.4.1", - "@wagmi/cli": "^2.2.0", - "eslint": "9.14.0", - "eslint-config-next": "15.3.0", - "eslint-config-prettier": "10.1.2", - "eslint-plugin-import": "2.31.0", - "eslint-plugin-jsx-a11y": "6.10.1", - "eslint-plugin-playwright": "^1.6.2", - "eslint-plugin-react": "7.35.0", - "eslint-plugin-react-hooks": "5.0.0", - "eslint-plugin-vitest": "^0.5.4", - "husky": "^9.1.7", - "jiti": "2.4.2", - "jsdoc-to-markdown": "^9.1.1", - "jsdom": "~22.1.0", - "less": "3.12.2", - "nx": "20.8.0-beta.0", - "pino-pretty": "^13.0.0", - "prettier": "^2.6.2", - "tslib": "^2.3.0", - "typescript": "<=5.6.0", - "typescript-eslint": "^8.19.0", - "verdaccio": "6.0.5", - "vite": "^6.2.3", - "vite-plugin-dts": "4.5.3", - "vite-svg-loader": "^5.1.0", - "vitepress": "^1.6.3", - "vitest": "^1.3.1", - "vue-tsc": "2.2.8" - }, - "workspaces": [ - "packages/*", - "apps/example-next", - "apps/example-next-e2e", - "apps/example-vue", - "apps/example-vue-e2e", - "sdk-docs" - ], - "nx": { - "includedScripts": [], - "targets": { - "local-registry": { - "executor": "@nx/js:verdaccio", - "options": { - "port": 4873, - "config": ".verdaccio/config.yml", - "storage": "tmp/local-registry/storage" - } - }, - "biome-lint": { - "executor": "@gitopslovers/nx-biome:biome-lint", - "outputs": ["{options.outputFile}"], - "options": { - "lintFilePatterns": ["**/*.ts"], - "write": true, - "unsafe": false - } - } - } - }, - "packageManager": "yarn@3.2.3+sha224.953c8233f7a92884eee2de69a1b92d1f2ec1655e66d08071ba9a02fa", - "scripts": { - "prepare": "husky" - }, - "engines": { - "node": ">=23.10.0", - "bun": ">=1.0.0" - } -} + "name":"@pwndao-sdk/source", + "version":"0.0.0", + "license":"MIT", + "private":true, + "dependencies":{ + "@docusaurus/core":"3.4.0", + "@docusaurus/preset-classic":"3.4.0", + "@eslint/eslintrc":"^3.3.0", + "@eslint/js":"^9.14.0", + "@mdx-js/react":"^3.0.0", + "@tanstack/query-core":"^5.67.3", + "@tanstack/react-query":"^5.67.3", + "@vue/theme":"^1.3.0", + "ajv":"^8.17.1", + "clsx":"^2.0.0", + "next":"^15.3.0-canary.1", + "nock":"^14.0.1", + "prism-react-renderer":"^2.3.0", + "react":"^19.0.0", + "react-dom":"^19.0.0", + "reka-ui":"^2.1.0", + "ts-invariant":"^0.10.3", + "viem":"^2.29.2", + "vue":"3.5.13", + "vue-router":"4.5.0" + }, + "devDependencies":{ + "@ahryman40k/nx-vitepress":"^15.1.1", + "@babel/core":"^7.14.5", + "@babel/preset-react":"^7.14.5", + "@biomejs/biome":"^1.9.4", + "@docusaurus/module-type-aliases":"3.4.0", + "@docusaurus/tsconfig":"3.4.0", + "@docusaurus/types":"3.4.0", + "@faker-js/faker":"^9.5.0", + "@gitopslovers/nx-biome":"^1.5.0", + "@nrwl/devkit":"^19.8.4", + "@nx-extend/docusaurus":"^3.1.1", + "@nx/devkit":"20.8.0-beta.0", + "@nx/eslint":"20.8.0-beta.0", + "@nx/eslint-plugin":"20.8.0-beta.0", + "@nx/js":"20.8.0-beta.0", + "@nx/next":"20.8.0-beta.0", + "@nx/playwright":"20.8.0-beta.0", + "@nx/react":"20.8.0-beta.0", + "@nx/vite":"20.8.0-beta.0", + "@nx/vue":"20.8.0-beta.0", + "@nx/web":"20.8.0-beta.0", + "@playwright/test":"^1.36.0", + "@swc-node/register":"~1.9.1", + "@swc/cli":"0.6.0", + "@swc/core":"~1.5.7", + "@swc/helpers":"~0.5.11", + "@testing-library/react":"16.1.0", + "@types/node":"18.16.9", + "@types/react":"^19.0.1", + "@types/react-dom":"^19.0.2", + "@vitejs/plugin-react":"^4.2.0", + "@vitejs/plugin-vue":"5.2.3", + "@vitest/coverage-v8":"^1.0.4", + "@vitest/ui":"^1.3.1", + "@vue/test-utils":"^2.4.1", + "@wagmi/cli":"^2.2.0", + "eslint":"9.14.0", + "eslint-config-next":"15.3.0", + "eslint-config-prettier":"10.1.2", + "eslint-plugin-import":"2.31.0", + "eslint-plugin-jsx-a11y":"6.10.1", + "eslint-plugin-playwright":"^1.6.2", + "eslint-plugin-react":"7.35.0", + "eslint-plugin-react-hooks":"5.0.0", + "eslint-plugin-vitest":"^0.5.4", + "husky":"^9.1.7", + "jiti":"2.4.2", + "jsdoc-to-markdown":"^9.1.1", + "jsdom":"~22.1.0", + "less":"3.12.2", + "nx":"20.8.0-beta.0", + "pino-pretty":"^13.0.0", + "prettier":"^2.6.2", + "tslib":"^2.3.0", + "typescript":"<=5.6.0", + "typescript-eslint":"^8.19.0", + "verdaccio":"6.0.5", + "vite":"^6.2.3", + "vite-plugin-dts":"4.5.3", + "vite-svg-loader":"^5.1.0", + "vitepress":"^1.6.3", + "vitest":"^1.3.1", + "vue-tsc":"2.2.8" + }, + "workspaces":[ + "packages/*", + "apps/example-next", + "apps/example-next-e2e", + "apps/example-vue", + "apps/example-vue-e2e", + "sdk-docs" + ], + "nx":{ + "includedScripts":[ + + ], + "targets":{ + "local-registry":{ + "executor":"@nx/js:verdaccio", + "options":{ + "port":4873, + "config":".verdaccio/config.yml", + "storage":"tmp/local-registry/storage" + } + }, + "biome-lint":{ + "executor":"@gitopslovers/nx-biome:biome-lint", + "outputs":[ + "{options.outputFile}" + ], + "options":{ + "lintFilePatterns":[ + "**/*.ts" + ], + "write":true, + "unsafe":false + } + } + } + }, + "packageManager":"yarn@3.2.3+sha224.953c8233f7a92884eee2de69a1b92d1f2ec1655e66d08071ba9a02fa", + "scripts":{ + "prepare":"husky" + }, + "engines":{ + "node":">=23.10.0", + "bun":">=1.0.0" + } +} \ No newline at end of file diff --git a/packages/core/src/addresses.test.ts b/packages/core/src/addresses.test.ts index d7874a7e..a44b806f 100644 --- a/packages/core/src/addresses.test.ts +++ b/packages/core/src/addresses.test.ts @@ -40,8 +40,13 @@ describe("Addresses", () => { [SupportedChain.UnichainSepolia, "0x1381F509f56f2aaA0faBD3012455901eA53F0BbD"], // note: no starknet version of tokenBundlerContract ])("should resolve correct bundler address for %s", (chain, expected) => { + if ( + !("tokenBundlerContract" in CHAIN_TO_ADDRESSES_MAP[chain]) // dont test if there's no tokenBundlerContract (considering V1.4) + ) { + return; + } expect( - CHAIN_TO_ADDRESSES_MAP[chain as V1_3_SUPPORTED_CHAINS] + (CHAIN_TO_ADDRESSES_MAP[chain as V1_3_SUPPORTED_CHAINS] as any) // hack, because V1_4Contracts doesnt have tokenBundlerContract, resulting in type error ?.tokenBundlerContract, ).toEqual(expected); }); diff --git a/packages/core/src/addresses.ts b/packages/core/src/addresses.ts index 5fc78829..b0520777 100644 --- a/packages/core/src/addresses.ts +++ b/packages/core/src/addresses.ts @@ -1,5 +1,5 @@ import { SupportedChain } from "./chains.js"; -import type { V1_2_SUPPORTED_CHAINS, V1_3_SUPPORTED_CHAINS } from "./chains.js"; +import type { V1_2_SUPPORTED_CHAINS, V1_3_SUPPORTED_CHAINS, V1_4_SUPPORTED_CHAINS } from "./chains.js"; import { ZERO_ADDRESS } from "./constants.js"; import type { AddressString } from "./types.js"; @@ -23,6 +23,11 @@ export type V1_3_Contracts = ContractAddresses & { utilizedCredit: AddressString; }; +type V1_4_Contracts = Omit & { + pwnSimpleLoanUniswapV3LpSetProposal: AddressString; + pwnSimpleLoanUniswapV3IndividualProposal: AddressString; +}; + // starknet has no tokenBundlerContract by now export type V1_2_StarknetContracts = Omit< ContractAddresses, @@ -67,6 +72,13 @@ export const PWN_V1_3_CONTRACTS: Omit = { + ...PWN_V1_3_CONTRACTS, + pwnSimpleLoanUniswapV3LpSetProposal: "0x4D067c921AC90cC4b1e962ea0e743Ef8d85Fb0E9", + pwnSimpleLoanElasticChainlinkProposal: "0x39fd308D651F5add5A4826D12Bf92d9D91E732AC", + pwnSimpleLoanUniswapV3IndividualProposal: "0xF966696BE0623447679AC830FC5bB7bDB15FEAB4", +}; + // Mainnet contracts const MAINNET_CONTRACTS: V1_3_Contracts = { ...PWN_V1_3_CONTRACTS, @@ -205,7 +217,15 @@ export const V1_3_CHAIN_TO_ADDRESSES_MAP: Record< [SupportedChain.UnichainSepolia]: UNICHAIN_SEPOLIA_CONTRACTS, }; +export const V1_4_CHAIN_TO_ADDRESSES_MAP: Record< + V1_4_SUPPORTED_CHAINS, + V1_4_Contracts +> = { + [SupportedChain.Sepolia]: PWN_V1_4_CONTRACTS, +}; + export const CHAIN_TO_ADDRESSES_MAP = { ...V1_2_CHAIN_TO_ADDRESSES_MAP, ...V1_3_CHAIN_TO_ADDRESSES_MAP, + ...V1_4_CHAIN_TO_ADDRESSES_MAP, }; diff --git a/packages/core/src/chains.ts b/packages/core/src/chains.ts index 6352bf22..e4029162 100644 --- a/packages/core/src/chains.ts +++ b/packages/core/src/chains.ts @@ -39,3 +39,5 @@ export type V1_3_SUPPORTED_CHAINS = Exclude< SupportedChain, V1_2_SUPPORTED_CHAINS >; + +export type V1_4_SUPPORTED_CHAINS = SupportedChain.Sepolia; diff --git a/packages/core/src/models/asset.ts b/packages/core/src/models/asset.ts index ba8b8128..c58fe019 100644 --- a/packages/core/src/models/asset.ts +++ b/packages/core/src/models/asset.ts @@ -8,6 +8,7 @@ export enum MultiTokenCategory { NATIVE = 3, ERC721_COLLECTION = 420, ERC1155_COLLECTION = 421, + UNISWAP_V3_LP = 666, } interface IBaseAsset { diff --git a/packages/core/src/models/index.ts b/packages/core/src/models/index.ts index 7a6c078f..c2c7dedc 100644 --- a/packages/core/src/models/index.ts +++ b/packages/core/src/models/index.ts @@ -4,3 +4,4 @@ export * from "./token.js"; export * from "./user.js"; export * from "./types.js"; export * from "./nft.js"; +export * from "./liquidity-position.js"; \ No newline at end of file diff --git a/packages/core/src/models/liquidity-position.ts b/packages/core/src/models/liquidity-position.ts new file mode 100644 index 00000000..d6e99fbe --- /dev/null +++ b/packages/core/src/models/liquidity-position.ts @@ -0,0 +1,25 @@ +import type { AddressString } from "src/types.js"; +import { BaseAsset, MultiTokenCategory } from "./asset.js"; +import type { SupportedChain } from "../chains.js"; + +export class UniswapV3Position extends BaseAsset { + static category = MultiTokenCategory.UNISWAP_V3_LP; + + tokenA: AddressString; + tokenB: AddressString; + tokenId: string; + + constructor( + chainId: SupportedChain, + address: AddressString, + tokenA: AddressString, + tokenB: AddressString, + tokenId: string, + icon?: string, + ) { + super(chainId, address, 0, false, UniswapV3Position.category, "Uniswap V3 Positions NFT-V1", "UNI-V3-POS", icon); + this.tokenA = tokenA; + this.tokenB = tokenB; + this.tokenId = tokenId; + } +} \ No newline at end of file diff --git a/packages/core/src/models/types.ts b/packages/core/src/models/types.ts index 6aae30be..2445284e 100644 --- a/packages/core/src/models/types.ts +++ b/packages/core/src/models/types.ts @@ -1,9 +1,10 @@ import type { FungibleNFT, NFT } from "./nft.js"; import type { ERC20Token } from "./token.js"; import { PoolToken } from "./pool-token.js"; +import type { UniswapV3Position } from "./liquidity-position.js"; import type { SupportedChain } from "../chains.js"; -export type Token = ERC20Token | NFT | FungibleNFT; +export type Token = ERC20Token | NFT | FungibleNFT | UniswapV3Position; export type ERC20TokenLike = ERC20Token | PoolToken; export type UniqueKey = `${ERC20TokenLike['address']}/${SupportedChain}`; diff --git a/packages/core/src/test-utils/index.ts b/packages/core/src/test-utils/index.ts index e7de1539..460198c5 100644 --- a/packages/core/src/test-utils/index.ts +++ b/packages/core/src/test-utils/index.ts @@ -5,6 +5,7 @@ import { User, UserWithNonceManager } from "../models/user.js"; import type { AddressString } from "../types.js"; import { PoolToken } from "../models/pool-token.js"; import type { SupportedProtocol } from "../models/pool-token.js"; +import { UniswapV3Position } from "../models/liquidity-position.js"; export const generateAddress = () => { return faker.finance.ethereumAddress() as AddressString; @@ -69,4 +70,14 @@ export const getMockPoolToken = ( ) => { const defaultAddress = address ?? generateAddress(); return new PoolToken(chain, defaultAddress, underlyingAddress, decimals, protocol, name, symbol); +}; + +export const getMockLiquidityPoolToken = ( + chain: SupportedChain, + tokenA: AddressString, + tokenB: AddressString, + tokenId: string, + tokenAddress: AddressString, +) => { + return new UniswapV3Position(chain, tokenAddress, tokenA, tokenB, tokenId); }; \ No newline at end of file diff --git a/packages/core/src/utils.ts b/packages/core/src/utils.ts index 152b19f0..8ab1acf0 100644 --- a/packages/core/src/utils.ts +++ b/packages/core/src/utils.ts @@ -42,6 +42,26 @@ export const getChainLinkProposalContractAddress = ( return CHAIN_TO_ADDRESSES_MAP[chainId].pwnSimpleLoanElasticChainlinkProposal; }; +export const getUniswapV3LpSetProposalContractAddress = ( + chainId: SupportedChain, +) => { + if (chainId === SupportedChain.Sepolia) { + return CHAIN_TO_ADDRESSES_MAP[chainId].pwnSimpleLoanUniswapV3LpSetProposal; + } + + throw new Error(`UniswapV3LpSetProposalContractAddress not deployed on chain ${chainId}`); +}; + +export const getUniswapV3IndividualProposalContractAddress = ( + chainId: SupportedChain, +) => { + if (chainId === SupportedChain.Sepolia) { + return CHAIN_TO_ADDRESSES_MAP[chainId].pwnSimpleLoanUniswapV3IndividualProposal; + } + + throw new Error(`UniswapV3IndividualProposalContractAddress not deployed on chain ${chainId}`); +}; + export const typeSafeObjectKeys = (obj: T) => { return Object.keys(obj) as Array } diff --git a/packages/v1-core/src/actions/make-proposal.test.ts b/packages/v1-core/src/actions/make-proposal.test.ts index a48a07ab..56927c77 100644 --- a/packages/v1-core/src/actions/make-proposal.test.ts +++ b/packages/v1-core/src/actions/make-proposal.test.ts @@ -5,6 +5,7 @@ import { ZERO_ADDRESS, ZERO_FINGERPRINT, getLoanContractAddress, + getMockLiquidityPoolToken, getUniqueCreditCollateralKey, } from "@pwndao/sdk-core"; import { @@ -260,6 +261,196 @@ describe("Test make proposal", () => { expect(proposal.relatedStrategyId).toBe("1"); }); + it("should assemble uniswap v3 lp set proposal", async () => { + const contractMock = { + createProposal: vi.fn().mockImplementation((p) => p), + getCollateralAmount: vi.fn().mockImplementation(() => 0n), + createOnChainProposal: vi.fn().mockImplementation((p) => p), + getProposalHash: vi.fn().mockImplementation(() => "0x123"), + getCreditAmount: vi.fn().mockImplementation(() => 0n), + createMultiProposal: vi.fn().mockImplementation((p) => p), + }; + + const loanContractMock = { + getLenderSpecHash: vi + .fn() + .mockImplementation(() => Promise.resolve(proposerSpecHash)), + }; + + const sepoliaAssetsWithPriceFeeds = { + weth: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9" as AddressString, + usdc: "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8" as AddressString, + } + + const lpTokenAddress = "0x1238536071E1c677A632429e3655c799b22cDA52" + + const user = getMockUserWithNonceManager(user_address, [SupportedChain.Sepolia]); + + expect(user.nonces[SupportedChain.Sepolia]?.[0]).toBe(0n); + + const proposal = await makeProposal( + user, + ProposalType.UniswapV3LpSet, + { + collateral: getMockLiquidityPoolToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.weth, sepoliaAssetsWithPriceFeeds.usdc, "1", lpTokenAddress), + credit: getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc), + creditAmount, + ltv: { + [getUniqueCreditCollateralKey( + getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc), + getMockToken(SupportedChain.Sepolia, lpTokenAddress), + )]: Number(ltv), + }, + apr: { + [getUniqueCreditCollateralKey( + getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc), + getMockToken(SupportedChain.Sepolia, lpTokenAddress), + )]: apr, + }, + duration: { + days: durationDays, + date: undefined, + }, + expirationDays, + utilizedCreditId: generateAddress(), + isOffer: true, + sourceOfFunds: user_address, + tokenAAllowlist: [sepoliaAssetsWithPriceFeeds.weth, sepoliaAssetsWithPriceFeeds.usdc], + tokenBAllowlist: [sepoliaAssetsWithPriceFeeds.weth, sepoliaAssetsWithPriceFeeds.usdc], + acceptorController: user_address, + acceptorControllerData: "0x", + minCreditAmountPercentage: 3, + }, + { + api: { + persistProposal: vi.fn().mockImplementation((p) => p), + persistProposals: vi.fn().mockImplementation((p) => p), + updateNonces: vi.fn().mockImplementation((p) => p), + }, + contract: contractMock, + loanContract: loanContractMock, + }, + ); + + expect(contractMock.createOnChainProposal).toHaveBeenCalled(); + + expect(proposal).toBeDefined(); + expect(proposal.proposerSpecHash).toBe(proposerSpecHash); + expect(proposal.collateralAddress).toBe(lpTokenAddress); + expect(proposal.creditAddress).toBe(sepoliaAssetsWithPriceFeeds.usdc); + expect(proposal.availableCreditLimit).toBe(1n * 10n ** 18n); + expect(proposal.minCreditAmount).toBe(3n * 10n ** (18n - 2n)); // 3% of credit amount + expect(proposal.accruingInterestAPR).toBe(apr); + + const expectedExpiration = + Math.floor(date.getTime() / 1000) + expirationDays * 24 * 60 * 60; + expect(proposal.expiration).toBe(expectedExpiration); + expect(expectedExpiration).toBe(1740960000); + + expect(proposal.durationOrDate).toBe(durationDays * 24 * 60 * 60); + expect(proposal.isOffer).toBe(true); + expect(proposal.refinancingLoanId).toBe(0n); + expect(proposal.nonceSpace).toBe(0n); + expect(proposal.nonce).toBe(0n); + expect(proposal.loanContract).toBe( + getLoanContractAddress(SupportedChain.Sepolia), + ); + }); + + it("should assemble uniswap v3 lp individual proposal", async () => { + const contractMock = { + createProposal: vi.fn().mockImplementation((p) => p), + createOnChainProposal: vi.fn().mockImplementation((p) => p), + getProposalHash: vi.fn().mockImplementation(() => "0x123"), + getCreditAmount: vi.fn().mockImplementation(() => 2000n*10n**6n), + createMultiProposal: vi.fn().mockImplementation((p) => p), + } + + const loanContractMock = { + getLenderSpecHash: vi + .fn() + .mockImplementation(() => Promise.resolve(proposerSpecHash)), + }; + + const sepoliaAssetsWithPriceFeeds = { + weth: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9" as AddressString, + usdc: "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8" as AddressString, + } + + const lpTokenAddress = "0x1238536071E1c677A632429e3655c799b22cDA52" + + const user = getMockUserWithNonceManager(user_address, [SupportedChain.Sepolia]); + + expect(user.nonces[SupportedChain.Sepolia]?.[0]).toBe(0n); + + const collateral = getMockLiquidityPoolToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.weth, sepoliaAssetsWithPriceFeeds.usdc, "1", lpTokenAddress); + const credit = getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc); + + + const proposal = await makeProposal( + user, + ProposalType.UniswapV3Individual, + { + collateral, + credit, + creditAmount, + ltv: { + [getUniqueCreditCollateralKey( + getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc), + getMockToken(SupportedChain.Sepolia, lpTokenAddress), + )]: Number(ltv), + }, + apr: { + [getUniqueCreditCollateralKey( + getMockToken(SupportedChain.Sepolia, sepoliaAssetsWithPriceFeeds.usdc), + getMockToken(SupportedChain.Sepolia, lpTokenAddress), + )]: apr, + }, + duration: { + days: durationDays, + date: undefined, + }, + expirationDays, + utilizedCreditId: generateAddress(), + isOffer: false, + sourceOfFunds: user_address, + minCreditAmountPercentage: 3, + collateralId: "1", + token0Denominator: true, + acceptorController: ZERO_ADDRESS, + acceptorControllerData: ZERO_ADDRESS, + minCreditAmount: 0n, + }, + { + api: { + persistProposal: vi.fn().mockImplementation((p) => p), + persistProposals: vi.fn().mockImplementation((p) => p), + updateNonces: vi.fn().mockImplementation((p) => p), + }, + contract: contractMock, + loanContract: loanContractMock, + }, + ); + + expect(contractMock.createOnChainProposal).toHaveBeenCalled(); + expect(proposal).toBeDefined(); + expect(proposal.proposerSpecHash).toBe(proposerSpecHash); + expect(proposal.collateralAddress).toBe(lpTokenAddress); + expect(proposal.creditAddress).toBe(sepoliaAssetsWithPriceFeeds.usdc); + expect(proposal.availableCreditLimit).toBe(2000n*10n**6n); + expect(proposal.minCreditAmount).toBe(60n*10n**6n); + expect(proposal.accruingInterestAPR).toBe(apr); + expect(proposal.durationOrDate).toBe(durationDays * 24 * 60 * 60); + expect(proposal.isOffer).toBe(false); + expect(proposal.refinancingLoanId).toBe(0n); + expect(proposal.nonceSpace).toBe(0n); + expect(proposal.nonce).toBe(0n); + expect(proposal.loanContract).toBe( + getLoanContractAddress(SupportedChain.Sepolia), + ); + expect(proposal.collateralId).toBe(1n); + }); + it("should assemble elastic proposal with token that has underlyingAddress property", async () => { const contractMock = { createProposal: vi.fn().mockImplementation((p) => p), diff --git a/packages/v1-core/src/actions/make-proposal.ts b/packages/v1-core/src/actions/make-proposal.ts index 2dc8d697..1c20b409 100644 --- a/packages/v1-core/src/actions/make-proposal.ts +++ b/packages/v1-core/src/actions/make-proposal.ts @@ -4,12 +4,16 @@ import invariant from "ts-invariant"; import { createChainLinkElasticProposal } from "../factories/create-chain-link-proposal.js"; import { createElasticProposal } from "../factories/create-elastic-proposal.js"; import { ProposalType } from "../models/proposals/proposal-base.js"; +import { createUniswapV3LpSetProposal } from "../factories/create-uniswap-v3-lp-set-proposal.js"; +import { createUniswapV3LpIndividualProposal } from "../factories/create-uniswap-v3-lp-individual-proposal.js"; type ProposalTypeMap = { [ProposalType.Elastic]: typeof createElasticProposal; [ProposalType.ChainLink]: typeof createChainLinkElasticProposal; [ProposalType.DutchAuction]: () => void; [ProposalType.Simple]: () => void; + [ProposalType.UniswapV3LpSet]: typeof createUniswapV3LpSetProposal; + [ProposalType.UniswapV3Individual]: typeof createUniswapV3LpIndividualProposal; }; const proposalTypes: ProposalTypeMap = { @@ -21,6 +25,8 @@ const proposalTypes: ProposalTypeMap = { [ProposalType.Simple]: () => { throw new Error("Not implemented"); }, + [ProposalType.UniswapV3LpSet]: createUniswapV3LpSetProposal, + [ProposalType.UniswapV3Individual]: createUniswapV3LpIndividualProposal, }; export const makeProposal = async ( @@ -84,6 +90,28 @@ export const makeProposal = async ( ); break; } + case ProposalType.UniswapV3LpSet: { + const uniswapV3LpSetParams = proposalParams as Parameters< + typeof createUniswapV3LpSetProposal + >[0]; + const uniswapV3LpSetDeps = deps as Parameters[1]; + const proposal = await createUniswapV3LpSetProposal(uniswapV3LpSetParams, uniswapV3LpSetDeps, user); + proposalWithSignature = await uniswapV3LpSetDeps.contract.createOnChainProposal( + proposal, + ); + break; + } + case ProposalType.UniswapV3Individual: { + const uniswapV3IndividualParams = proposalParams as Parameters< + typeof createUniswapV3LpIndividualProposal + >[0]; + const uniswapV3IndividualDeps = deps as Parameters[1]; + const proposal = await createUniswapV3LpIndividualProposal(uniswapV3IndividualParams, uniswapV3IndividualDeps, user); + proposalWithSignature = await uniswapV3IndividualDeps.contract.createOnChainProposal( + proposal, + ); + break; + } case ProposalType.DutchAuction: case ProposalType.Simple: throw new Error(`Proposal type ${proposalType} not yet implemented`); diff --git a/packages/v1-core/src/actions/types.ts b/packages/v1-core/src/actions/types.ts index f83c862c..ffba8efc 100644 --- a/packages/v1-core/src/actions/types.ts +++ b/packages/v1-core/src/actions/types.ts @@ -1,7 +1,9 @@ import { ProposalType } from "../models/proposals/proposal-base.js"; import { createElasticProposal } from "../factories/create-elastic-proposal.js"; import { createChainLinkElasticProposal } from "../factories/create-chain-link-proposal.js"; -import type { ProposalWithSignature } from "src/index.js"; +import { createUniswapV3LpSetProposal } from "../factories/create-uniswap-v3-lp-set-proposal.js"; +import { createUniswapV3LpIndividualProposal } from "../factories/create-uniswap-v3-lp-individual-proposal.js"; +import type { ProposalWithSignature } from "../models/strategies/types.js"; import type { AddressString, ERC20TokenLike } from "@pwndao/sdk-core"; export const proposalTypes = { @@ -13,6 +15,8 @@ export const proposalTypes = { [ProposalType.Simple]: () => { throw new Error("Not implemented"); }, + [ProposalType.UniswapV3LpSet]: createUniswapV3LpSetProposal, + [ProposalType.UniswapV3Individual]: createUniswapV3LpIndividualProposal, }; export type ImplementedProposalTypes = keyof typeof proposalTypes; diff --git a/packages/v1-core/src/contracts/index.ts b/packages/v1-core/src/contracts/index.ts index 0beb877e..11c43482 100644 --- a/packages/v1-core/src/contracts/index.ts +++ b/packages/v1-core/src/contracts/index.ts @@ -3,5 +3,7 @@ export * from "./revoked-nonce-contract.js"; export * from "./chain-link-proposal-contract.js"; export * from "./simple-loan-contract.js"; export * from "./base-proposal-contract.js"; - -export * from "./utilts.js"; \ No newline at end of file +export * from "./uniswap-v3-lp-individual-proposal-contract.js"; +export * from "./uniswap-v3-lp-set-proposal-contract.js"; +export * from "./uniswap-v3-pool-contract.js"; +export * from "./utilts.js"; diff --git a/packages/v1-core/src/contracts/uniswap-v3-lp-individual-proposal-contract.ts b/packages/v1-core/src/contracts/uniswap-v3-lp-individual-proposal-contract.ts new file mode 100644 index 00000000..1e2404e5 --- /dev/null +++ b/packages/v1-core/src/contracts/uniswap-v3-lp-individual-proposal-contract.ts @@ -0,0 +1,150 @@ +import { type AddressString, getUniswapV3IndividualProposalContractAddress, type Hex, type SupportedChain } from "@pwndao/sdk-core"; +import type { IProposalContract } from "../factories/helpers.js"; +import { UniswapV3IndividualProposal } from "../models/proposals/uniswap-v3-lp-individual-proposal.js"; +import { BaseProposalContract } from "./base-proposal-contract.js"; +import { type IServerAPI, type ProposalWithHash, type ProposalWithSignature, readPwnSimpleLoanUniswapV3LpIndividualProposalGetCreditAmount, readPwnSimpleLoanUniswapV3LpIndividualProposalGetProposalHash, writePwnSimpleLoanUniswapV3LpIndividualProposalMakeProposal } from "../index.js"; +import { getAccount } from "@wagmi/core"; +import type { Address } from "viem"; +export interface IProposalUniswapV3LpIndividualContract + extends IProposalContract { + getCreditAmount( + creditAddress: AddressString, + collateralId: bigint, + token0Denominator: boolean, + feedIntermediaryDenominations: AddressString[], + feedInvertFlags: boolean[], + loanToValue: bigint, + chainId: SupportedChain + ): Promise; + } + +export class UniswapV3LpIndividualProposalContract + extends BaseProposalContract + implements IProposalUniswapV3LpIndividualContract { + + async getProposalHash(proposal: UniswapV3IndividualProposal): Promise { + const data = await readPwnSimpleLoanUniswapV3LpIndividualProposalGetProposalHash( + this.config, + { + address: getUniswapV3IndividualProposalContractAddress(proposal.chainId), + chainId: proposal.chainId, + args: [proposal.createProposalStruct()], + } + ) + + return data; + } + + async signProposal( + proposal: UniswapV3IndividualProposal, + ): Promise { + const hash = await this.getProposalHash(proposal); + + const domain = { + name: "PWNSimpleLoanUniswapV3LpIndividualProposal", + version: "1.0", + chainId: proposal.chainId, + verifyingContract: getUniswapV3IndividualProposalContractAddress(proposal.chainId), + } + + const signature = await this.signWithSafeWalletSupport( + domain, + UniswapV3IndividualProposal.ERC712_TYPES, + "Proposal", + proposal.createProposalStruct(), + ) + + return Object.assign(proposal, { + signature, + hash, + isOnChain: true, + }) as ProposalWithSignature; + } + + async getCreditAmount( + creditAddress: AddressString, + collateralId: bigint, + token0Denominator: boolean, + feedIntermediaryDenominations: AddressString[], + feedInvertFlags: boolean[], + loanToValue: bigint, + chainId: SupportedChain + ): Promise { + const data = await readPwnSimpleLoanUniswapV3LpIndividualProposalGetCreditAmount( + this.config, + { + address: getUniswapV3IndividualProposalContractAddress(chainId), + chainId, + args: [ + creditAddress, + collateralId, + token0Denominator, + feedIntermediaryDenominations, + feedInvertFlags, + loanToValue + ], + } + ) + + return data; + } + + async createProposal( + proposal: UniswapV3IndividualProposal, + deps: { persistProposal: IServerAPI["post"]["persistProposal"] }, + ): Promise { + console.warn( + "UniswapV3IndividualProposalContract.createProposal is not implemented", + proposal, + deps, + ); + // TODO: Implement actual proposal creation logic. + // This involves signing the proposal (using getProposalHash and signProposal) + // and potentially persisting it via the provided deps.persistProposal. + throw new Error( + "Method UniswapV3IndividualProposalContract.createProposal not implemented.", + ); + } + + async createOnChainProposal( + proposal: UniswapV3IndividualProposal, + ): Promise { + const account = getAccount(this.config); + const isSafe = account?.address + ? await this.safeService.isSafeAddress(account.address as Address) + : false; + + const proposalHash = await writePwnSimpleLoanUniswapV3LpIndividualProposalMakeProposal( + this.config, + { + address: getUniswapV3IndividualProposalContractAddress(proposal.chainId), + chainId: proposal.chainId, + args: [proposal.createProposalStruct()], + } + ) + + if (isSafe) { + await this.safeService.waitForTransaction(proposalHash); + } + + return Object.assign(proposal, { + signature: null, + hash: proposalHash, + isOnChain: true, + }) as ProposalWithSignature; + } + + async createMultiProposal( + proposals: ProposalWithHash[], + ): Promise { + console.warn( + "UniswapV3IndividualProposalContract.createMultiProposal is not implemented", + proposals, + ); + // TODO: Implement actual multi-proposal creation using Merkle tree logic + // See ChainLinkProposalContract for an example implementation. + throw new Error( + "Method UniswapV3IndividualProposalContract.createMultiProposal not implemented.", + ); + } +} \ No newline at end of file diff --git a/packages/v1-core/src/contracts/uniswap-v3-lp-set-proposal-contract.ts b/packages/v1-core/src/contracts/uniswap-v3-lp-set-proposal-contract.ts new file mode 100644 index 00000000..84aa1d00 --- /dev/null +++ b/packages/v1-core/src/contracts/uniswap-v3-lp-set-proposal-contract.ts @@ -0,0 +1,160 @@ +import { UniswapV3LpSetProposal } from '../models/proposals/uniswap-v3-lp-set-proposal.js' +import { BaseProposalContract } from './base-proposal-contract.js' +import { + type IServerAPI, + type ProposalWithHash, + type ProposalWithSignature, + readPwnSimpleLoanUniswapV3LpSetProposalGetCreditAmount, + readPwnSimpleLoanUniswapV3LpSetProposalGetProposalHash, + writePwnSimpleLoanUniswapV3LpSetProposalMakeProposal, + type IProposalContract +} from '../index.js' +import { type AddressString, getUniswapV3LpSetProposalContractAddress, type Hex, type SupportedChain } from '@pwndao/sdk-core'; +import type { Address } from 'viem'; +import { getAccount } from '@wagmi/core'; + +export interface IProposalUniswapV3LpSetContract + extends IProposalContract { + getCreditAmount( + creditAddress: AddressString, + collateralId: bigint, + token0Denominator: boolean, + feedIntermediaryDenominations: AddressString[], + feedInvertFlags: boolean[], + loanToValue: bigint, + chainId: SupportedChain + ): Promise; +} + +export class UniswapV3LpSetProposalContract + extends BaseProposalContract + implements IProposalUniswapV3LpSetContract { + + + async getProposalHash(proposal: UniswapV3LpSetProposal): Promise { + const data = await readPwnSimpleLoanUniswapV3LpSetProposalGetProposalHash( + this.config, + { + address: getUniswapV3LpSetProposalContractAddress(proposal.chainId), + chainId: proposal.chainId, + args: [proposal.createProposalStruct()], + } + ) + + return data; + } + + async signProposal( + proposal: UniswapV3LpSetProposal, + ): Promise { + const hash = await this.getProposalHash(proposal); + + const domain = { + name: "PWNSimpleLoanUniswapV3LpSetProposal", + version: "1.0", + chainId: proposal.chainId, + verifyingContract: getUniswapV3LpSetProposalContractAddress(proposal.chainId), + } + + const signature = await this.signWithSafeWalletSupport( + domain, + UniswapV3LpSetProposal.ERC712_TYPES, + "Proposal", + proposal.createProposalStruct(), + ) + + return Object.assign(proposal, { + signature, + hash, + isOnChain: true, + }) as ProposalWithSignature; + } + + async getCreditAmount( + creditAddress: AddressString, + collateralId: bigint, + token0Denominator: boolean, + feedIntermediaryDenominations: AddressString[], + feedInvertFlags: boolean[], + loanToValue: bigint, + chainId: SupportedChain + ): Promise { + const data = await readPwnSimpleLoanUniswapV3LpSetProposalGetCreditAmount( + this.config, + { + address: getUniswapV3LpSetProposalContractAddress(chainId), + chainId, + args: [ + creditAddress, + collateralId, + token0Denominator, + feedIntermediaryDenominations, + feedInvertFlags, + loanToValue + ], + } + ) + + return data; + } + + async createProposal( + proposal: UniswapV3LpSetProposal, + deps: { persistProposal: IServerAPI["post"]["persistProposal"] }, + ): Promise { + console.warn( + "UniswapV3LpSetProposalContract.createProposal is not implemented", + proposal, + deps, + ); + // TODO: Implement actual proposal creation logic. + // This involves signing the proposal (using getProposalHash and signProposal) + // and potentially persisting it via the provided deps.persistProposal. + // See ChainLinkProposalContract for an example implementation. + throw new Error( + "Method UniswapV3LpSetProposalContract.createProposal not implemented.", + ); + } + + async createOnChainProposal( + proposal: UniswapV3LpSetProposal, + ): Promise { + const account = getAccount(this.config); + const isSafe = account?.address + ? await this.safeService.isSafeAddress(account.address as Address) + : false; + + const proposalHash = await writePwnSimpleLoanUniswapV3LpSetProposalMakeProposal( + this.config, + { + address: getUniswapV3LpSetProposalContractAddress(proposal.chainId), + chainId: proposal.chainId, + args: [proposal.createProposalStruct()], + } + ) + + if (isSafe) { + await this.safeService.waitForTransaction(proposalHash); + } + + return Object.assign(proposal, { + signature: null, + hash: proposalHash, + isOnChain: true, + }) as ProposalWithSignature; + } + + async createMultiProposal( + proposals: ProposalWithHash[], + ): Promise { + console.warn( + "UniswapV3LpSetProposalContract.createMultiProposal is not implemented", + proposals, + ); + // TODO: Implement actual multi-proposal creation using Merkle tree logic + // See ChainLinkProposalContract for an example implementation. + throw new Error( + "Method UniswapV3LpSetProposalContract.createMultiProposal not implemented.", + ); + } +} \ No newline at end of file diff --git a/packages/v1-core/src/contracts/uniswap-v3-pool-contract.test.ts b/packages/v1-core/src/contracts/uniswap-v3-pool-contract.test.ts new file mode 100644 index 00000000..436b4603 --- /dev/null +++ b/packages/v1-core/src/contracts/uniswap-v3-pool-contract.test.ts @@ -0,0 +1,93 @@ +import { vi } from "vitest"; +import { UniswapV3PoolContract } from "./uniswap-v3-pool-contract.js"; +import type { Config, GetPublicClientReturnType, GetWalletClientReturnType } from "@wagmi/core"; +import type { AddressString, SupportedChain } from "@pwndao/sdk-core"; + +vi.mock("@wagmi/core", () => ({ + getPublicClient: vi.fn().mockResolvedValue(true as unknown as GetPublicClientReturnType), + getWalletClient: vi.fn().mockResolvedValue(true as unknown as GetWalletClientReturnType), +})) + +const mockReadContract = vi.fn() +const mockWriteContract = vi.fn() + +const mockPublicClient = { readContract: mockReadContract } +const mockWalletClient = { writeContract: mockWriteContract } + +const config = {} as unknown as Config +const contractAddress = "0x123" as AddressString + +beforeEach(() => { + mockReadContract.mockReset(); + mockWriteContract.mockReset(); +}) + +describe("UniswapV3PoolContract", () => { + it("should return public client", async () => { + const contract = new UniswapV3PoolContract(config, contractAddress) + expect(contract).toBeDefined(); + const client = await contract.getClient(); + expect(client).toBeDefined(); + }) + + it("should return wallet client", async () => { + const contract = new UniswapV3PoolContract(config, contractAddress) + expect(contract).toBeDefined(); + const client = await contract.getWalletClient(); + expect(client).toBeDefined(); + }) + + it("should return slot0", async () => { + mockReadContract.mockResolvedValue([ + 1234n, // sqrtPriceX96 + 5, // tick + 1, // observationIndex + 2, // observationCardinality + 3, // observationCardinalityNext + 0, // feeProtocol + true // unlocked + ]); + + const _contract = new UniswapV3PoolContract(config, contractAddress) + _contract.getClient = vi.fn().mockResolvedValue(mockPublicClient) + const _slot0 = await _contract.slot0(); + + expect(mockReadContract).toHaveBeenCalledWith({ + address: contractAddress, + abi: expect.any(Array), + functionName: "slot0" + }); + + expect(_slot0).toEqual({ + sqrtPriceX96: 1234n, + tick: 5, + observationIndex: 1, + observationCardinality: 2, + observationCardinalityNext: 3, + feeProtocol: 0, + unlocked: true + }); + }) + + it("should increase observation cardinality next", async () => { + const contract = new UniswapV3PoolContract(config, contractAddress) + contract.getWalletClient = vi.fn().mockResolvedValue(mockWalletClient) + await contract.increaseObservationCardinalityNext(10); + expect(mockWriteContract).toHaveBeenCalledWith({ + address: contractAddress, + abi: expect.any(Array), + functionName: "increaseObservationCardinalityNext", + args: [10] + }); + }) + + it("should return can use as collateral", async () => { + const contract = new UniswapV3PoolContract(config, contractAddress) + contract.getClient = vi.fn().mockResolvedValue(mockPublicClient) + contract.slot0 = vi.fn().mockResolvedValue({ + observationCardinality: 2 + }) + const canUseAsCollateral = await contract.canUseAsCollateral(); + expect(canUseAsCollateral).toBe(true); + }) +}) \ No newline at end of file diff --git a/packages/v1-core/src/contracts/uniswap-v3-pool-contract.ts b/packages/v1-core/src/contracts/uniswap-v3-pool-contract.ts new file mode 100644 index 00000000..969f454d --- /dev/null +++ b/packages/v1-core/src/contracts/uniswap-v3-pool-contract.ts @@ -0,0 +1,93 @@ +import type { AddressString, SupportedChain } from "@pwndao/sdk-core"; +import { type Config, getPublicClient, type GetPublicClientReturnType, getWalletClient, type GetWalletClientReturnType } from "@wagmi/core"; +import { parseAbi } from "viem"; + +interface Slot0Response { + sqrtPriceX96: bigint; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; +} + +export interface IUniswapV3PoolContract { + slot0(): Promise; +} + +const uniswapV3PoolSlot0Abi = parseAbi([ + 'function slot0() view returns (uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked)' +]); + +const uniswapV3PoolFnIncreaseObservationCardinalityNextAbi = parseAbi([ + 'function increaseObservationCardinalityNext(uint16 observationCardinalityNext) external' +]); + +export class UniswapV3PoolContract implements IUniswapV3PoolContract { + constructor( + private readonly config: Config, + private readonly contractAddress: AddressString, + ) {} + + async getClient(): Promise> { + try { + return getPublicClient(this.config, ) + } catch (error) { + throw new Error("UniswapV3PoolContract: Failed to get public client"); + } + } + + async getWalletClient(): Promise> { + try { + return getWalletClient(this.config) + } catch (error) { + throw new Error(`UniswapV3PoolContract getWalletClient: ${error}`); + } + } + + async slot0(): Promise { + const client = await this.getClient(); + try { + const response = await client?.readContract({ + address: this.contractAddress, + abi: uniswapV3PoolSlot0Abi, + functionName: "slot0", + }) + if (!response) { + throw new Error("UniswapV3PoolContract: Failed to read slot0"); + } + return { + sqrtPriceX96: response[0], + tick: response[1], + observationIndex: response[2], + observationCardinality: response[3], + observationCardinalityNext: response[4], + feeProtocol: response[5], + unlocked: response[6], + } + } catch (error) { + throw new Error(`UniswapV3PoolContract: ${error}`); + } + } + + async canUseAsCollateral(): Promise { + const slot0 = await this.slot0(); + return slot0.observationCardinality > 1; + } + + async increaseObservationCardinalityNext(observationCardinalityNext: number): Promise { + const client = await this.getWalletClient(); + try { + await client?.writeContract({ + address: this.contractAddress, + abi: uniswapV3PoolFnIncreaseObservationCardinalityNextAbi, + functionName: "increaseObservationCardinalityNext", + args: [observationCardinalityNext], + }) + } catch (error) { + throw new Error(`UniswapV3PoolContract: Failed to increase observation cardinality next: ${error}`); + } + } + +} \ No newline at end of file diff --git a/packages/v1-core/src/factories/create-uniswap-v3-lp-individual-proposal.ts b/packages/v1-core/src/factories/create-uniswap-v3-lp-individual-proposal.ts new file mode 100644 index 00000000..35e40e44 --- /dev/null +++ b/packages/v1-core/src/factories/create-uniswap-v3-lp-individual-proposal.ts @@ -0,0 +1,257 @@ +import { type AddressString, getLoanContractAddress, getUniqueCreditCollateralKey, type Hex, type UserWithNonceManager, ZERO_ADDRESS } from "@pwndao/sdk-core"; +import { type BaseTerm, type StrategyTerm, type IProposalStrategy, type IUniswapV3IndividualProposalBase, type ILoanContract, type IProposalUniswapV3LpIndividualContract, type ChainsWithChainLinkFeedSupport, getFeedData, getLendingCommonProposalFields, type IServerAPI } from '../index.js' +import { UniswapV3IndividualProposal } from "../models/proposals/uniswap-v3-lp-individual-proposal.js"; +import { calculateDurationInSeconds, calculateMinCreditAmount } from "../utils/proposal-calculations.js"; +import { calculateExpirationTimestamp } from "../utils/proposal-calculations.js"; +import type { UniswapV3Position } from "../../../core/src/models/liquidity-position.js"; +import { invariant } from 'ts-invariant' +export type CreateUniswapV3IndividualProposalParams = BaseTerm & { + token0Denominator: boolean; + acceptorController: AddressString; + acceptorControllerData: Hex; + collateralId: string; + minCreditAmount: bigint; + minCreditAmountPercentage: number; +} + +export class UniswapV3LpIndividualProposalStrategy + implements IProposalStrategy +{ + constructor( + public term: StrategyTerm, + public contract: IProposalUniswapV3LpIndividualContract, + public loanContract: ILoanContract, + ) {} + + async implementUniswapV3LpIndividualProposal( + params: CreateUniswapV3IndividualProposalParams, + contract: IProposalUniswapV3LpIndividualContract, + user: UserWithNonceManager, + ): Promise { + // Calculate expiration timestamp + const expiration = calculateExpirationTimestamp(params.expirationDays); + + // Get duration in seconds or timestamp + const durationOrDate = calculateDurationInSeconds(params.duration); + + // Get LTV value for the credit-collateral pair + const ltv = this.term.ltv[getUniqueCreditCollateralKey(params.credit, params.collateral)]; + + invariant(ltv, "LTV is undefined"); + + const castedCollateral = 'tokenId' in params.collateral && 'tokenA' in params.collateral && 'tokenB' in params.collateral + ? params.collateral as UniswapV3Position + : null; + + invariant(castedCollateral, "Collateral is not a UniswapV3Position"); + + const feedData = getFeedData( + castedCollateral.chainId as ChainsWithChainLinkFeedSupport, + params.token0Denominator ? castedCollateral.tokenA : castedCollateral.tokenB, + "underlyingAddress" in params.credit && params.credit.underlyingAddress + ? params.credit.underlyingAddress + : params.credit.address, + ); + + invariant(feedData, "We did not find a suitable price feed. Create classic elastic proposal instead."); + + const creditAmount = await contract.getCreditAmount( + params.credit.address, + BigInt(castedCollateral.tokenId), + params.token0Denominator, + feedData.feedIntermediaryDenominations, + feedData.feedInvertFlags, + BigInt(ltv), + castedCollateral.chainId, + ) + + const minCreditAmount = + params.minCreditAmount && !params.minCreditAmountPercentage + ? params.minCreditAmount + : params.minCreditAmountPercentage + ? calculateMinCreditAmount( + creditAmount, + params.minCreditAmountPercentage, + ) + : undefined; + + invariant(minCreditAmount, "Min credit amount is undefined"); + + const commonFields = await getLendingCommonProposalFields( + { + nonce: user.getNextNonce(params.collateral.chainId), + nonceSpace: user.getNonceSpace(params.collateral.chainId), + user, + collateral: params.collateral, + credit: params.credit, + creditAmount, + utilizedCreditId: params.utilizedCreditId, + durationOrDate, + apr: params.apr, + expiration, + loanContract: getLoanContractAddress(params.collateral.chainId), + relatedStrategyId: this.term.relatedStrategyId, + sourceOfFunds: params.sourceOfFunds, + isOffer: true, + }, + { + contract: contract, + loanContract: this.loanContract, + }, + ); + + return new UniswapV3IndividualProposal( + { + ...commonFields, + isOffer: false, + feedIntermediaryDenominations: feedData.feedIntermediaryDenominations, + feedInvertFlags: feedData.feedInvertFlags, + loanToValue: BigInt(ltv), + minCreditAmount, + chainId: castedCollateral.chainId, + collateralCategory: castedCollateral.category, + collateralAddress: castedCollateral.address, + collateralId: BigInt(castedCollateral.tokenId), + token0Denominator: params.token0Denominator, + acceptorController: params.acceptorController, + acceptorControllerData: params.acceptorControllerData + }, + castedCollateral.chainId, + ); + } + + getProposalsParams( + creditAmount: bigint, + utilizedCreditId: Hex, + isOffer: boolean, + sourceOfFunds: AddressString | null, + minCreditAmount: bigint, + token0Denominator?: boolean, + collateralId?: bigint, + ): CreateUniswapV3IndividualProposalParams[] { + + invariant(!isOffer, "UniswapV3LpIndividualProposal is always a borrow request"); + invariant(this.term.creditAssets.length === 1, "UniswapV3LpIndividualProposal supports only one credit asset"); + invariant(this.term.collateralAssets.length === 1, "UniswapV3LpIndividualProposal supports only one collateral asset"); + + const credit = this.term.creditAssets[0]; + const collateral = this.term.collateralAssets[0]; + + invariant(token0Denominator, "Token 0 denominator is required"); + invariant(collateralId, "Collateral id is required"); + + return [ + { + collateral, + credit, + creditAmount, + utilizedCreditId, + apr: this.term.apr, + duration: { + days: this.term.durationDays, + date: undefined, + }, + ltv: this.term.ltv, + expirationDays: this.term.expirationDays, + isOffer: false, + sourceOfFunds, + minCreditAmount, + token0Denominator, + acceptorController: ZERO_ADDRESS, + acceptorControllerData: ZERO_ADDRESS, + collateralId: (collateral as UniswapV3Position).tokenId, + minCreditAmountPercentage: this.term.minCreditAmountPercentage || 0, + relatedStrategyId: this.term.relatedStrategyId, + } + ]; + } + + async createLendingProposals( + user: UserWithNonceManager, + creditAmount: bigint, + utilizedCreditId: Hex, + isOffer: boolean, + sourceOfFunds: AddressString | null, + minCreditAmount: bigint, + token0Denominator?: boolean, + collateralId?: bigint, + ): Promise { + const paramsArray = this.getProposalsParams( + creditAmount, + utilizedCreditId, + isOffer, + sourceOfFunds, + minCreditAmount, + token0Denominator, + collateralId, + ); + + const result: UniswapV3IndividualProposal[] = []; + + const proposals = await Promise.allSettled( + paramsArray.map(async (params) => { + try { + return await this.implementUniswapV3LpIndividualProposal(params, this.contract, user); + } catch (error) { + console.error("Error creating UniswapV3LpIndividual proposal:", error); + throw error; + } + }), + ); + + for (const proposal of proposals) { + if (proposal.status === "fulfilled" && proposal.value) { + result.push(proposal.value); + } + } + + return result; + } +} + +export interface IProposalUniswapV3LpIndividualAPIDeps { + persistProposal: IServerAPI["post"]["persistProposal"]; + persistProposals: IServerAPI["post"]["persistProposals"]; + updateNonces: IServerAPI["post"]["updateNonce"]; +} + +export type UniswapV3LpIndividualProposalDeps = { + api: IProposalUniswapV3LpIndividualAPIDeps; + contract: IProposalUniswapV3LpIndividualContract; + loanContract: ILoanContract; +}; + +export const createUniswapV3LpIndividualProposal = async ( + params: CreateUniswapV3IndividualProposalParams, + deps: UniswapV3LpIndividualProposalDeps, + user: UserWithNonceManager, +): Promise => { + const dummyTerm: StrategyTerm = { + creditAssets: [params.credit], + collateralAssets: [params.collateral], + apr: params.apr, + durationDays: params.duration.days || 0, + ltv: params.ltv, + expirationDays: params.expirationDays, + minCreditAmountPercentage: params.minCreditAmountPercentage, + relatedStrategyId: params.relatedStrategyId, + }; + + const strategy = new UniswapV3LpIndividualProposalStrategy( + dummyTerm, + deps.contract, + deps.loanContract, + ); + + const proposals = await strategy.createLendingProposals(user, + params.creditAmount, + params.utilizedCreditId, + params.isOffer, + params.sourceOfFunds, + params.minCreditAmount, + params.token0Denominator, + BigInt(params.collateralId) + ); + + return proposals[0]; +} \ No newline at end of file diff --git a/packages/v1-core/src/factories/create-uniswap-v3-lp-set-proposal.ts b/packages/v1-core/src/factories/create-uniswap-v3-lp-set-proposal.ts new file mode 100644 index 00000000..90cb5d6b --- /dev/null +++ b/packages/v1-core/src/factories/create-uniswap-v3-lp-set-proposal.ts @@ -0,0 +1,275 @@ +import type { IProposalUniswapV3LpSetContract } from '../contracts/uniswap-v3-lp-set-proposal-contract.js' +import type { BaseTerm, IServerAPI } from "./types.js"; +import { getLendingCommonProposalFields, type ILoanContract } from "./helpers.js"; +import type { IProposalStrategy, StrategyTerm } from "../models/strategies/types.js"; +import type { IUniswapV3LpSetProposalBase } from "../models/proposals/proposal-base.js"; +import { type AddressString, getLoanContractAddress, getUniqueCreditCollateralKey, type Hex, type UserWithNonceManager } from "@pwndao/sdk-core"; +import { UniswapV3LpSetProposal } from "../models/proposals/uniswap-v3-lp-set-proposal.js"; +import { calculateExpirationTimestamp, calculateMinCreditAmount } from "../utils/proposal-calculations.js"; +import { calculateDurationInSeconds } from "../utils/proposal-calculations.js"; +import invariant from "ts-invariant"; +import { getFeedData } from "../utils/chainlink-feeds.js"; +import type { ChainsWithChainLinkFeedSupport } from "../utils/chainlink-feeds.js"; +import { UniswapV3Position } from "../../../core/src/models/liquidity-position.js"; + +export type CreateUniswapV3LpSetProposalParams = BaseTerm & { + tokenAAllowlist: string[]; + tokenBAllowlist: string[]; + isOffer: true; + acceptorController: string; + acceptorControllerData: string; + minCreditAmountPercentage: number; + minCreditAmount?: bigint; +} + +export class UniswapV3LpSetProposalStrategy + implements IProposalStrategy +{ + constructor( + public term: StrategyTerm, + public contract: IProposalUniswapV3LpSetContract, + public loanContract: ILoanContract, + ) {} + + async implementUniswapV3LpSetProposal( + params: CreateUniswapV3LpSetProposalParams, + contract: IProposalUniswapV3LpSetContract, + user: UserWithNonceManager, + ): Promise { + // Calculate expiration timestamp + const expiration = calculateExpirationTimestamp(params.expirationDays); + + // Get duration in seconds or timestamp + const durationOrDate = calculateDurationInSeconds(params.duration); + + // Get LTV value for the credit-collateral pair + const ltv = this.term.ltv[getUniqueCreditCollateralKey(params.credit, params.collateral)]; + + invariant(ltv, "LTV is undefined"); + + const collateralCasted = ( + 'tokenId' in params.collateral && + 'tokenA' in params.collateral && + 'tokenB' in params.collateral) ? + params.collateral as UniswapV3Position : null ; + + invariant(collateralCasted, "Collateral doesn't have required fields to be a UniswapV3Position"); + + const collateralClass = new UniswapV3Position( + collateralCasted.chainId, + collateralCasted.address, + collateralCasted.tokenA, + collateralCasted.tokenB, + collateralCasted.tokenId, + ); + + invariant(collateralClass instanceof UniswapV3Position, "Collateral must be instanceOf UniswapV3Position"); + + const feedData = getFeedData( + collateralClass.chainId as ChainsWithChainLinkFeedSupport, + params.tokenAAllowlist[0] as AddressString, //TODO: for 1st iteration, it's always [0] from the tokenAAllowlist + "underlyingAddress" in params.credit && params.credit.underlyingAddress + ? params.credit.underlyingAddress + : params.credit.address, + ); + + invariant(feedData, "We did not find a suitable price feed. Create classic elastic proposal instead."); + + invariant(params.creditAmount, "Credit amount is undefined"); + + const minCreditAmount = + params.minCreditAmount && !params.minCreditAmountPercentage + ? params.minCreditAmount + : params.minCreditAmountPercentage + ? calculateMinCreditAmount( + params.creditAmount, + params.minCreditAmountPercentage, + ) + : undefined; + + invariant(minCreditAmount, "Min credit amount is undefined"); + + // Get common proposal fields + const commonFields = await getLendingCommonProposalFields( + { + nonce: user.getNextNonce(params.collateral.chainId), + nonceSpace: user.getNonceSpace(params.collateral.chainId), + user, + collateral: params.collateral, + credit: params.credit, + creditAmount: params.creditAmount, + utilizedCreditId: params.utilizedCreditId, + durationOrDate, + apr: params.apr, + expiration, + loanContract: getLoanContractAddress(params.collateral.chainId), + relatedStrategyId: this.term.relatedStrategyId, + sourceOfFunds: params.sourceOfFunds, + isOffer: true, + }, + { + contract: contract, + loanContract: this.loanContract, + }, + ); + + // Create and return the UniswapV3LpSet proposal with formatted LTV for contract + return new UniswapV3LpSetProposal( + { + ...commonFields, + minCreditAmount, + isOffer: true, + feedIntermediaryDenominations: feedData.feedIntermediaryDenominations, + feedInvertFlags: feedData.feedInvertFlags, + loanToValue: BigInt(ltv), + chainId: params.collateral.chainId, + collateralCategory: params.collateral.category, + collateralAddress: params.collateral.address, + collateralId: BigInt(collateralClass.tokenId), + tokenAAllowlist: params.tokenAAllowlist.map(token => token as `0x${string}`), + tokenBAllowlist: params.tokenBAllowlist.map(token => token as `0x${string}`), + acceptorController: params.acceptorController as `0x${string}`, + acceptorControllerData: params.acceptorControllerData as `0x${string}`, + }, + collateralClass.chainId, + ); + } + + getProposalsParams( + creditAmount: bigint, + utilizedCreditId: Hex, + isOffer: boolean, + sourceOfFunds: AddressString | null, + minCreditAmount?: bigint, + tokenAAllowlist?: string[], + tokenBAllowlist?: string[], + // todo: maybe laontovalue ? + ): CreateUniswapV3LpSetProposalParams[] { + + invariant(isOffer, "UniswapV3LpSetProposal is always an offer"); + invariant(this.term.creditAssets.length === 1, "UniswapV3LpSetProposal supports only one credit asset"); + invariant(this.term.collateralAssets.length === 1, "UniswapV3LpSetProposal supports only one collateral asset"); + + const credit = this.term.creditAssets[0]; + const collateral = this.term.collateralAssets[0]; + + invariant(tokenAAllowlist && tokenAAllowlist.length > 0, "Token A allowlist is required"); + invariant(tokenBAllowlist && tokenBAllowlist.length > 0, "Token B allowlist is required"); + + // todo: check feed params, loantovalue + + return [ + { + collateral, + credit, + creditAmount, + utilizedCreditId, + apr: this.term.apr, + duration: { + days: this.term.durationDays, + date: undefined, + }, + ltv: this.term.ltv, + expirationDays: this.term.expirationDays, + isOffer: true, + sourceOfFunds, + minCreditAmount, + tokenAAllowlist, + tokenBAllowlist, + acceptorController: this.term.acceptorController || "", + acceptorControllerData: this.term.acceptorControllerData || "", + minCreditAmountPercentage: this.term.minCreditAmountPercentage || 0, + }, + ]; + } + + async createLendingProposals( + user: UserWithNonceManager, + creditAmount: bigint, + utilizedCreditId: Hex, + isOffer: boolean, + sourceOfFunds: AddressString | null, + minCreditAmount?: bigint, + tokenAAllowlist?: string[], + tokenBAllowlist?: string[], + ): Promise { + const paramsArray = this.getProposalsParams( + creditAmount, + utilizedCreditId, + isOffer, + sourceOfFunds, + minCreditAmount, + tokenAAllowlist, + tokenBAllowlist, + ); + + const result: UniswapV3LpSetProposal[] = []; + + const proposals = await Promise.allSettled( + paramsArray.map(async (params) => { + try { + return await this.implementUniswapV3LpSetProposal(params, this.contract, user); + } catch (error) { + console.error("Error creating UniswapV3LpSet proposal:", error); + throw error; + } + }), + ); + + for (const proposal of proposals) { + if (proposal.status === "fulfilled" && proposal.value) { + result.push(proposal.value); + } + } + + return result; + } +} + +export interface IProposalUniswapV3LpSetAPIDeps { + persistProposal: IServerAPI["post"]["persistProposal"]; + persistProposals: IServerAPI["post"]["persistProposals"]; + updateNonces: IServerAPI["post"]["updateNonce"]; +} + +export type UniswapV3LpSetProposalDeps = { + api: IProposalUniswapV3LpSetAPIDeps; + contract: IProposalUniswapV3LpSetContract; + loanContract: ILoanContract; +}; + +export const createUniswapV3LpSetProposal = async ( + params: CreateUniswapV3LpSetProposalParams, + deps: UniswapV3LpSetProposalDeps, + user: UserWithNonceManager, +): Promise => { + const dummyTerm: StrategyTerm = { + creditAssets: [params.credit], + collateralAssets: [params.collateral], + apr: params.apr, + durationDays: params.duration.days || 0, + ltv: params.ltv, + expirationDays: params.expirationDays, + minCreditAmountPercentage: params.minCreditAmountPercentage, + relatedStrategyId: params.relatedStrategyId, + }; + + const strategy = new UniswapV3LpSetProposalStrategy( + dummyTerm, + deps.contract, + deps.loanContract, + ); + + const proposals = await strategy.createLendingProposals( + user, + params.creditAmount, + params.utilizedCreditId, + params.isOffer, + params.sourceOfFunds, + params.minCreditAmount, + params.tokenAAllowlist, + params.tokenBAllowlist, + ); + + return proposals[0]; +} \ No newline at end of file diff --git a/packages/v1-core/src/factories/helpers.ts b/packages/v1-core/src/factories/helpers.ts index 4edbc69e..8ca55eb6 100644 --- a/packages/v1-core/src/factories/helpers.ts +++ b/packages/v1-core/src/factories/helpers.ts @@ -29,6 +29,8 @@ import type { } from "../models/strategies/types.js"; import type { Proposal } from "../models/strategies/types.js"; import type { ILenderSpec } from "../models/terms.js"; +import type { IProposalUniswapV3LpSetContract } from "src/contracts/uniswap-v3-lp-set-proposal-contract.js"; +import type { IProposalUniswapV3LpIndividualContract } from "src/contracts/uniswap-v3-lp-individual-proposal-contract.js"; type CommonProposalFieldsParams = { user: UserWithNonceManager; @@ -99,7 +101,9 @@ export interface IProposalContract { export type ProposalContract = | IProposalChainLinkContract - | IProposalElasticContract; + | IProposalElasticContract + | IProposalUniswapV3LpSetContract + | IProposalUniswapV3LpIndividualContract; export const getLendingCommonProposalFields = async ( params: CommonProposalFieldsParams & IProposalMisc, diff --git a/packages/v1-core/src/generated.ts b/packages/v1-core/src/generated.ts index 7a031ac2..2a6d3d55 100644 --- a/packages/v1-core/src/generated.ts +++ b/packages/v1-core/src/generated.ts @@ -185,6 +185,14 @@ export const chainlinkAbi = [ ], name: 'GracePeriodNotOver', }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, { type: 'error', inputs: [], name: 'L2SequencerDown' }, ] as const @@ -225,46 +233,68 @@ export const chainlinkHarnessAbi = [ type: 'function', inputs: [ { - name: 'l2SequencerUptimeFeed', - internalType: 'contract IChainlinkAggregatorLike', + name: 'feedRegistry', + internalType: 'contract IChainlinkFeedRegistryLike', type: 'address', }, + { name: 'baseAsset', internalType: 'address', type: 'address' }, + { name: 'quoteAsset', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + ], + name: 'calculatePrice', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint8', type: 'uint8' }, ], - name: 'checkSequencerUptime', - outputs: [], stateMutability: 'view', }, { type: 'function', inputs: [ { - name: 'feedRegistry', - internalType: 'contract IChainlinkFeedRegistryLike', + name: 'l2SequencerUptimeFeed', + internalType: 'contract IChainlinkAggregatorLike', type: 'address', }, - { name: 'currentPrice', internalType: 'uint256', type: 'uint256' }, - { name: 'currentDecimals', internalType: 'uint8', type: 'uint8' }, - { name: 'currentDenomination', internalType: 'address', type: 'address' }, - { name: 'nextDenomination', internalType: 'address', type: 'address' }, - { name: 'nextInvert', internalType: 'bool', type: 'bool' }, - ], - name: 'convertPriceDenomination', - outputs: [ - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'uint8', type: 'uint8' }, ], + name: 'checkSequencerUptime', + outputs: [], stateMutability: 'view', }, { type: 'function', inputs: [ { - name: 'feedRegistry', - internalType: 'contract IChainlinkFeedRegistryLike', - type: 'address', + name: 'config', + internalType: 'struct Chainlink.Config', + type: 'tuple', + components: [ + { + name: 'l2SequencerUptimeFeed', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, + { + name: 'feedRegistry', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + { + name: 'maxIntermediaryDenominations', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'weth', internalType: 'address', type: 'address' }, + ], }, - { name: 'creditAsset', internalType: 'address', type: 'address' }, - { name: 'collateralAsset', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'oldDenomination', internalType: 'address', type: 'address' }, + { name: 'newDenomination', internalType: 'address', type: 'address' }, { name: 'feedIntermediaryDenominations', internalType: 'address[]', @@ -272,7 +302,25 @@ export const chainlinkHarnessAbi = [ }, { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, ], - name: 'fetchCreditPriceWithCollateralDenomination', + name: 'convertDenomination', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'feedRegistry', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + { name: 'currentPrice', internalType: 'uint256', type: 'uint256' }, + { name: 'currentDecimals', internalType: 'uint8', type: 'uint8' }, + { name: 'currentDenomination', internalType: 'address', type: 'address' }, + { name: 'nextDenomination', internalType: 'address', type: 'address' }, + { name: 'nextInvert', internalType: 'bool', type: 'bool' }, + ], + name: 'convertPriceDenomination', outputs: [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint8', type: 'uint8' }, @@ -339,6 +387,14 @@ export const chainlinkHarnessAbi = [ ], name: 'GracePeriodNotOver', }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, { type: 'error', inputs: [], name: 'L2SequencerDown' }, ] as const @@ -2222,10 +2278,10 @@ export const ierc5646Abi = [ ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IERC721Metadata +// IERC721Enumerable ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const ierc721MetadataAbi = [ +export const ierc721EnumerableAbi = [ { type: 'function', inputs: [ @@ -2260,13 +2316,6 @@ export const ierc721MetadataAbi = [ outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [], - name: 'name', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', - }, { type: 'function', inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], @@ -2316,16 +2365,26 @@ export const ierc721MetadataAbi = [ }, { type: 'function', - inputs: [], - name: 'symbol', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }], + name: 'tokenByIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'tokenURI', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + ], + name: 'tokenOfOwnerByIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { @@ -2402,54 +2461,120 @@ export const ierc721MetadataAbi = [ ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IERC721Receiver +// IERC721Metadata ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const ierc721ReceiverAbi = [ +export const ierc721MetadataAbi = [ + { + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: 'operator', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, { type: 'function', inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'onERC721Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + name: 'safeTransferFrom', + outputs: [], stateMutability: 'nonpayable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IMultiTokenCategoryRegistry -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const iMultiTokenCategoryRegistryAbi = [ { type: 'function', inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'category', internalType: 'uint8', type: 'uint8' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'registerCategoryValue', + name: 'safeTransferFrom', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, ], - name: 'registeredCategoryValue', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], - name: 'unregisterCategoryValue', + name: 'transferFrom', outputs: [], stateMutability: 'nonpayable', }, @@ -2458,1545 +2583,1757 @@ export const iMultiTokenCategoryRegistryAbi = [ anonymous: false, inputs: [ { - name: 'assetAddress', + name: 'owner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'category', internalType: 'uint8', type: 'uint8', indexed: true }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, ], - name: 'CategoryRegistered', + name: 'Approval', }, { type: 'event', anonymous: false, inputs: [ { - name: 'assetAddress', + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', internalType: 'address', type: 'address', indexed: true, }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'CategoryUnregistered', + name: 'ApprovalForAll', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IMulticall3 -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const iMulticall3Abi = [ { - type: 'function', + type: 'event', + anonymous: false, inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'calls', - internalType: 'struct IMulticall3.Call[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - name: 'aggregate', - outputs: [ - { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, - { name: 'returnData', internalType: 'bytes[]', type: 'bytes[]' }, - ], - stateMutability: 'payable', + name: 'Transfer', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC721Permit +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc721PermitAbi = [ { type: 'function', - inputs: [ - { - name: 'calls', - internalType: 'struct IMulticall3.Call3[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'allowFailure', internalType: 'bool', type: 'bool' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - name: 'aggregate3', - outputs: [ - { - name: 'returnData', - internalType: 'struct IMulticall3.Result[]', - type: 'tuple[]', - components: [ - { name: 'success', internalType: 'bool', type: 'bool' }, - { name: 'returnData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - stateMutability: 'payable', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { - name: 'calls', - internalType: 'struct IMulticall3.Call3Value[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'allowFailure', internalType: 'bool', type: 'bool' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - name: 'aggregate3Value', - outputs: [ - { - name: 'returnData', - internalType: 'struct IMulticall3.Result[]', - type: 'tuple[]', - components: [ - { name: 'success', internalType: 'bool', type: 'bool' }, - { name: 'returnData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - stateMutability: 'payable', + inputs: [], + name: 'PERMIT_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', }, { type: 'function', inputs: [ - { - name: 'calls', - internalType: 'struct IMulticall3.Call[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - name: 'blockAndAggregate', - outputs: [ - { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, - { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'returnData', - internalType: 'struct IMulticall3.Result[]', - type: 'tuple[]', - components: [ - { name: 'success', internalType: 'bool', type: 'bool' }, - { name: 'returnData', internalType: 'bytes', type: 'bytes' }, - ], - }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], - stateMutability: 'payable', + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'getBasefee', - outputs: [{ name: 'basefee', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'blockNumber', internalType: 'uint256', type: 'uint256' }], - name: 'getBlockHash', - outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: 'operator', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'getBlockNumber', - outputs: [ - { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'getChainId', - outputs: [{ name: 'chainid', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: 'owner', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'getCurrentBlockCoinbase', - outputs: [{ name: 'coinbase', internalType: 'address', type: 'address' }], - stateMutability: 'view', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permit', + outputs: [], + stateMutability: 'payable', }, { type: 'function', - inputs: [], - name: 'getCurrentBlockDifficulty', - outputs: [{ name: 'difficulty', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'getCurrentBlockGasLimit', - outputs: [{ name: 'gaslimit', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'getCurrentBlockTimestamp', - outputs: [{ name: 'timestamp', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'getEthBalance', - outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'getLastBlockHash', - outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, { - name: 'calls', - internalType: 'struct IMulticall3.Call[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, }, - ], - name: 'tryAggregate', - outputs: [ { - name: 'returnData', - internalType: 'struct IMulticall3.Result[]', - type: 'tuple[]', - components: [ - { name: 'success', internalType: 'bool', type: 'bool' }, - { name: 'returnData', internalType: 'bytes', type: 'bytes' }, - ], + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - stateMutability: 'payable', + name: 'Approval', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, { - name: 'calls', - internalType: 'struct IMulticall3.Call[]', - type: 'tuple[]', - components: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'callData', internalType: 'bytes', type: 'bytes' }, - ], - }, - ], - name: 'tryBlockAndAggregate', - outputs: [ - { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, - { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, { - name: 'returnData', - internalType: 'struct IMulticall3.Result[]', - type: 'tuple[]', - components: [ - { name: 'success', internalType: 'bool', type: 'bool' }, - { name: 'returnData', internalType: 'bytes', type: 'bytes' }, - ], + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, ], - stateMutability: 'payable', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IPWNDeployer -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ipwnDeployerAbi = [ - { - type: 'function', - inputs: [ - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - { name: 'bytecodeHash', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'computeAddress', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - { name: 'bytecode', internalType: 'bytes', type: 'bytes' }, - ], - name: 'deploy', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'nonpayable', + name: 'ApprovalForAll', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'bytecode', internalType: 'bytes', type: 'bytes' }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, ], - name: 'deployAndTransferOwnership', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'nonpayable', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IPWNLoanMetadataProvider -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ipwnLoanMetadataProviderAbi = [ - { - type: 'function', - inputs: [], - name: 'loanMetadataUri', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', + name: 'Transfer', }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IPoolAdapter +// IERC721Receiver ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const iPoolAdapterAbi = [ - { - type: 'function', - inputs: [ - { name: 'pool', internalType: 'address', type: 'address' }, - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'asset', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - name: 'supply', - outputs: [], - stateMutability: 'nonpayable', - }, +export const ierc721ReceiverAbi = [ { type: 'function', inputs: [ - { name: 'pool', internalType: 'address', type: 'address' }, - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'asset', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'withdraw', - outputs: [], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'nonpayable', }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// IStateFingerpringComputer +// IMultiTokenCategoryRegistry ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const iStateFingerpringComputerAbi = [ +export const iMultiTokenCategoryRegistryAbi = [ { type: 'function', inputs: [ - { name: 'token', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'category', internalType: 'uint8', type: 'uint8' }, ], - name: 'computeStateFingerprint', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'token', internalType: 'address', type: 'address' }], - name: 'supportsToken', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ITransparentUpgradeableProxy -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const iTransparentUpgradeableProxyAbi = [ - { - type: 'function', - inputs: [], - name: 'admin', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'changeAdmin', + name: 'registerCategoryValue', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'implementation', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'assetAddress', internalType: 'address', type: 'address' }, + ], + name: 'registeredCategoryValue', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'upgradeTo', - outputs: [], - stateMutability: 'nonpayable', - }, { type: 'function', inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'bytes', type: 'bytes' }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, ], - name: 'upgradeToAndCall', + name: 'unregisterCategoryValue', outputs: [], - stateMutability: 'payable', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'previousAdmin', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'newAdmin', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'AdminChanged', + stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { - name: 'beacon', + name: 'assetAddress', internalType: 'address', type: 'address', indexed: true, }, + { name: 'category', internalType: 'uint8', type: 'uint8', indexed: true }, ], - name: 'BeaconUpgraded', + name: 'CategoryRegistered', }, { type: 'event', anonymous: false, inputs: [ { - name: 'implementation', + name: 'assetAddress', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'Upgraded', + name: 'CategoryUnregistered', }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Initializable +// IMulticall3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const initializableAbi = [ +export const iMulticall3Abi = [ { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, ], - name: 'Initialized', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// MultiToken -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const multiTokenAbi = [ - { - type: 'function', - inputs: [], - name: 'CATEGORY_NOT_REGISTERED', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'CRYPTO_KITTIES_INTERFACE_ID', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'view', + name: 'aggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'returnData', internalType: 'bytes[]', type: 'bytes[]' }, + ], + stateMutability: 'payable', }, { type: 'function', - inputs: [], - name: 'ERC1155_INTERFACE_ID', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'ERC20_INTERFACE_ID', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'view', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call3[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'allowFailure', internalType: 'bool', type: 'bool' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'aggregate3', + outputs: [ + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'payable', }, { type: 'function', - inputs: [], - name: 'ERC721_INTERFACE_ID', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'view', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call3Value[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'allowFailure', internalType: 'bool', type: 'bool' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'aggregate3Value', + outputs: [ + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'payable', }, { - type: 'error', - inputs: [{ name: 'categoryValue', internalType: 'uint8', type: 'uint8' }], - name: 'UnsupportedCategory', + type: 'function', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'blockAndAggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'payable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// MultiTokenCategoryRegistry -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const multiTokenCategoryRegistryAbi = [ { type: 'function', inputs: [], - name: 'CATEGORY_NOT_REGISTERED', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'getBasefee', + outputs: [{ name: 'basefee', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'acceptOwnership', - outputs: [], - stateMutability: 'nonpayable', + inputs: [{ name: 'blockNumber', internalType: 'uint256', type: 'uint256' }], + name: 'getBlockHash', + outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'getBlockNumber', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + ], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'pendingOwner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'getChainId', + outputs: [{ name: 'chainid', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'category', internalType: 'uint8', type: 'uint8' }, - ], - name: 'registerCategoryValue', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'getCurrentBlockCoinbase', + outputs: [{ name: 'coinbase', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, - ], - name: 'registeredCategoryValue', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + inputs: [], + name: 'getCurrentBlockDifficulty', + outputs: [{ name: 'difficulty', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], - stateMutability: 'nonpayable', + name: 'getCurrentBlockGasLimit', + outputs: [{ name: 'gaslimit', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'getCurrentBlockTimestamp', + outputs: [{ name: 'timestamp', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - stateMutability: 'nonpayable', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'getEthBalance', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'assetAddress', internalType: 'address', type: 'address' }, - ], - name: 'unregisterCategoryValue', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'getLastBlockHash', + outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ + { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, { - name: 'assetAddress', - internalType: 'address', - type: 'address', - indexed: true, + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], }, - { name: 'category', internalType: 'uint8', type: 'uint8', indexed: true }, ], - name: 'CategoryRegistered', - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'tryAggregate', + outputs: [ { - name: 'assetAddress', - internalType: 'address', - type: 'address', - indexed: true, + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], }, ], - name: 'CategoryUnregistered', + stateMutability: 'payable', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ + { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], }, ], - name: 'OwnershipTransferStarted', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, + name: 'tryBlockAndAggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], }, ], - name: 'OwnershipTransferred', + stateMutability: 'payable', }, - { type: 'error', inputs: [], name: 'ReservedCategoryValue' }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Ownable +// INonfungiblePositionManager ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const ownableAbi = [ +export const iNonfungiblePositionManagerAbi = [ { type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'renounceOwnership', + name: 'PERMIT_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'WETH9', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'params', + internalType: 'struct INonfungiblePositionManager.CollectParams', + type: 'tuple', + components: [ + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount0Max', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1Max', internalType: 'uint128', type: 'uint128' }, + ], }, ], - name: 'OwnershipTransferred', + name: 'collect', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Ownable2Step -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ownable2StepAbi = [ { type: 'function', - inputs: [], - name: 'acceptOwnership', - outputs: [], - stateMutability: 'nonpayable', + inputs: [ + { name: 'token0', internalType: 'address', type: 'address' }, + { name: 'token1', internalType: 'address', type: 'address' }, + { name: 'fee', internalType: 'uint24', type: 'uint24' }, + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, + ], + name: 'createAndInitializePoolIfNecessary', + outputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + stateMutability: 'payable', }, { type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'view', + inputs: [ + { + name: 'params', + internalType: + 'struct INonfungiblePositionManager.DecreaseLiquidityParams', + type: 'tuple', + components: [ + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, + { name: 'amount0Min', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1Min', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'decreaseLiquidity', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', }, { type: 'function', inputs: [], - name: 'pendingOwner', + name: 'factory', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], - stateMutability: 'nonpayable', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: 'operator', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'event', - anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'params', + internalType: + 'struct INonfungiblePositionManager.IncreaseLiquidityParams', + type: 'tuple', + components: [ + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount0Desired', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1Desired', internalType: 'uint256', type: 'uint256' }, + { name: 'amount0Min', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1Min', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + ], }, ], - name: 'OwnershipTransferStarted', + name: 'increaseLiquidity', + outputs: [ + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', }, { - type: 'event', - anonymous: false, + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'params', + internalType: 'struct INonfungiblePositionManager.MintParams', + type: 'tuple', + components: [ + { name: 'token0', internalType: 'address', type: 'address' }, + { name: 'token1', internalType: 'address', type: 'address' }, + { name: 'fee', internalType: 'uint24', type: 'uint24' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount0Desired', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1Desired', internalType: 'uint256', type: 'uint256' }, + { name: 'amount0Min', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1Min', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + ], }, ], - name: 'OwnershipTransferred', + name: 'mint', + outputs: [ + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Ownable2StepUpgradeable -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ownable2StepUpgradeableAbi = [ { type: 'function', inputs: [], - name: 'acceptOwnership', - outputs: [], - stateMutability: 'nonpayable', + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: 'owner', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'pendingOwner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permit', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'positions', + outputs: [ + { name: 'nonce', internalType: 'uint96', type: 'uint96' }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'token0', internalType: 'address', type: 'address' }, + { name: 'token1', internalType: 'address', type: 'address' }, + { name: 'fee', internalType: 'uint24', type: 'uint24' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, + { + name: 'feeGrowthInside0LastX128', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'feeGrowthInside1LastX128', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'tokensOwed0', internalType: 'uint128', type: 'uint128' }, + { name: 'tokensOwed1', internalType: 'uint128', type: 'uint128' }, + ], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'renounceOwnership', + name: 'refundETH', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', outputs: [], stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'Initialized', + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, ], - name: 'OwnershipTransferStarted', + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', inputs: [ - { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amountMinimum', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, ], - name: 'OwnershipTransferred', + name: 'sweepToken', + outputs: [], + stateMutability: 'payable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OwnableUpgradeable -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ownableUpgradeableAbi = [ { type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }], + name: 'tokenByIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + ], + name: 'tokenOfOwnerByIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'renounceOwnership', + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: 'amountMinimum', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + name: 'unwrapWETH9', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, ], - name: 'Initialized', + name: 'Approval', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'owner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'operator', internalType: 'address', type: 'address', indexed: true, }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'OwnershipTransferred', + name: 'ApprovalForAll', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNConfig -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnConfigAbi = [ - { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { - type: 'function', - inputs: [], - name: 'MAX_FEE', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - stateMutability: 'view', + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Collect', }, { - type: 'function', - inputs: [], - name: 'acceptOwnership', - outputs: [], - stateMutability: 'nonpayable', + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'liquidity', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DecreaseLiquidity', }, { - type: 'function', - inputs: [], - name: 'fee', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - stateMutability: 'view', + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'liquidity', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'IncreaseLiquidity', }, { - type: 'function', - inputs: [], - name: 'feeCollector', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'view', + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Transfer', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPWNAcceptorController +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ipwnAcceptorControllerAbi = [ { type: 'function', - inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], - name: 'getPoolAdapter', - outputs: [ - { name: '', internalType: 'contract IPoolAdapter', type: 'address' }, + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'proposerData', internalType: 'bytes', type: 'bytes' }, + { name: 'acceptorData', internalType: 'bytes', type: 'bytes' }, ], + name: 'checkAcceptor', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPWNDeployer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ipwnDeployerAbi = [ { type: 'function', - inputs: [{ name: 'asset', internalType: 'address', type: 'address' }], - name: 'getStateFingerprintComputer', - outputs: [ - { - name: '', - internalType: 'contract IStateFingerpringComputer', - type: 'address', - }, + inputs: [ + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + { name: 'bytecodeHash', internalType: 'bytes32', type: 'bytes32' }, ], + name: 'computeAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_fee', internalType: 'uint16', type: 'uint16' }, - { name: '_feeCollector', internalType: 'address', type: 'address' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + { name: 'bytecode', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', - outputs: [], + name: 'deploy', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'loanContract', internalType: 'address', type: 'address' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'bytecode', internalType: 'bytes', type: 'bytes' }, ], - name: 'loanMetadataUri', - outputs: [{ name: 'uri', internalType: 'string', type: 'string' }], - stateMutability: 'view', + name: 'deployAndTransferOwnership', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], - stateMutability: 'view', + stateMutability: 'nonpayable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPWNLoanMetadataProvider +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ipwnLoanMetadataProviderAbi = [ { type: 'function', inputs: [], - name: 'pendingOwner', + name: 'loanMetadataUri', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPeripheryImmutableState +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPeripheryImmutableStateAbi = [ + { + type: 'function', + inputs: [], + name: 'WETH9', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'pool', internalType: 'address', type: 'address' }, - { name: 'adapter', internalType: 'address', type: 'address' }, - ], - name: 'registerPoolAdapter', + inputs: [], + name: 'factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPeripheryPayments +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPeripheryPaymentsAbi = [ + { + type: 'function', + inputs: [], + name: 'refundETH', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, { type: 'function', inputs: [ - { name: 'asset', internalType: 'address', type: 'address' }, - { name: 'computer', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amountMinimum', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, ], - name: 'registerStateFingerprintComputer', + name: 'sweepToken', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, { type: 'function', - inputs: [], - name: 'renounceOwnership', + inputs: [ + { name: 'amountMinimum', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + name: 'unwrapWETH9', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPoolAdapter +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPoolAdapterAbi = [ { type: 'function', - inputs: [{ name: 'metadataUri', internalType: 'string', type: 'string' }], - name: 'setDefaultLOANMetadataUri', + inputs: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'asset', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'supply', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: '_fee', internalType: 'uint16', type: 'uint16' }], - name: 'setFee', + inputs: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'asset', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdraw', outputs: [], stateMutability: 'nonpayable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPoolInitializer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPoolInitializerAbi = [ { type: 'function', inputs: [ - { name: '_feeCollector', internalType: 'address', type: 'address' }, + { name: 'token0', internalType: 'address', type: 'address' }, + { name: 'token1', internalType: 'address', type: 'address' }, + { name: 'fee', internalType: 'uint24', type: 'uint24' }, + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, ], - name: 'setFeeCollector', - outputs: [], - stateMutability: 'nonpayable', + name: 'createAndInitializePoolIfNecessary', + outputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + stateMutability: 'payable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IStateFingerpringComputer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iStateFingerpringComputerAbi = [ { type: 'function', inputs: [ - { name: 'loanContract', internalType: 'address', type: 'address' }, - { name: 'metadataUri', internalType: 'string', type: 'string' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], - name: 'setLOANMetadataUri', + name: 'computeStateFingerprint', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'supportsToken', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ITransparentUpgradeableProxy +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iTransparentUpgradeableProxyAbi = [ + { + type: 'function', + inputs: [], + name: 'admin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'changeAdmin', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'upgradeTo', outputs: [], stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { - name: 'newUri', - internalType: 'string', - type: 'string', - indexed: false, - }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'DefaultLOANMetadataUriUpdated', + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', }, { type: 'event', anonymous: false, inputs: [ { - name: 'oldFeeCollector', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'newFeeCollector', + name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false, }, - ], - name: 'FeeCollectorUpdated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'oldFee', - internalType: 'uint16', - type: 'uint16', - indexed: false, - }, - { - name: 'newFee', - internalType: 'uint16', - type: 'uint16', - indexed: false, - }, - ], - name: 'FeeUpdated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, - ], - name: 'Initialized', - }, - { - type: 'event', - anonymous: false, - inputs: [ { - name: 'loanContract', + name: 'newAdmin', internalType: 'address', type: 'address', - indexed: true, - }, - { - name: 'newUri', - internalType: 'string', - type: 'string', indexed: false, }, ], - name: 'LOANMetadataUriUpdated', + name: 'AdminChanged', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', + name: 'beacon', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'OwnershipTransferStarted', + name: 'BeaconUpgraded', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', + name: 'implementation', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'OwnershipTransferred', - }, - { - type: 'error', - inputs: [ - { name: 'computer', internalType: 'address', type: 'address' }, - { name: 'asset', internalType: 'address', type: 'address' }, - ], - name: 'InvalidComputerContract', - }, - { - type: 'error', - inputs: [ - { name: 'fee', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidFeeValue', + name: 'Upgraded', }, - { type: 'error', inputs: [], name: 'ZeroFeeCollector' }, - { type: 'error', inputs: [], name: 'ZeroLoanContract' }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNHub +// IUniswapV3Pool ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnHubAbi = [ - { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, +export const iUniswapV3PoolAbi = [ { type: 'function', - inputs: [], - name: 'acceptOwnership', - outputs: [], + inputs: [ + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + ], + name: 'burn', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' }, ], - name: 'hasTag', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', + name: 'collect', + outputs: [ + { name: 'amount0', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1', internalType: 'uint128', type: 'uint128' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' }, + ], + name: 'collectProtocol', + outputs: [ + { name: 'amount0', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1', internalType: 'uint128', type: 'uint128' }, + ], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'owner', + name: 'factory', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'pendingOwner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'fee', + outputs: [{ name: '', internalType: 'uint24', type: 'uint24' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], - stateMutability: 'nonpayable', + name: 'feeGrowthGlobal0X128', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, - { name: '_hasTag', internalType: 'bool', type: 'bool' }, - ], - name: 'setTag', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'feeGrowthGlobal1X128', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { type: 'function', inputs: [ - { name: '_addresses', internalType: 'address[]', type: 'address[]' }, - { name: '_tags', internalType: 'bytes32[]', type: 'bytes32[]' }, - { name: '_hasTag', internalType: 'bool', type: 'bool' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'setTags', + name: 'flash', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - ], - name: 'OwnershipTransferStarted', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, - }, - ], - name: 'OwnershipTransferred', - }, - { - type: 'event', - anonymous: false, inputs: [ { - name: '_address', - internalType: 'address', - type: 'address', - indexed: true, + name: 'observationCardinalityNext', + internalType: 'uint16', + type: 'uint16', }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { name: 'hasTag', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'TagSet', - }, - { type: 'error', inputs: [], name: 'InvalidInputData' }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNLOAN -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnloanAbi = [ - { - type: 'constructor', - inputs: [{ name: '_hub', internalType: 'address', type: 'address' }], + name: 'increaseObservationCardinalityNext', + outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, ], - name: 'approve', + name: 'initialize', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], - name: 'balanceOf', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [], + name: 'liquidity', + outputs: [{ name: '', internalType: 'uint128', type: 'uint128' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - name: 'burn', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'getApproved', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'maxLiquidityPerTick', + outputs: [{ name: '', internalType: 'uint128', type: 'uint128' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'getStateFingerprint', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [ + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'mint', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }], + name: 'observations', + outputs: [ + { name: 'blockTimestamp', internalType: 'uint32', type: 'uint32' }, + { name: 'tickCumulative', internalType: 'int56', type: 'int56' }, + { + name: 'secondsPerLiquidityCumulativeX128', + internalType: 'uint160', + type: 'uint160', + }, + { name: 'initialized', internalType: 'bool', type: 'bool' }, + ], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'secondsAgos', internalType: 'uint32[]', type: 'uint32[]' }, + ], + name: 'observe', + outputs: [ + { name: 'tickCumulatives', internalType: 'int56[]', type: 'int56[]' }, + { + name: 'secondsPerLiquidityCumulativeX128s', + internalType: 'uint160[]', + type: 'uint160[]', + }, ], - name: 'isApprovedForAll', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'lastLoanId', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'key', internalType: 'bytes32', type: 'bytes32' }], + name: 'positions', + outputs: [ + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, + { + name: 'feeGrowthInside0LastX128', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'feeGrowthInside1LastX128', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'tokensOwed0', internalType: 'uint128', type: 'uint128' }, + { name: 'tokensOwed1', internalType: 'uint128', type: 'uint128' }, + ], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - name: 'loanContract', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'protocolFees', + outputs: [ + { name: 'token0', internalType: 'uint128', type: 'uint128' }, + { name: 'token1', internalType: 'uint128', type: 'uint128' }, + ], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], - name: 'mint', - outputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: 'feeProtocol0', internalType: 'uint8', type: 'uint8' }, + { name: 'feeProtocol1', internalType: 'uint8', type: 'uint8' }, + ], + name: 'setFeeProtocol', + outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'name', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'slot0', + outputs: [ + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, + { name: 'tick', internalType: 'int24', type: 'int24' }, + { name: 'observationIndex', internalType: 'uint16', type: 'uint16' }, + { + name: 'observationCardinality', + internalType: 'uint16', + type: 'uint16', + }, + { + name: 'observationCardinalityNext', + internalType: 'uint16', + type: 'uint16', + }, + { name: 'feeProtocol', internalType: 'uint8', type: 'uint8' }, + { name: 'unlocked', internalType: 'bool', type: 'bool' }, + ], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'ownerOf', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + ], + name: 'snapshotCumulativesInside', + outputs: [ + { name: 'tickCumulativeInside', internalType: 'int56', type: 'int56' }, + { + name: 'secondsPerLiquidityInsideX128', + internalType: 'uint160', + type: 'uint160', + }, + { name: 'secondsInside', internalType: 'uint32', type: 'uint32' }, + ], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'zeroForOne', internalType: 'bool', type: 'bool' }, + { name: 'amountSpecified', internalType: 'int256', type: 'int256' }, + { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'swap', + outputs: [ + { name: 'amount0', internalType: 'int256', type: 'int256' }, + { name: 'amount1', internalType: 'int256', type: 'int256' }, ], - name: 'safeTransferFrom', - outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', + inputs: [{ name: 'wordPosition', internalType: 'int16', type: 'int16' }], + name: 'tickBitmap', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: 'approved', internalType: 'bool', type: 'bool' }, - ], - name: 'setApprovalForAll', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'tickSpacing', + outputs: [{ name: '', internalType: 'int24', type: 'int24' }], + stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: 'tick', internalType: 'int24', type: 'int24' }], + name: 'ticks', + outputs: [ + { name: 'liquidityGross', internalType: 'uint128', type: 'uint128' }, + { name: 'liquidityNet', internalType: 'int128', type: 'int128' }, + { + name: 'feeGrowthOutside0X128', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'feeGrowthOutside1X128', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'tickCumulativeOutside', internalType: 'int56', type: 'int56' }, + { + name: 'secondsPerLiquidityOutsideX128', + internalType: 'uint160', + type: 'uint160', + }, + { name: 'secondsOutside', internalType: 'uint32', type: 'uint32' }, + { name: 'initialized', internalType: 'bool', type: 'bool' }, + ], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'symbol', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'token0', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'tokenURI', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [], + name: 'token1', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'transferFrom', - outputs: [], - stateMutability: 'nonpayable', + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tickLower', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'tickUpper', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Burn', }, { type: 'event', @@ -4009,68 +4346,154 @@ export const pwnloanAbi = [ indexed: true, }, { - name: 'approved', + name: 'recipient', internalType: 'address', type: 'address', + indexed: false, + }, + { + name: 'tickLower', + internalType: 'int24', + type: 'int24', indexed: true, }, { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', + name: 'tickUpper', + internalType: 'int24', + type: 'int24', indexed: true, }, + { + name: 'amount0', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, ], - name: 'Approval', + name: 'Collect', }, { type: 'event', anonymous: false, inputs: [ { - name: 'owner', + name: 'sender', internalType: 'address', type: 'address', indexed: true, }, { - name: 'operator', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + { + name: 'amount0', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, ], - name: 'ApprovalForAll', + name: 'CollectProtocol', }, { type: 'event', anonymous: false, inputs: [ { - name: 'loanId', + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount0', internalType: 'uint256', type: 'uint256', - indexed: true, + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'paid0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'paid1', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], - name: 'LOANBurned', + name: 'Flash', }, { type: 'event', anonymous: false, inputs: [ { - name: 'loanId', - internalType: 'uint256', - type: 'uint256', - indexed: true, + name: 'observationCardinalityNextOld', + internalType: 'uint16', + type: 'uint16', + indexed: false, }, { - name: 'loanContract', + name: 'observationCardinalityNextNew', + internalType: 'uint16', + type: 'uint16', + indexed: false, + }, + ], + name: 'IncreaseObservationCardinalityNext', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sqrtPriceX96', + internalType: 'uint160', + type: 'uint160', + indexed: false, + }, + { name: 'tick', internalType: 'int24', type: 'int24', indexed: false }, + ], + name: 'Initialize', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', internalType: 'address', type: 'address', - indexed: true, + indexed: false, }, { name: 'owner', @@ -4078,140 +4501,296 @@ export const pwnloanAbi = [ type: 'address', indexed: true, }, + { + name: 'tickLower', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'tickUpper', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'LOANMinted', + name: 'Mint', }, { type: 'event', anonymous: false, inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: true, + name: 'feeProtocol0Old', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol1Old', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol0New', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol1New', + internalType: 'uint8', + type: 'uint8', + indexed: false, }, ], - name: 'Transfer', + name: 'SetFeeProtocol', }, { - type: 'error', - inputs: [{ name: 'tag', internalType: 'bytes32', type: 'bytes32' }], - name: 'CallerMissingHubTag', - }, - { type: 'error', inputs: [], name: 'InvalidLoanContractCaller' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount0', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'sqrtPriceX96', + internalType: 'uint160', + type: 'uint160', + indexed: false, + }, + { + name: 'liquidity', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { name: 'tick', internalType: 'int24', type: 'int24', indexed: false }, + ], + name: 'Swap', + }, + { type: 'error', inputs: [], name: 'AI' }, + { type: 'error', inputs: [], name: 'AS' }, + { type: 'error', inputs: [], name: 'F0' }, + { type: 'error', inputs: [], name: 'F1' }, + { type: 'error', inputs: [], name: 'IIA' }, + { type: 'error', inputs: [], name: 'L' }, + { type: 'error', inputs: [], name: 'LOK' }, + { type: 'error', inputs: [], name: 'M0' }, + { type: 'error', inputs: [], name: 'M1' }, + { type: 'error', inputs: [], name: 'TLM' }, + { type: 'error', inputs: [], name: 'TLU' }, + { type: 'error', inputs: [], name: 'TUM' }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNRevokedNonce +// IUniswapV3PoolActions ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnRevokedNonceAbi = [ +export const iUniswapV3PoolActionsAbi = [ { - type: 'constructor', + type: 'function', inputs: [ - { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_accessTag', internalType: 'bytes32', type: 'bytes32' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + ], + name: 'burn', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, ], stateMutability: 'nonpayable', }, - { - type: 'function', - inputs: [], - name: 'accessTag', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], - name: 'currentNonceSpace', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], - stateMutability: 'view', - }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' }, ], - name: 'isNonceRevoked', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', + name: 'collect', + outputs: [ + { name: 'amount0', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1', internalType: 'uint128', type: 'uint128' }, + ], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, ], - name: 'isNonceUsable', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'nonce', internalType: 'uint256', type: 'uint256' }], - name: 'revokeNonce', + name: 'flash', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { + name: 'observationCardinalityNext', + internalType: 'uint16', + type: 'uint16', + }, ], - name: 'revokeNonce', + name: 'increaseObservationCardinalityNext', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, ], - name: 'revokeNonce', + name: 'initialize', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'mint', + outputs: [ + { name: 'amount0', internalType: 'uint256', type: 'uint256' }, + { name: 'amount1', internalType: 'uint256', type: 'uint256' }, ], - name: 'revokeNonce', - outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'revokeNonceSpace', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'zeroForOne', internalType: 'bool', type: 'bool' }, + { name: 'amountSpecified', internalType: 'int256', type: 'int256' }, + { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'swap', + outputs: [ + { name: 'amount0', internalType: 'int256', type: 'int256' }, + { name: 'amount1', internalType: 'int256', type: 'int256' }, + ], stateMutability: 'nonpayable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IUniswapV3PoolDerivedState +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iUniswapV3PoolDerivedStateAbi = [ { type: 'function', - inputs: [{ name: 'nonces', internalType: 'uint256[]', type: 'uint256[]' }], - name: 'revokeNonces', - outputs: [], - stateMutability: 'nonpayable', + inputs: [ + { name: 'secondsAgos', internalType: 'uint32[]', type: 'uint32[]' }, + ], + name: 'observe', + outputs: [ + { name: 'tickCumulatives', internalType: 'int56[]', type: 'int56[]' }, + { + name: 'secondsPerLiquidityCumulativeX128s', + internalType: 'uint160[]', + type: 'uint160[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tickLower', internalType: 'int24', type: 'int24' }, + { name: 'tickUpper', internalType: 'int24', type: 'int24' }, + ], + name: 'snapshotCumulativesInside', + outputs: [ + { name: 'tickCumulativeInside', internalType: 'int56', type: 'int56' }, + { + name: 'secondsPerLiquidityInsideX128', + internalType: 'uint160', + type: 'uint160', + }, + { name: 'secondsInside', internalType: 'uint32', type: 'uint32' }, + ], + stateMutability: 'view', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IUniswapV3PoolErrors +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iUniswapV3PoolErrorsAbi = [ + { type: 'error', inputs: [], name: 'AI' }, + { type: 'error', inputs: [], name: 'AS' }, + { type: 'error', inputs: [], name: 'F0' }, + { type: 'error', inputs: [], name: 'F1' }, + { type: 'error', inputs: [], name: 'IIA' }, + { type: 'error', inputs: [], name: 'L' }, + { type: 'error', inputs: [], name: 'LOK' }, + { type: 'error', inputs: [], name: 'M0' }, + { type: 'error', inputs: [], name: 'M1' }, + { type: 'error', inputs: [], name: 'TLM' }, + { type: 'error', inputs: [], name: 'TLU' }, + { type: 'error', inputs: [], name: 'TUM' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IUniswapV3PoolEvents +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iUniswapV3PoolEventsAbi = [ { type: 'event', anonymous: false, @@ -4223,19 +4802,37 @@ export const pwnRevokedNonceAbi = [ indexed: true, }, { - name: 'nonceSpace', + name: 'tickLower', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'tickUpper', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', internalType: 'uint256', type: 'uint256', - indexed: true, + indexed: false, }, { - name: 'nonce', + name: 'amount1', internalType: 'uint256', type: 'uint256', - indexed: true, + indexed: false, }, ], - name: 'NonceRevoked', + name: 'Burn', }, { type: 'event', @@ -4248,546 +4845,625 @@ export const pwnRevokedNonceAbi = [ indexed: true, }, { - name: 'nonceSpace', + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tickLower', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'tickUpper', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'amount0', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + ], + name: 'Collect', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount0', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + ], + name: 'CollectProtocol', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount0', internalType: 'uint256', type: 'uint256', - indexed: true, + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'paid0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'paid1', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], - name: 'NonceSpaceRevoked', + name: 'Flash', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'observationCardinalityNextOld', + internalType: 'uint16', + type: 'uint16', + indexed: false, + }, + { + name: 'observationCardinalityNextNew', + internalType: 'uint16', + type: 'uint16', + indexed: false, + }, ], - name: 'AddressMissingHubTag', + name: 'IncreaseObservationCardinalityNext', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { + name: 'sqrtPriceX96', + internalType: 'uint160', + type: 'uint160', + indexed: false, + }, + { name: 'tick', internalType: 'int24', type: 'int24', indexed: false }, ], - name: 'NonceAlreadyRevoked', + name: 'Initialize', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tickLower', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'tickUpper', + internalType: 'int24', + type: 'int24', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'amount0', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'NonceNotUsable', + name: 'Mint', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSignatureChecker -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnSignatureCheckerAbi = [ { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'signer', internalType: 'address', type: 'address' }, - { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'feeProtocol0Old', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol1Old', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol0New', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + { + name: 'feeProtocol1New', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, ], - name: 'InvalidSignature', + name: 'SetFeeProtocol', }, { - type: 'error', - inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], - name: 'InvalidSignatureLength', + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount0', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'amount1', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'sqrtPriceX96', + internalType: 'uint160', + type: 'uint160', + indexed: false, + }, + { + name: 'liquidity', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { name: 'tick', internalType: 'int24', type: 'int24', indexed: false }, + ], + name: 'Swap', }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSignatureCheckerHarness +// IUniswapV3PoolImmutables ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnSignatureCheckerHarnessAbi = [ +export const iUniswapV3PoolImmutablesAbi = [ { type: 'function', - inputs: [ - { name: 'signer', internalType: 'address', type: 'address' }, - { name: 'hash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, - ], - name: 'exposed_isValidSignatureNow', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, - { - type: 'error', - inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], - name: 'InvalidSignatureLength', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoan -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnSimpleLoanAbi = [ - { - type: 'constructor', - inputs: [ - { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_loanToken', internalType: 'address', type: 'address' }, - { name: '_config', internalType: 'address', type: 'address' }, - { name: '_revokedNonce', internalType: 'address', type: 'address' }, - { name: '_categoryRegistry', internalType: 'address', type: 'address' }, - ], - stateMutability: 'nonpayable', - }, { type: 'function', inputs: [], - name: 'ACCRUING_INTEREST_APR_DECIMALS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'fee', + outputs: [{ name: '', internalType: 'uint24', type: 'uint24' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'ACCRUING_INTEREST_APR_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'maxLiquidityPerTick', + outputs: [{ name: '', internalType: 'uint128', type: 'uint128' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'tickSpacing', + outputs: [{ name: '', internalType: 'int24', type: 'int24' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'EXTENSION_PROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'token0', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MAX_ACCRUING_INTEREST_APR', - outputs: [{ name: '', internalType: 'uint40', type: 'uint40' }], + name: 'token1', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IUniswapV3PoolOwnerActions +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iUniswapV3PoolOwnerActionsAbi = [ + { + type: 'function', + inputs: [ + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' }, + ], + name: 'collectProtocol', + outputs: [ + { name: 'amount0', internalType: 'uint128', type: 'uint128' }, + { name: 'amount1', internalType: 'uint128', type: 'uint128' }, + ], + stateMutability: 'nonpayable', + }, { type: 'function', - inputs: [], - name: 'MAX_EXTENSION_DURATION', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + inputs: [ + { name: 'feeProtocol0', internalType: 'uint8', type: 'uint8' }, + { name: 'feeProtocol1', internalType: 'uint8', type: 'uint8' }, + ], + name: 'setFeeProtocol', + outputs: [], + stateMutability: 'nonpayable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IUniswapV3PoolState +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iUniswapV3PoolStateAbi = [ { type: 'function', inputs: [], - name: 'MINUTES_IN_YEAR', + name: 'feeGrowthGlobal0X128', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MIN_EXTENSION_DURATION', + name: 'feeGrowthGlobal1X128', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MIN_LOAN_DURATION', - outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + name: 'liquidity', + outputs: [{ name: '', internalType: 'uint128', type: 'uint128' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'VERSION', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }], + name: 'observations', + outputs: [ + { name: 'blockTimestamp', internalType: 'uint32', type: 'uint32' }, + { name: 'tickCumulative', internalType: 'int56', type: 'int56' }, + { + name: 'secondsPerLiquidityCumulativeX128', + internalType: 'uint160', + type: 'uint160', + }, + { name: 'initialized', internalType: 'bool', type: 'bool' }, + ], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'categoryRegistry', + inputs: [{ name: 'key', internalType: 'bytes32', type: 'bytes32' }], + name: 'positions', outputs: [ + { name: 'liquidity', internalType: 'uint128', type: 'uint128' }, { - name: '', - internalType: 'contract IMultiTokenCategoryRegistry', - type: 'address', + name: 'feeGrowthInside0LastX128', + internalType: 'uint256', + type: 'uint256', }, + { + name: 'feeGrowthInside1LastX128', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'tokensOwed0', internalType: 'uint128', type: 'uint128' }, + { name: 'tokensOwed1', internalType: 'uint128', type: 'uint128' }, ], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - name: 'claimLOAN', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'protocolFees', + outputs: [ + { name: 'token0', internalType: 'uint128', type: 'uint128' }, + { name: 'token1', internalType: 'uint128', type: 'uint128' }, + ], + stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'config', + name: 'slot0', outputs: [ - { name: '', internalType: 'contract PWNConfig', type: 'address' }, + { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' }, + { name: 'tick', internalType: 'int24', type: 'int24' }, + { name: 'observationIndex', internalType: 'uint16', type: 'uint16' }, + { + name: 'observationCardinality', + internalType: 'uint16', + type: 'uint16', + }, + { + name: 'observationCardinalityNext', + internalType: 'uint16', + type: 'uint16', + }, + { name: 'feeProtocol', internalType: 'uint8', type: 'uint8' }, + { name: 'unlocked', internalType: 'bool', type: 'bool' }, ], stateMutability: 'view', }, { type: 'function', - inputs: [ + inputs: [{ name: 'wordPosition', internalType: 'int16', type: 'int16' }], + name: 'tickBitmap', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tick', internalType: 'int24', type: 'int24' }], + name: 'ticks', + outputs: [ + { name: 'liquidityGross', internalType: 'uint128', type: 'uint128' }, + { name: 'liquidityNet', internalType: 'int128', type: 'int128' }, { - name: 'proposalSpec', - internalType: 'struct PWNSimpleLoan.ProposalSpec', - type: 'tuple', - components: [ - { - name: 'proposalContract', - internalType: 'address', - type: 'address', - }, - { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, - { - name: 'proposalInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', - }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, - ], + name: 'feeGrowthOutside0X128', + internalType: 'uint256', + type: 'uint256', }, { - name: 'lenderSpec', - internalType: 'struct PWNSimpleLoan.LenderSpec', - type: 'tuple', - components: [ - { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, - ], + name: 'feeGrowthOutside1X128', + internalType: 'uint256', + type: 'uint256', }, + { name: 'tickCumulativeOutside', internalType: 'int56', type: 'int56' }, { - name: 'callerSpec', - internalType: 'struct PWNSimpleLoan.CallerSpec', - type: 'tuple', - components: [ - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'revokeNonce', internalType: 'bool', type: 'bool' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], + name: 'secondsPerLiquidityOutsideX128', + internalType: 'uint160', + type: 'uint160', }, - { name: 'extra', internalType: 'bytes', type: 'bytes' }, + { name: 'secondsOutside', internalType: 'uint32', type: 'uint32' }, + { name: 'initialized', internalType: 'bool', type: 'bool' }, ], - name: 'createLOAN', - outputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'nonpayable', + stateMutability: 'view', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Initializable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const initializableAbi = [ { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { - name: 'extension', - internalType: 'struct PWNSimpleLoan.ExtensionProposal', - type: 'tuple', - components: [ - { name: 'loanId', internalType: 'uint256', type: 'uint256' }, - { - name: 'compensationAddress', - internalType: 'address', - type: 'address', - }, - { - name: 'compensationAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'duration', internalType: 'uint40', type: 'uint40' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, ], - name: 'extendLOAN', - outputs: [], - stateMutability: 'nonpayable', + name: 'Initialized', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MultiToken +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const multiTokenAbi = [ { type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'extensionProposalsMade', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'CATEGORY_NOT_REGISTERED', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { - name: 'extension', - internalType: 'struct PWNSimpleLoan.ExtensionProposal', - type: 'tuple', - components: [ - { name: 'loanId', internalType: 'uint256', type: 'uint256' }, - { - name: 'compensationAddress', - internalType: 'address', - type: 'address', - }, - { - name: 'compensationAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'duration', internalType: 'uint40', type: 'uint40' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - }, - ], - name: 'getExtensionHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [], + name: 'CRYPTO_KITTIES_INTERFACE_ID', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - name: 'getLOAN', - outputs: [ - { name: 'status', internalType: 'uint8', type: 'uint8' }, - { name: 'startTimestamp', internalType: 'uint40', type: 'uint40' }, - { name: 'defaultTimestamp', internalType: 'uint40', type: 'uint40' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'originalLender', internalType: 'address', type: 'address' }, - { name: 'loanOwner', internalType: 'address', type: 'address' }, - { name: 'accruingInterestAPR', internalType: 'uint24', type: 'uint24' }, - { name: 'fixedInterestAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'originalSourceOfFunds', - internalType: 'address', - type: 'address', - }, - { name: 'repaymentAmount', internalType: 'uint256', type: 'uint256' }, - ], + inputs: [], + name: 'ERC1155_INTERFACE_ID', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { - name: 'lenderSpec', - internalType: 'struct PWNSimpleLoan.LenderSpec', - type: 'tuple', - components: [ - { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, - ], - }, - ], - name: 'getLenderSpecHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'pure', - }, - { - type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'getStateFingerprint', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [], + name: 'ERC20_INTERFACE_ID', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + name: 'ERC721_INTERFACE_ID', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, + { + type: 'error', + inputs: [{ name: 'categoryValue', internalType: 'uint8', type: 'uint8' }], + name: 'UnsupportedCategory', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MultiTokenCategoryRegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const multiTokenCategoryRegistryAbi = [ { type: 'function', - inputs: [ - { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - ], - name: 'isValidAsset', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'CATEGORY_NOT_REGISTERED', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'loanMetadataUri', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - name: 'loanRepaymentAmount', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'loanToken', - outputs: [{ name: '', internalType: 'contract PWNLOAN', type: 'address' }], + name: 'pendingOwner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { - name: 'extension', - internalType: 'struct PWNSimpleLoan.ExtensionProposal', - type: 'tuple', - components: [ - { name: 'loanId', internalType: 'uint256', type: 'uint256' }, - { - name: 'compensationAddress', - internalType: 'address', - type: 'address', - }, - { - name: 'compensationAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'duration', internalType: 'uint40', type: 'uint40' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'category', internalType: 'uint8', type: 'uint8' }, ], - name: 'makeExtensionProposal', + name: 'registerCategoryValue', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155BatchReceived', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'pure', - }, - { - type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, ], - name: 'onERC721Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + name: 'registeredCategoryValue', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], - name: 'repayLOAN', + inputs: [], + name: 'renounceOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'revokedNonce', - outputs: [ - { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, - ], + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'pure', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'loanId', internalType: 'uint256', type: 'uint256' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'loanOwner', internalType: 'address', type: 'address' }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, ], - name: 'tryClaimRepaidLOAN', + name: 'unregisterCategoryValue', outputs: [], stateMutability: 'nonpayable', }, @@ -4796,1865 +5472,1057 @@ export const pwnSimpleLoanAbi = [ anonymous: false, inputs: [ { - name: 'extensionHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - { - name: 'proposer', + name: 'assetAddress', internalType: 'address', type: 'address', indexed: true, }, - { - name: 'proposal', - internalType: 'struct PWNSimpleLoan.ExtensionProposal', - type: 'tuple', - components: [ - { name: 'loanId', internalType: 'uint256', type: 'uint256' }, - { - name: 'compensationAddress', - internalType: 'address', - type: 'address', - }, - { - name: 'compensationAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'duration', internalType: 'uint40', type: 'uint40' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, + { name: 'category', internalType: 'uint8', type: 'uint8', indexed: true }, ], - name: 'ExtensionProposalMade', + name: 'CategoryRegistered', }, { type: 'event', anonymous: false, inputs: [ { - name: 'loanId', - internalType: 'uint256', - type: 'uint256', + name: 'assetAddress', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'defaulted', internalType: 'bool', type: 'bool', indexed: true }, ], - name: 'LOANClaimed', + name: 'CategoryUnregistered', }, { type: 'event', anonymous: false, inputs: [ { - name: 'loanId', - internalType: 'uint256', - type: 'uint256', + name: 'previousOwner', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'proposalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - { - name: 'proposalContract', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'terms', - internalType: 'struct PWNSimpleLoan.Terms', - type: 'tuple', - components: [ - { name: 'lender', internalType: 'address', type: 'address' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'duration', internalType: 'uint32', type: 'uint32' }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'borrowerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - indexed: false, - }, - { - name: 'lenderSpec', - internalType: 'struct PWNSimpleLoan.LenderSpec', - type: 'tuple', - components: [ - { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, - ], - indexed: false, - }, - { name: 'extra', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'LOANCreated', + name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'loanId', - internalType: 'uint256', - type: 'uint256', + name: 'previousOwner', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'originalDefaultTimestamp', - internalType: 'uint40', - type: 'uint40', - indexed: false, - }, - { - name: 'extendedDefaultTimestamp', - internalType: 'uint40', - type: 'uint40', - indexed: false, + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, }, ], - name: 'LOANExtended', + name: 'OwnershipTransferred', }, + { type: 'error', inputs: [], name: 'ReservedCategoryValue' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Ownable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ownableAbi = [ { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'loanId', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - ], - name: 'LOANPaidBack', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'poolAdapter', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'pool', internalType: 'address', type: 'address', indexed: true }, { - name: 'owner', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'PoolSupply', + name: 'OwnershipTransferred', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Ownable2Step +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ownable2StepAbi = [ + { + type: 'function', + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pendingOwner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'poolAdapter', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'pool', internalType: 'address', type: 'address', indexed: true }, { - name: 'owner', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'PoolWithdraw', + name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'origin', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'VaultPull', + name: 'OwnershipTransferred', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Ownable2StepUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ownable2StepUpgradeableAbi = [ + { + type: 'function', + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pendingOwner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'beneficiary', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'VaultPush', + name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'origin', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'beneficiary', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, ], - name: 'VaultPushFrom', + name: 'OwnershipTransferred', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OwnableUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ownableUpgradeableAbi = [ { - type: 'error', - inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'AddressMissingHubTag', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, - { type: 'error', inputs: [], name: 'CallerNotLOANTokenHolder' }, - { type: 'error', inputs: [], name: 'CallerNotVault' }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'expiration', internalType: 'uint256', type: 'uint256' }, - ], - name: 'Expired', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', }, - { type: 'error', inputs: [], name: 'IncompleteTransfer' }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InterestAPROutOfBounds', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, ], - name: 'InvalidDuration', + name: 'Initialized', }, - { type: 'error', inputs: [], name: 'InvalidExtensionCaller' }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'duration', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, ], - name: 'InvalidExtensionDuration', + name: 'OwnershipTransferred', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnConfigAbi = [ + { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { - type: 'error', - inputs: [ - { name: 'allowed', internalType: 'address', type: 'address' }, - { name: 'current', internalType: 'address', type: 'address' }, - ], - name: 'InvalidExtensionSigner', + type: 'function', + inputs: [], + name: 'MAX_FEE', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'bytes32', type: 'bytes32' }, - { name: 'expected', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'InvalidLenderSpecHash', + type: 'function', + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'error', - inputs: [ - { name: 'category', internalType: 'uint8', type: 'uint8' }, - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidMultiTokenAsset', + type: 'function', + inputs: [], + name: 'fee', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'signer', internalType: 'address', type: 'address' }, - { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + type: 'function', + inputs: [], + name: 'feeCollector', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + name: 'getPoolAdapter', + outputs: [ + { name: '', internalType: 'contract IPoolAdapter', type: 'address' }, ], - name: 'InvalidSignature', + stateMutability: 'view', }, { - type: 'error', - inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], - name: 'InvalidSignatureLength', + type: 'function', + inputs: [{ name: 'asset', internalType: 'address', type: 'address' }], + name: 'getStateFingerprintComputer', + outputs: [ + { + name: '', + internalType: 'contract IStateFingerpringComputer', + type: 'address', + }, + ], + stateMutability: 'view', }, { - type: 'error', + type: 'function', inputs: [ - { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_fee', internalType: 'uint16', type: 'uint16' }, + { name: '_feeCollector', internalType: 'address', type: 'address' }, ], - name: 'InvalidSourceOfFunds', + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'error', - inputs: [{ name: 'timestap', internalType: 'uint40', type: 'uint40' }], - name: 'LoanDefaulted', - }, - { type: 'error', inputs: [], name: 'LoanNotAutoclaimable' }, - { type: 'error', inputs: [], name: 'LoanNotRepaid' }, - { type: 'error', inputs: [], name: 'LoanNotRunning' }, - { type: 'error', inputs: [], name: 'LoanRepaid' }, - { type: 'error', inputs: [], name: 'LoanRunning' }, - { type: 'error', inputs: [], name: 'NonExistingLoan' }, - { - type: 'error', + type: 'function', inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], - name: 'NonceNotUsable', + name: 'loanMetadataUri', + outputs: [{ name: 'uri', internalType: 'string', type: 'string' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'currentBorrower', internalType: 'address', type: 'address' }, - { name: 'newBorrower', internalType: 'address', type: 'address' }, - ], - name: 'RefinanceBorrowerMismatch', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, - { type: 'error', inputs: [], name: 'RefinanceCollateralMismatch' }, - { type: 'error', inputs: [], name: 'RefinanceCreditMismatch' }, { - type: 'error', - inputs: [{ name: 'categoryValue', internalType: 'uint8', type: 'uint8' }], - name: 'UnsupportedCategory', + type: 'function', + inputs: [], + name: 'pendingOwner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, - { type: 'error', inputs: [], name: 'UnsupportedTransferFunction' }, { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'VaultTransferSameSourceAndDestination', + type: 'function', + inputs: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { name: 'adapter', internalType: 'address', type: 'address' }, + ], + name: 'registerPoolAdapter', + outputs: [], + stateMutability: 'nonpayable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanDutchAuctionProposal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnSimpleLoanDutchAuctionProposalAbi = [ { - type: 'constructor', + type: 'function', inputs: [ - { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_revokedNonce', internalType: 'address', type: 'address' }, - { name: '_config', internalType: 'address', type: 'address' }, - { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { name: 'asset', internalType: 'address', type: 'address' }, + { name: 'computer', internalType: 'address', type: 'address' }, ], + name: 'registerStateFingerprintComputer', + outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [{ name: 'metadataUri', internalType: 'string', type: 'string' }], + name: 'setDefaultLOANMetadataUri', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [{ name: '_fee', internalType: 'uint16', type: 'uint16' }], + name: 'setFee', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'PROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [ + { name: '_feeCollector', internalType: 'address', type: 'address' }, + ], + name: 'setFeeCollector', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'VERSION', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', + inputs: [ + { name: 'loanContract', internalType: 'address', type: 'address' }, + { name: 'metadataUri', internalType: 'string', type: 'string' }, + ], + name: 'setLOANMetadataUri', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: 'acceptor', internalType: 'address', type: 'address' }, - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, { - name: 'proposalInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', + name: 'newUri', + internalType: 'string', + type: 'string', + indexed: false, }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, ], - name: 'acceptProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + name: 'DefaultLOANMetadataUriUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'loanTerms', - internalType: 'struct PWNSimpleLoan.Terms', - type: 'tuple', - components: [ - { name: 'lender', internalType: 'address', type: 'address' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'duration', internalType: 'uint32', type: 'uint32' }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'borrowerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - ], + name: 'oldFeeCollector', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newFeeCollector', + internalType: 'address', + type: 'address', + indexed: false, }, ], - stateMutability: 'nonpayable', + name: 'FeeCollectorUpdated', }, { - type: 'function', - inputs: [], - name: 'config', - outputs: [ - { name: '', internalType: 'contract PWNConfig', type: 'address' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'oldFee', + internalType: 'uint16', + type: 'uint16', + indexed: false, + }, + { + name: 'newFee', + internalType: 'uint16', + type: 'uint16', + indexed: false, + }, ], - stateMutability: 'view', + name: 'FeeUpdated', }, { - type: 'function', - inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], - name: 'decodeProposalData', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: '', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], + name: 'loanContract', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: '', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', - type: 'tuple', - components: [ - { - name: 'intendedCreditAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'slippage', internalType: 'uint256', type: 'uint256' }, - ], + name: 'newUri', + internalType: 'string', + type: 'string', + indexed: false, }, ], - stateMutability: 'pure', + name: 'LOANMetadataUriUpdated', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: 'proposal', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'proposalValues', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', - type: 'tuple', - components: [ - { - name: 'intendedCreditAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'slippage', internalType: 'uint256', type: 'uint256' }, - ], + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, }, ], - name: 'encodeProposalData', - outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], - stateMutability: 'pure', + name: 'OwnershipTransferStarted', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: 'proposal', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, ], - name: 'getCreditAmount', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'pure', + name: 'OwnershipTransferred', }, { - type: 'function', + type: 'error', inputs: [ - { - name: 'multiproposal', - internalType: 'struct PWNSimpleLoanProposal.Multiproposal', - type: 'tuple', - components: [ - { - name: 'multiproposalMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, + { name: 'computer', internalType: 'address', type: 'address' }, + { name: 'asset', internalType: 'address', type: 'address' }, ], - name: 'getMultiproposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + name: 'InvalidComputerContract', }, { - type: 'function', + type: 'error', inputs: [ - { - name: 'proposal', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, + { name: 'fee', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'getProposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + name: 'InvalidFeeValue', }, + { type: 'error', inputs: [], name: 'ZeroFeeCollector' }, + { type: 'error', inputs: [], name: 'ZeroLoanContract' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNHub +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnHubAbi = [ + { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], - stateMutability: 'view', + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { - name: 'proposal', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, - ], - name: 'makeProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_address', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, ], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'proposalsMade', + name: 'hasTag', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - name: 'revokeNonce', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'revokedNonce', - outputs: [ - { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, - ], + name: 'pendingOwner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'utilizedCredit', - outputs: [ - { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, - ], - stateMutability: 'view', + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + { name: '_hasTag', internalType: 'bool', type: 'bool' }, + ], + name: 'setTag', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_addresses', internalType: 'address[]', type: 'address[]' }, + { name: '_tags', internalType: 'bytes32[]', type: 'bytes32[]' }, + { name: '_hasTag', internalType: 'bool', type: 'bool' }, + ], + name: 'setTags', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, inputs: [ { - name: 'proposalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - { - name: 'proposer', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'proposal', - internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, - { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - indexed: false, + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, }, ], - name: 'ProposalMade', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'AcceptorIsProposer', + name: 'OwnershipTransferStarted', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, ], - name: 'AddressMissingHubTag', - }, - { - type: 'error', - inputs: [{ name: 'current', internalType: 'uint256', type: 'uint256' }], - name: 'AuctionDurationNotInFullMinutes', + name: 'OwnershipTransferred', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'currentTimestamp', internalType: 'uint256', type: 'uint256' }, - { name: 'auctionStart', internalType: 'uint256', type: 'uint256' }, + { + name: '_address', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'hasTag', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'AuctionNotInProgress', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', + name: 'TagSet', }, + { type: 'error', inputs: [], name: 'InvalidInputData' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNLOAN +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnloanAbi = [ { - type: 'error', - inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, - ], - name: 'CallerNotAllowedAcceptor', + type: 'constructor', + inputs: [{ name: '_hub', internalType: 'address', type: 'address' }], + stateMutability: 'nonpayable', }, { - type: 'error', + type: 'function', inputs: [ - { name: 'caller', internalType: 'address', type: 'address' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], - name: 'CallerNotLoanContract', + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'error', - inputs: [ - { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, - { name: 'current', internalType: 'uint32', type: 'uint32' }, - ], - name: 'DefaultDateInPast', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'expiration', internalType: 'uint256', type: 'uint256' }, - ], - name: 'Expired', + type: 'function', + inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidAuctionDuration', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'current', internalType: 'bytes32', type: 'bytes32' }, - { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'InvalidCollateralStateFingerprint', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getStateFingerprint', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'auctionCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'intendedCreditAmount', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'slippage', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidCreditAmount', + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', }, { - type: 'error', + type: 'function', inputs: [ - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, ], - name: 'InvalidCreditAmountRange', + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidRefinancingLoanId', - }, - { - type: 'error', - inputs: [ - { name: 'signer', internalType: 'address', type: 'address' }, - { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'InvalidSignature', - }, - { - type: 'error', - inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], - name: 'InvalidSignatureLength', + type: 'function', + inputs: [], + name: 'lastLoanId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, - { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, { - type: 'error', - inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - name: 'NonceNotUsable', + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'loanContract', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanElasticChainlinkProposal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnSimpleLoanElasticChainlinkProposalAbi = [ { - type: 'constructor', - inputs: [ - { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_revokedNonce', internalType: 'address', type: 'address' }, - { name: '_config', internalType: 'address', type: 'address' }, - { name: '_utilizedCredit', internalType: 'address', type: 'address' }, - { - name: '_chainlinkFeedRegistry', - internalType: 'address', - type: 'address', - }, - { - name: '_l2SequencerUptimeFeed', - internalType: 'address', - type: 'address', - }, - { name: '_weth', internalType: 'address', type: 'address' }, - ], + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'mint', + outputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'LOAN_TO_VALUE_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'MAX_INTERMEDIARY_DENOMINATIONS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [], - name: 'PROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'VERSION', + name: 'symbol', outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'WETH', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'acceptor', internalType: 'address', type: 'address' }, - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, - { - name: 'proposalInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', - }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, - ], - name: 'acceptProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'loanTerms', - internalType: 'struct PWNSimpleLoan.Terms', - type: 'tuple', - components: [ - { name: 'lender', internalType: 'address', type: 'address' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'duration', internalType: 'uint32', type: 'uint32' }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'borrowerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], + name: 'transferFrom', + outputs: [], stateMutability: 'nonpayable', }, { - type: 'function', - inputs: [], - name: 'chainlinkFeedRegistry', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: '', - internalType: 'contract IChainlinkFeedRegistryLike', + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - stateMutability: 'view', + name: 'Approval', }, { - type: 'function', - inputs: [], - name: 'config', - outputs: [ - { name: '', internalType: 'contract PWNConfig', type: 'address' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, ], - stateMutability: 'view', + name: 'ApprovalForAll', }, { - type: 'function', - inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], - name: 'decodeProposalData', - outputs: [ - { - name: '', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, + type: 'event', + anonymous: false, + inputs: [ { - name: '', - internalType: - 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', - type: 'tuple', - components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - ], + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - stateMutability: 'pure', + name: 'LOANBurned', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, { - name: 'proposalValues', - internalType: - 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', - type: 'tuple', - components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - ], + name: 'loanContract', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, }, ], - name: 'encodeProposalData', - outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], - stateMutability: 'pure', + name: 'LOANMinted', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'collateralAddress', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, ], - name: 'getCollateralAmount', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + name: 'Transfer', }, { - type: 'function', + type: 'error', + inputs: [{ name: 'tag', internalType: 'bytes32', type: 'bytes32' }], + name: 'CallerMissingHubTag', + }, + { type: 'error', inputs: [], name: 'InvalidLoanContractCaller' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNRevokedNonce +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnRevokedNonceAbi = [ + { + type: 'constructor', inputs: [ - { - name: 'multiproposal', - internalType: 'struct PWNSimpleLoanProposal.Multiproposal', - type: 'tuple', - components: [ - { - name: 'multiproposalMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_accessTag', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'getMultiproposalHash', + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'accessTag', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, - ], - name: 'getProposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'currentNonceSpace', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { @@ -6666,108 +6534,42 @@ export const pwnSimpleLoanElasticChainlinkProposalAbi = [ }, { type: 'function', - inputs: [], - name: 'l2SequencerUptimeFeed', - outputs: [ - { - name: '', - internalType: 'contract IChainlinkAggregatorLike', - type: 'address', - }, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], + name: 'isNonceRevoked', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, - ], - name: 'makeProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], + name: 'isNonceUsable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'nonce', internalType: 'uint256', type: 'uint256' }], + name: 'revokeNonce', + outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'proposalsMade', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', @@ -6781,121 +6583,72 @@ export const pwnSimpleLoanElasticChainlinkProposalAbi = [ }, { type: 'function', - inputs: [], - name: 'revokedNonce', - outputs: [ - { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - stateMutability: 'view', + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'utilizedCredit', - outputs: [ - { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, - ], - stateMutability: 'view', + name: 'revokeNonceSpace', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'nonces', internalType: 'uint256[]', type: 'uint256[]' }], + name: 'revokeNonces', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { - name: 'proposalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'owner', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'proposer', + name: 'nonceSpace', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'NonceRevoked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - indexed: false, + name: 'nonceSpace', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - name: 'ProposalMade', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'AcceptorIsProposer', + name: 'NonceSpaceRevoked', }, { type: 'error', @@ -6905,305 +6658,175 @@ export const pwnSimpleLoanElasticChainlinkProposalAbi = [ ], name: 'AddressMissingHubTag', }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', - }, - { - type: 'error', - inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, - ], - name: 'CallerNotAllowedAcceptor', - }, - { - type: 'error', - inputs: [ - { name: 'caller', internalType: 'address', type: 'address' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - name: 'CallerNotLoanContract', - }, - { - type: 'error', - inputs: [ - { name: 'feed', internalType: 'address', type: 'address' }, - { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, - ], - name: 'ChainlinkFeedPriceTooOld', - }, - { - type: 'error', - inputs: [ - { name: 'feed', internalType: 'address', type: 'address' }, - { name: 'price', internalType: 'int256', type: 'int256' }, - { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, - ], - name: 'ChainlinkFeedReturnedNegativePrice', - }, - { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, - { - type: 'error', - inputs: [ - { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, - { name: 'current', internalType: 'uint32', type: 'uint32' }, - ], - name: 'DefaultDateInPast', - }, - { - type: 'error', - inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'expiration', internalType: 'uint256', type: 'uint256' }, - ], - name: 'Expired', - }, - { - type: 'error', - inputs: [ - { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, - { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, - ], - name: 'GracePeriodNotOver', - }, { type: 'error', inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - name: 'InsufficientCreditAmount', + name: 'NonceAlreadyRevoked', }, { type: 'error', inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - name: 'IntermediaryDenominationsOutOfBounds', + name: 'NonceNotUsable', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSignatureChecker +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSignatureCheckerAbi = [ { type: 'error', inputs: [ - { name: 'current', internalType: 'bytes32', type: 'bytes32' }, - { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'InvalidCollateralStateFingerprint', + name: 'InvalidSignature', }, { type: 'error', - inputs: [ - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidRefinancingLoanId', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSignatureCheckerHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSignatureCheckerHarnessAbi = [ { - type: 'error', + type: 'function', inputs: [ { name: 'signer', internalType: 'address', type: 'address' }, - { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + { name: 'hash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, ], - name: 'InvalidSignature', + name: 'exposed_isValidSignatureNow', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', }, { type: 'error', inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], name: 'InvalidSignatureLength', }, - { type: 'error', inputs: [], name: 'L2SequencerDown' }, - { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, - { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, - { - type: 'error', - inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - name: 'NonceNotUsable', - }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanElasticChainlinkProposalHarness +// PWNSimpleLoan ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ +export const pwnSimpleLoanAbi = [ { type: 'constructor', inputs: [ { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_loanToken', internalType: 'address', type: 'address' }, { name: '_config', internalType: 'address', type: 'address' }, - { name: '_utilizedCredit', internalType: 'address', type: 'address' }, - { - name: '_chainlinkFeedRegistry', - internalType: 'address', - type: 'address', - }, - { - name: '_l2SequencerUptimeFeed', - internalType: 'address', - type: 'address', - }, - { name: '_weth', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_categoryRegistry', internalType: 'address', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'ACCRUING_INTEREST_APR_DECIMALS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'LOAN_TO_VALUE_DENOMINATOR', + name: 'ACCRUING_INTEREST_APR_DENOMINATOR', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MAX_INTERMEDIARY_DENOMINATIONS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + name: 'EXTENSION_PROPOSAL_TYPEHASH', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'MULTIPROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'MAX_ACCRUING_INTEREST_APR', + outputs: [{ name: '', internalType: 'uint40', type: 'uint40' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'PROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'MAX_EXTENSION_DURATION', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'VERSION', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'MINUTES_IN_YEAR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'WETH', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'MIN_EXTENSION_DURATION', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'acceptor', internalType: 'address', type: 'address' }, - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, - { - name: 'proposalInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', - }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, - ], - name: 'acceptProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'loanTerms', - internalType: 'struct PWNSimpleLoan.Terms', - type: 'tuple', - components: [ - { name: 'lender', internalType: 'address', type: 'address' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'duration', internalType: 'uint32', type: 'uint32' }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'borrowerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, - ], - stateMutability: 'nonpayable', + inputs: [], + name: 'MIN_LOAN_DURATION', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'chainlinkFeedRegistry', + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'categoryRegistry', outputs: [ { name: '', - internalType: 'contract IChainlinkFeedRegistryLike', + internalType: 'contract IMultiTokenCategoryRegistry', type: 'address', }, ], stateMutability: 'view', }, + { + type: 'function', + inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + name: 'claimLOAN', + outputs: [], + stateMutability: 'nonpayable', + }, { type: 'function', inputs: [], @@ -7215,536 +6838,420 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ }, { type: 'function', - inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], - name: 'decodeProposalData', - outputs: [ + inputs: [ { - name: '', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + name: 'proposalSpec', + internalType: 'struct PWNSimpleLoan.ProposalSpec', type: 'tuple', components: [ { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', + name: 'proposalContract', internalType: 'address', type: 'address', }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + name: 'lenderSpec', + internalType: 'struct PWNSimpleLoan.LenderSpec', + type: 'tuple', + components: [ + { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'callerSpec', + internalType: 'struct PWNSimpleLoan.CallerSpec', + type: 'tuple', + components: [ { - name: 'availableCreditLimit', + name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256', }, + { name: 'revokeNonce', internalType: 'bool', type: 'bool' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'extra', internalType: 'bytes', type: 'bytes' }, + ], + name: 'createLOAN', + outputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'extension', + internalType: 'struct PWNSimpleLoan.ExtensionProposal', + type: 'tuple', + components: [ + { name: 'loanId', internalType: 'uint256', type: 'uint256' }, { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', + name: 'compensationAddress', + internalType: 'address', + type: 'address', }, { - name: 'fixedInterestAmount', + name: 'compensationAmount', internalType: 'uint256', type: 'uint256', }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'duration', internalType: 'uint40', type: 'uint40' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, { name: 'proposer', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'extendLOAN', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'extensionProposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'extension', + internalType: 'struct PWNSimpleLoan.ExtensionProposal', + type: 'tuple', + components: [ + { name: 'loanId', internalType: 'uint256', type: 'uint256' }, { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'compensationAddress', + internalType: 'address', + type: 'address', }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, { - name: 'refinancingLoanId', + name: 'compensationAmount', internalType: 'uint256', type: 'uint256', }, + { name: 'duration', internalType: 'uint40', type: 'uint40' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, - { - name: '', - internalType: - 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', - type: 'tuple', - components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, ], }, ], - stateMutability: 'pure', + name: 'getExtensionHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ + inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + name: 'getLOAN', + outputs: [ + { name: 'status', internalType: 'uint8', type: 'uint8' }, + { name: 'startTimestamp', internalType: 'uint40', type: 'uint40' }, + { name: 'defaultTimestamp', internalType: 'uint40', type: 'uint40' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'originalLender', internalType: 'address', type: 'address' }, + { name: 'loanOwner', internalType: 'address', type: 'address' }, + { name: 'accruingInterestAPR', internalType: 'uint24', type: 'uint24' }, + { name: 'fixedInterestAmount', internalType: 'uint256', type: 'uint256' }, { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + name: 'credit', + internalType: 'struct MultiToken.Asset', type: 'tuple', components: [ { - name: 'collateralCategory', + name: 'category', internalType: 'enum MultiToken.Category', type: 'uint8', }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], }, { - name: 'proposalValues', - internalType: - 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', + name: 'originalSourceOfFunds', + internalType: 'address', + type: 'address', + }, + { name: 'repaymentAmount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'lenderSpec', + internalType: 'struct PWNSimpleLoan.LenderSpec', type: 'tuple', components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, ], }, ], - name: 'encodeProposalData', - outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'getLenderSpecHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'pure', }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getStateFingerprint', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, { type: 'function', inputs: [ { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + name: 'asset', + internalType: 'struct MultiToken.Asset', type: 'tuple', components: [ { - name: 'collateralCategory', + name: 'category', internalType: 'enum MultiToken.Category', type: 'uint8', }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'isValidAsset', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'loanMetadataUri', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + name: 'loanRepaymentAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'loanToken', + outputs: [{ name: '', internalType: 'contract PWNLOAN', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'extension', + internalType: 'struct PWNSimpleLoan.ExtensionProposal', + type: 'tuple', + components: [ + { name: 'loanId', internalType: 'uint256', type: 'uint256' }, { - name: 'collateralAddress', + name: 'compensationAddress', internalType: 'address', type: 'address', }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, { - name: 'fixedInterestAmount', + name: 'compensationAmount', internalType: 'uint256', type: 'uint256', }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'duration', internalType: 'uint40', type: 'uint40' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, ], }, ], - name: 'exposed_erc712EncodeProposal', - outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], - stateMutability: 'pure', + name: 'makeExtensionProposal', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [ - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - { name: 'collateralAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'getCollateralAmount', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'pure', }, { type: 'function', inputs: [ - { - name: 'multiproposal', - internalType: 'struct PWNSimpleLoanProposal.Multiproposal', - type: 'tuple', - components: [ - { - name: 'multiproposalMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'getMultiproposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', - type: 'tuple', - components: [ - { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - }, + { name: 'operator', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'getProposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], - stateMutability: 'view', + inputs: [{ name: 'loanId', internalType: 'uint256', type: 'uint256' }], + name: 'repayLOAN', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'l2SequencerUptimeFeed', + name: 'revokedNonce', outputs: [ - { - name: '', - internalType: 'contract IChainlinkAggregatorLike', - type: 'address', - }, + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, ], stateMutability: 'view', }, { type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'loanId', internalType: 'uint256', type: 'uint256' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'loanOwner', internalType: 'address', type: 'address' }, + ], + name: 'tryClaimRepaidLOAN', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, inputs: [ + { + name: 'extensionHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, { name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + internalType: 'struct PWNSimpleLoan.ExtensionProposal', type: 'tuple', components: [ + { name: 'loanId', internalType: 'uint256', type: 'uint256' }, { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', + name: 'compensationAddress', internalType: 'address', type: 'address', }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', - }, { - name: 'fixedInterestAmount', + name: 'compensationAmount', internalType: 'uint256', type: 'uint256', }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'duration', internalType: 'uint40', type: 'uint40' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, { name: 'proposer', internalType: 'address', type: 'address' }, - { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, ], + indexed: false, }, ], - name: 'makeProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, - ], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'proposalsMade', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', + name: 'ExtensionProposalMade', }, { - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - name: 'revokeNonce', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [], - name: 'revokedNonce', - outputs: [ - { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, - ], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'utilizedCredit', - outputs: [ - { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + { + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'defaulted', internalType: 'bool', type: 'bool', indexed: true }, ], - stateMutability: 'view', + name: 'LOANClaimed', }, { type: 'event', anonymous: false, inputs: [ + { + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, { name: 'proposalHash', internalType: 'bytes32', @@ -7752,55 +7259,62 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ indexed: true, }, { - name: 'proposer', + name: 'proposalContract', internalType: 'address', type: 'address', indexed: true, }, { - name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'terms', + internalType: 'struct PWNSimpleLoan.Terms', type: 'tuple', components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, { - name: 'collateralCategory', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'collateralAddress', - internalType: 'address', - type: 'address', - }, - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'checkCollateralStateFingerprint', - internalType: 'bool', - type: 'bool', - }, - { - name: 'collateralStateFingerprint', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'feedIntermediaryDenominations', - internalType: 'address[]', - type: 'address[]', - }, - { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, - { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, - { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'availableCreditLimit', - internalType: 'uint256', - type: 'uint256', + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], }, { - name: 'utilizedCreditId', - internalType: 'bytes32', - type: 'bytes32', + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], }, { name: 'fixedInterestAmount', @@ -7812,105 +7326,257 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ internalType: 'uint24', type: 'uint24', }, - { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, { - name: 'proposerSpecHash', + name: 'borrowerSpecHash', internalType: 'bytes32', type: 'bytes32', }, - { name: 'isOffer', internalType: 'bool', type: 'bool' }, - { - name: 'refinancingLoanId', - internalType: 'uint256', - type: 'uint256', - }, - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, ], indexed: false, }, + { + name: 'lenderSpec', + internalType: 'struct PWNSimpleLoan.LenderSpec', + type: 'tuple', + components: [ + { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + { name: 'extra', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'ProposalMade', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'AcceptorIsProposer', - }, - { - type: 'error', - inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'AddressMissingHubTag', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', + name: 'LOANCreated', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, + { + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'originalDefaultTimestamp', + internalType: 'uint40', + type: 'uint40', + indexed: false, + }, + { + name: 'extendedDefaultTimestamp', + internalType: 'uint40', + type: 'uint40', + indexed: false, + }, ], - name: 'CallerNotAllowedAcceptor', + name: 'LOANExtended', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'caller', internalType: 'address', type: 'address' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, + { + name: 'loanId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, ], - name: 'CallerNotLoanContract', + name: 'LOANPaidBack', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'feed', internalType: 'address', type: 'address' }, - { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'poolAdapter', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'pool', internalType: 'address', type: 'address', indexed: true }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, ], - name: 'ChainlinkFeedPriceTooOld', + name: 'PoolSupply', }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'feed', internalType: 'address', type: 'address' }, - { name: 'price', internalType: 'int256', type: 'int256' }, - { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'poolAdapter', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'pool', internalType: 'address', type: 'address', indexed: true }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, ], - name: 'ChainlinkFeedReturnedNegativePrice', + name: 'PoolWithdraw', }, - { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, { - type: 'error', + type: 'event', + anonymous: false, inputs: [ - { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, - { name: 'current', internalType: 'uint32', type: 'uint32' }, + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'origin', + internalType: 'address', + type: 'address', + indexed: true, + }, ], - name: 'DefaultDateInPast', + name: 'VaultPull', }, { - type: 'error', + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'beneficiary', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'VaultPush', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'origin', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'beneficiary', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'VaultPushFrom', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { type: 'error', inputs: [], name: 'CallerNotLOANTokenHolder' }, + { type: 'error', inputs: [], name: 'CallerNotVault' }, + { + type: 'error', inputs: [ { name: 'current', internalType: 'uint256', type: 'uint256' }, { name: 'expiration', internalType: 'uint256', type: 'uint256' }, ], name: 'Expired', }, + { type: 'error', inputs: [], name: 'IncompleteTransfer' }, { type: 'error', inputs: [ - { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, - { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'GracePeriodNotOver', + name: 'InterestAPROutOfBounds', }, { type: 'error', @@ -7918,30 +7584,42 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ { name: 'current', internalType: 'uint256', type: 'uint256' }, { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'InsufficientCreditAmount', + name: 'InvalidDuration', }, + { type: 'error', inputs: [], name: 'InvalidExtensionCaller' }, { type: 'error', inputs: [ - { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'duration', internalType: 'uint256', type: 'uint256' }, { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'IntermediaryDenominationsOutOfBounds', + name: 'InvalidExtensionDuration', + }, + { + type: 'error', + inputs: [ + { name: 'allowed', internalType: 'address', type: 'address' }, + { name: 'current', internalType: 'address', type: 'address' }, + ], + name: 'InvalidExtensionSigner', }, { type: 'error', inputs: [ { name: 'current', internalType: 'bytes32', type: 'bytes32' }, - { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + { name: 'expected', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'InvalidCollateralStateFingerprint', + name: 'InvalidLenderSpecHash', }, { type: 'error', inputs: [ - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'category', internalType: 'uint8', type: 'uint8' }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'InvalidRefinancingLoanId', + name: 'InvalidMultiTokenAsset', }, { type: 'error', @@ -7956,9 +7634,24 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], name: 'InvalidSignatureLength', }, - { type: 'error', inputs: [], name: 'L2SequencerDown' }, - { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, - { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'sourceOfFunds', internalType: 'address', type: 'address' }, + ], + name: 'InvalidSourceOfFunds', + }, + { + type: 'error', + inputs: [{ name: 'timestap', internalType: 'uint40', type: 'uint40' }], + name: 'LoanDefaulted', + }, + { type: 'error', inputs: [], name: 'LoanNotAutoclaimable' }, + { type: 'error', inputs: [], name: 'LoanNotRepaid' }, + { type: 'error', inputs: [], name: 'LoanNotRunning' }, + { type: 'error', inputs: [], name: 'LoanRepaid' }, + { type: 'error', inputs: [], name: 'LoanRunning' }, + { type: 'error', inputs: [], name: 'NonExistingLoan' }, { type: 'error', inputs: [ @@ -7968,13 +7661,34 @@ export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ ], name: 'NonceNotUsable', }, + { + type: 'error', + inputs: [ + { name: 'currentBorrower', internalType: 'address', type: 'address' }, + { name: 'newBorrower', internalType: 'address', type: 'address' }, + ], + name: 'RefinanceBorrowerMismatch', + }, + { type: 'error', inputs: [], name: 'RefinanceCollateralMismatch' }, + { type: 'error', inputs: [], name: 'RefinanceCreditMismatch' }, + { + type: 'error', + inputs: [{ name: 'categoryValue', internalType: 'uint8', type: 'uint8' }], + name: 'UnsupportedCategory', + }, + { type: 'error', inputs: [], name: 'UnsupportedTransferFunction' }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'VaultTransferSameSourceAndDestination', + }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanElasticProposal +// PWNSimpleLoanDutchAuctionProposal ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnSimpleLoanElasticProposalAbi = [ +export const pwnSimpleLoanDutchAuctionProposalAbi = [ { type: 'constructor', inputs: [ @@ -7985,13 +7699,6 @@ export const pwnSimpleLoanElasticProposalAbi = [ ], stateMutability: 'nonpayable', }, - { - type: 'function', - inputs: [], - name: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', - }, { type: 'function', inputs: [], @@ -8126,7 +7833,7 @@ export const pwnSimpleLoanElasticProposalAbi = [ outputs: [ { name: '', - internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8140,6 +7847,11 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -8151,12 +7863,8 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8178,8 +7886,18 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8199,10 +7917,20 @@ export const pwnSimpleLoanElasticProposalAbi = [ }, { name: '', - internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', type: 'tuple', components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, ], }, ], @@ -8213,7 +7941,7 @@ export const pwnSimpleLoanElasticProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8227,6 +7955,11 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -8238,12 +7971,8 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8265,8 +7994,18 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8286,10 +8025,20 @@ export const pwnSimpleLoanElasticProposalAbi = [ }, { name: 'proposalValues', - internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', type: 'tuple', components: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, ], }, ], @@ -8297,46 +8046,125 @@ export const pwnSimpleLoanElasticProposalAbi = [ outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'pure', }, - { - type: 'function', - inputs: [ - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, - ], - name: 'getCollateralAmount', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'pure', - }, { type: 'function', inputs: [ { - name: 'multiproposal', - internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + name: 'proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { - name: 'multiproposalMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', }, - ], - }, - ], - name: 'getMultiproposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, { type: 'function', inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8350,6 +8178,11 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -8361,12 +8194,8 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8388,8 +8217,18 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8424,7 +8263,7 @@ export const pwnSimpleLoanElasticProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8438,6 +8277,11 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -8449,12 +8293,8 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8476,8 +8316,18 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8555,7 +8405,7 @@ export const pwnSimpleLoanElasticProposalAbi = [ }, { name: 'proposal', - internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8569,6 +8419,11 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -8580,12 +8435,8 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { - name: 'creditPerCollateralUnit', - internalType: 'uint256', - type: 'uint256', - }, { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8607,8 +8458,18 @@ export const pwnSimpleLoanElasticProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8645,16 +8506,21 @@ export const pwnSimpleLoanElasticProposalAbi = [ }, { type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', + inputs: [{ name: 'current', internalType: 'uint256', type: 'uint256' }], + name: 'AuctionDurationNotInFullMinutes', }, { type: 'error', inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, + { name: 'currentTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: 'auctionStart', internalType: 'uint256', type: 'uint256' }, ], - name: 'CallerNotAllowedAcceptor', + name: 'AuctionNotInProgress', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', }, { type: 'error', @@ -8680,13 +8546,20 @@ export const pwnSimpleLoanElasticProposalAbi = [ ], name: 'Expired', }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, { type: 'error', inputs: [ { name: 'current', internalType: 'uint256', type: 'uint256' }, { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'InsufficientCreditAmount', + name: 'InvalidAuctionDuration', }, { type: 'error', @@ -8696,6 +8569,27 @@ export const pwnSimpleLoanElasticProposalAbi = [ ], name: 'InvalidCollateralStateFingerprint', }, + { + type: 'error', + inputs: [ + { name: 'auctionCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidCreditAmountRange', + }, { type: 'error', inputs: [ @@ -8716,7 +8610,6 @@ export const pwnSimpleLoanElasticProposalAbi = [ inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], name: 'InvalidSignatureLength', }, - { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, { type: 'error', @@ -8727,14 +8620,13 @@ export const pwnSimpleLoanElasticProposalAbi = [ ], name: 'NonceNotUsable', }, - { type: 'error', inputs: [], name: 'ZeroCreditPerCollateralUnit' }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanListProposal +// PWNSimpleLoanDutchAuctionProposalHarness ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnSimpleLoanListProposalAbi = [ +export const pwnSimpleLoanDutchAuctionProposalHarnessAbi = [ { type: 'constructor', inputs: [ @@ -8879,7 +8771,7 @@ export const pwnSimpleLoanListProposalAbi = [ outputs: [ { name: '', - internalType: 'struct PWNSimpleLoanListProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8892,11 +8784,7 @@ export const pwnSimpleLoanListProposalAbi = [ internalType: 'address', type: 'address', }, - { - name: 'collateralIdsWhitelistMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { name: 'collateralAmount', internalType: 'uint256', @@ -8913,7 +8801,8 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -8935,8 +8824,18 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -8956,14 +8855,19 @@ export const pwnSimpleLoanListProposalAbi = [ }, { name: '', - internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', type: 'tuple', components: [ - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { - name: 'merkleInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', }, ], }, @@ -8975,7 +8879,7 @@ export const pwnSimpleLoanListProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanListProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -8988,11 +8892,7 @@ export const pwnSimpleLoanListProposalAbi = [ internalType: 'address', type: 'address', }, - { - name: 'collateralIdsWhitelistMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { name: 'collateralAmount', internalType: 'uint256', @@ -9009,7 +8909,8 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -9031,11 +8932,21 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, { - name: 'proposerSpecHash', + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', internalType: 'bytes32', type: 'bytes32', }, @@ -9052,14 +8963,19 @@ export const pwnSimpleLoanListProposalAbi = [ }, { name: 'proposalValues', - internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.ProposalValues', type: 'tuple', components: [ - { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { - name: 'merkleInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', }, ], }, @@ -9068,6 +8984,191 @@ export const pwnSimpleLoanListProposalAbi = [ outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'pure', }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, { type: 'function', inputs: [ @@ -9093,7 +9194,7 @@ export const pwnSimpleLoanListProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanListProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -9106,11 +9207,7 @@ export const pwnSimpleLoanListProposalAbi = [ internalType: 'address', type: 'address', }, - { - name: 'collateralIdsWhitelistMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { name: 'collateralAmount', internalType: 'uint256', @@ -9127,7 +9224,8 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -9149,8 +9247,18 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -9185,7 +9293,7 @@ export const pwnSimpleLoanListProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanListProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -9198,11 +9306,7 @@ export const pwnSimpleLoanListProposalAbi = [ internalType: 'address', type: 'address', }, - { - name: 'collateralIdsWhitelistMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { name: 'collateralAmount', internalType: 'uint256', @@ -9219,7 +9323,8 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -9241,8 +9346,18 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -9320,7 +9435,7 @@ export const pwnSimpleLoanListProposalAbi = [ }, { name: 'proposal', - internalType: 'struct PWNSimpleLoanListProposal.Proposal', + internalType: 'struct PWNSimpleLoanDutchAuctionProposal.Proposal', type: 'tuple', components: [ { @@ -9333,11 +9448,7 @@ export const pwnSimpleLoanListProposalAbi = [ internalType: 'address', type: 'address', }, - { - name: 'collateralIdsWhitelistMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, { name: 'collateralAmount', internalType: 'uint256', @@ -9354,7 +9465,8 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -9376,14 +9488,24 @@ export const pwnSimpleLoanListProposalAbi = [ type: 'uint24', }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, - { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, - { name: 'proposer', internalType: 'address', type: 'address' }, + { name: 'auctionStart', internalType: 'uint40', type: 'uint40' }, + { name: 'auctionDuration', internalType: 'uint40', type: 'uint40' }, { - name: 'proposerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, { name: 'isOffer', internalType: 'bool', type: 'bool' }, { name: 'refinancingLoanId', @@ -9414,16 +9536,21 @@ export const pwnSimpleLoanListProposalAbi = [ }, { type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', + inputs: [{ name: 'current', internalType: 'uint256', type: 'uint256' }], + name: 'AuctionDurationNotInFullMinutes', }, { type: 'error', inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, + { name: 'currentTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: 'auctionStart', internalType: 'uint256', type: 'uint256' }, ], - name: 'CallerNotAllowedAcceptor', + name: 'AuctionNotInProgress', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', }, { type: 'error', @@ -9433,11 +9560,6 @@ export const pwnSimpleLoanListProposalAbi = [ ], name: 'CallerNotLoanContract', }, - { - type: 'error', - inputs: [{ name: 'id', internalType: 'uint256', type: 'uint256' }], - name: 'CollateralIdNotWhitelisted', - }, { type: 'error', inputs: [ @@ -9454,6 +9576,21 @@ export const pwnSimpleLoanListProposalAbi = [ ], name: 'Expired', }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidAuctionDuration', + }, { type: 'error', inputs: [ @@ -9462,6 +9599,27 @@ export const pwnSimpleLoanListProposalAbi = [ ], name: 'InvalidCollateralStateFingerprint', }, + { + type: 'error', + inputs: [ + { name: 'auctionCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'intendedCreditAmount', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'slippage', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'maxCreditAmount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidCreditAmountRange', + }, { type: 'error', inputs: [ @@ -9495,10 +9653,31 @@ export const pwnSimpleLoanListProposalAbi = [ ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanProposal +// PWNSimpleLoanElasticChainlinkProposal ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnSimpleLoanProposalAbi = [ +export const pwnSimpleLoanElasticChainlinkProposalAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkL2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, { type: 'function', inputs: [], @@ -9506,6 +9685,20 @@ export const pwnSimpleLoanProposalAbi = [ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, + { + type: 'function', + inputs: [], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, { type: 'function', inputs: [], @@ -9520,6 +9713,27 @@ export const pwnSimpleLoanProposalAbi = [ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, { type: 'function', inputs: [ @@ -9606,265 +9820,35 @@ export const pwnSimpleLoanProposalAbi = [ { type: 'function', inputs: [], - name: 'config', + name: 'chainlinkFeedRegistry', outputs: [ - { name: '', internalType: 'contract PWNConfig', type: 'address' }, - ], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ { - name: 'multiproposal', - internalType: 'struct PWNSimpleLoanProposal.Multiproposal', - type: 'tuple', - components: [ - { - name: 'multiproposalMerkleRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - ], + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', }, ], - name: 'getMultiproposalHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'proposalsMade', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [ - { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - ], - name: 'revokeNonce', - outputs: [], - stateMutability: 'nonpayable', - }, { type: 'function', inputs: [], - name: 'revokedNonce', + name: 'chainlinkL2SequencerUptimeFeed', outputs: [ - { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + { + name: '', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, ], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'utilizedCredit', + name: 'config', outputs: [ - { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, - ], - stateMutability: 'view', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'AcceptorIsProposer', - }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'CallerIsNotStatedProposer', - }, - { - type: 'error', - inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, - ], - name: 'CallerNotAllowedAcceptor', - }, - { - type: 'error', - inputs: [ - { name: 'caller', internalType: 'address', type: 'address' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, - ], - name: 'CallerNotLoanContract', - }, - { - type: 'error', - inputs: [ - { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, - { name: 'current', internalType: 'uint32', type: 'uint32' }, - ], - name: 'DefaultDateInPast', - }, - { - type: 'error', - inputs: [ - { name: 'current', internalType: 'bytes32', type: 'bytes32' }, - { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'InvalidCollateralStateFingerprint', - }, - { - type: 'error', - inputs: [ - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'InvalidRefinancingLoanId', - }, - { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNSimpleLoanSimpleProposal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnSimpleLoanSimpleProposalAbi = [ - { - type: 'constructor', - inputs: [ - { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_revokedNonce', internalType: 'address', type: 'address' }, - { name: '_config', internalType: 'address', type: 'address' }, - { name: '_utilizedCredit', internalType: 'address', type: 'address' }, - ], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [], - name: 'DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'MULTIPROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'PROPOSAL_TYPEHASH', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'VERSION', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: 'acceptor', internalType: 'address', type: 'address' }, - { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, - { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, - { - name: 'proposalInclusionProof', - internalType: 'bytes32[]', - type: 'bytes32[]', - }, - { name: 'signature', internalType: 'bytes', type: 'bytes' }, - ], - name: 'acceptProposal', - outputs: [ - { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'loanTerms', - internalType: 'struct PWNSimpleLoan.Terms', - type: 'tuple', - components: [ - { name: 'lender', internalType: 'address', type: 'address' }, - { name: 'borrower', internalType: 'address', type: 'address' }, - { name: 'duration', internalType: 'uint32', type: 'uint32' }, - { - name: 'collateral', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'credit', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { - name: 'assetAddress', - internalType: 'address', - type: 'address', - }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - name: 'fixedInterestAmount', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'accruingInterestAPR', - internalType: 'uint24', - type: 'uint24', - }, - { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'borrowerSpecHash', - internalType: 'bytes32', - type: 'bytes32', - }, - ], - }, - ], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [], - name: 'config', - outputs: [ - { name: '', internalType: 'contract PWNConfig', type: 'address' }, + { name: '', internalType: 'contract PWNConfig', type: 'address' }, ], stateMutability: 'view', }, @@ -9875,7 +9859,7 @@ export const pwnSimpleLoanSimpleProposalAbi = [ outputs: [ { name: '', - internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { @@ -9889,11 +9873,6 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -9905,7 +9884,14 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -9928,7 +9914,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -9946,6 +9941,20 @@ export const pwnSimpleLoanSimpleProposalAbi = [ { name: 'loanContract', internalType: 'address', type: 'address' }, ], }, + { + name: '', + internalType: + 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, ], stateMutability: 'pure', }, @@ -9954,7 +9963,7 @@ export const pwnSimpleLoanSimpleProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { @@ -9968,11 +9977,6 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -9984,7 +9988,14 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -10007,7 +10018,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -10025,11 +10045,43 @@ export const pwnSimpleLoanSimpleProposalAbi = [ { name: 'loanContract', internalType: 'address', type: 'address' }, ], }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, ], name: 'encodeProposalData', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'pure', }, + { + type: 'function', + inputs: [ + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'collateralAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCollateralAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, { type: 'function', inputs: [ @@ -10055,7 +10107,7 @@ export const pwnSimpleLoanSimpleProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { @@ -10069,11 +10121,6 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -10085,7 +10132,14 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -10108,7 +10162,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -10143,7 +10206,7 @@ export const pwnSimpleLoanSimpleProposalAbi = [ inputs: [ { name: 'proposal', - internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { @@ -10157,11 +10220,6 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -10173,7 +10231,14 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, { name: 'availableCreditLimit', internalType: 'uint256', @@ -10196,7 +10261,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -10274,7 +10348,7 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'proposal', - internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { @@ -10288,11 +10362,6 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'address', }, { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, - { - name: 'collateralAmount', - internalType: 'uint256', - type: 'uint256', - }, { name: 'checkCollateralStateFingerprint', internalType: 'bool', @@ -10304,9 +10373,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ type: 'bytes32', }, { name: 'creditAddress', internalType: 'address', type: 'address' }, - { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, { - name: 'availableCreditLimit', + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', internalType: 'uint256', type: 'uint256', }, @@ -10327,7 +10403,16 @@ export const pwnSimpleLoanSimpleProposalAbi = [ }, { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, { name: 'expiration', internalType: 'uint40', type: 'uint40' }, - { name: 'allowedAcceptor', internalType: 'address', type: 'address' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, { name: 'proposer', internalType: 'address', type: 'address' }, { name: 'proposerSpecHash', @@ -10370,19 +10455,29 @@ export const pwnSimpleLoanSimpleProposalAbi = [ { type: 'error', inputs: [ - { name: 'current', internalType: 'address', type: 'address' }, - { name: 'allowed', internalType: 'address', type: 'address' }, + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], - name: 'CallerNotAllowedAcceptor', + name: 'CallerNotLoanContract', }, { type: 'error', inputs: [ - { name: 'caller', internalType: 'address', type: 'address' }, - { name: 'loanContract', internalType: 'address', type: 'address' }, + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, ], - name: 'CallerNotLoanContract', + name: 'ChainlinkFeedPriceTooOld', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedReturnedNegativePrice', }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, { type: 'error', inputs: [ @@ -10399,6 +10494,37 @@ export const pwnSimpleLoanSimpleProposalAbi = [ ], name: 'Expired', }, + { + type: 'error', + inputs: [ + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + ], + name: 'GracePeriodNotOver', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, { type: 'error', inputs: [ @@ -10427,6 +10553,8 @@ export const pwnSimpleLoanSimpleProposalAbi = [ inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], name: 'InvalidSignatureLength', }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, { type: 'error', @@ -10440,8390 +10568,22408 @@ export const pwnSimpleLoanSimpleProposalAbi = [ ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNUtilizedCredit +// PWNSimpleLoanElasticChainlinkProposalHarness ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const pwnUtilizedCreditAbi = [ +export const pwnSimpleLoanElasticChainlinkProposalHarnessAbi = [ { type: 'constructor', inputs: [ { name: '_hub', internalType: 'address', type: 'address' }, - { name: '_accessTag', internalType: 'bytes32', type: 'bytes32' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_l2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'accessTag', + name: 'DOMAIN_SEPARATOR', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'hub', - outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'bytes32', type: 'bytes32' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, - ], - name: 'utilizeCredit', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'utilizedCredit', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { - type: 'error', - inputs: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'AddressMissingHubTag', - }, - { - type: 'error', - inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'bytes32', type: 'bytes32' }, - { name: 'utilized', internalType: 'uint256', type: 'uint256' }, - { name: 'limit', internalType: 'uint256', type: 'uint256' }, - ], - name: 'AvailableCreditLimitExceeded', + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PWNVault -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const pwnVaultAbi = [ { type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155BatchReceived', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'pure', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC721Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'pure', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'poolAdapter', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'pool', internalType: 'address', type: 'address', indexed: true }, - { - name: 'owner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, ], - name: 'PoolSupply', - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, { - name: 'asset', - internalType: 'struct MultiToken.Asset', + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', type: 'tuple', components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'poolAdapter', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'pool', internalType: 'address', type: 'address', indexed: true }, - { - name: 'owner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], }, ], - name: 'PoolWithdraw', + stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, - inputs: [ + type: 'function', + inputs: [], + name: 'chainlinkFeedRegistry', + outputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', - type: 'tuple', - components: [ - { - name: 'category', - internalType: 'enum MultiToken.Category', - type: 'uint8', - }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkL2SequencerUptimeFeed', + outputs: [ { - name: 'origin', - internalType: 'address', + name: '', + internalType: 'contract IChainlinkAggregatorLike', type: 'address', - indexed: true, }, ], - name: 'VaultPull', + stateMutability: 'view', }, { - type: 'event', - anonymous: false, - inputs: [ + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', + name: '', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { - name: 'category', + name: 'collateralCategory', internalType: 'enum MultiToken.Category', type: 'uint8', }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], - indexed: false, }, { - name: 'beneficiary', - internalType: 'address', - type: 'address', - indexed: true, + name: '', + internalType: + 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], }, ], - name: 'VaultPush', + stateMutability: 'pure', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ { - name: 'asset', - internalType: 'struct MultiToken.Asset', + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', type: 'tuple', components: [ { - name: 'category', + name: 'collateralCategory', internalType: 'enum MultiToken.Category', type: 'uint8', }, - { name: 'assetAddress', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'origin', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'beneficiary', - internalType: 'address', - type: 'address', - indexed: true, - }, - ], - name: 'VaultPushFrom', - }, - { type: 'error', inputs: [], name: 'IncompleteTransfer' }, - { type: 'error', inputs: [], name: 'UnsupportedTransferFunction' }, - { - type: 'error', - inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], - name: 'VaultTransferSameSourceAndDestination', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Proxy -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const proxyAbi = [ - { type: 'fallback', stateMutability: 'payable' }, - { type: 'receive', stateMutability: 'payable' }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// T1155 -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const t1155Abi = [ - { - type: 'function', - inputs: [ - { name: 'account', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - ], - name: 'balanceOf', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: 'accounts', internalType: 'address[]', type: 'address[]' }, - { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanElasticChainlinkProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, ], - name: 'balanceOfBatch', - outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }], - stateMutability: 'view', + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, ], - name: 'burn', - outputs: [], - stateMutability: 'nonpayable', + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', }, { type: 'function', inputs: [ - { name: 'account', internalType: 'address', type: 'address' }, - { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'collateralAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, ], - name: 'isApprovedForAll', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'getCollateralAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - name: 'mint', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, - { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, ], - name: 'safeBatchTransferFrom', - outputs: [], - stateMutability: 'nonpayable', + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'id', internalType: 'uint256', type: 'uint256' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: 'approved', internalType: 'bool', type: 'bool' }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'setApprovalForAll', - outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - name: 'uri', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], stateMutability: 'view', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'account', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'operator', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, ], - name: 'ApprovalForAll', + stateMutability: 'view', }, { type: 'event', anonymous: false, inputs: [ { - name: 'operator', - internalType: 'address', - type: 'address', + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'ids', - internalType: 'uint256[]', - type: 'uint256[]', - indexed: false, - }, - { - name: 'values', - internalType: 'uint256[]', - type: 'uint256[]', - indexed: false, - }, - ], - name: 'TransferBatch', - }, - { - type: 'event', - anonymous: false, - inputs: [ { - name: 'operator', + name: 'proposer', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, { - name: 'value', - internalType: 'uint256', - type: 'uint256', + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticChainlinkProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], indexed: false, }, ], - name: 'TransferSingle', + name: 'ProposalMade', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: 'value', internalType: 'string', type: 'string', indexed: false }, - { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true }, - ], - name: 'URI', + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// T20 -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const t20Abi = [ { - type: 'function', + type: 'error', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'allowance', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + name: 'AddressMissingHubTag', }, { - type: 'function', + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', inputs: [ - { name: 'spender', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], - name: 'approve', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', + name: 'CallerNotLoanContract', }, { - type: 'function', - inputs: [{ name: 'account', internalType: 'address', type: 'address' }], - name: 'balanceOf', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedPriceTooOld', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, ], - name: 'burn', - outputs: [], - stateMutability: 'nonpayable', + name: 'ChainlinkFeedReturnedNegativePrice', }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, { - type: 'function', - inputs: [], - name: 'decimals', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], - stateMutability: 'view', + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'spender', internalType: 'address', type: 'address' }, - { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, ], - name: 'decreaseAllowance', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', + name: 'Expired', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'spender', internalType: 'address', type: 'address' }, - { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, ], - name: 'increaseAllowance', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', + name: 'GracePeriodNotOver', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'mint', - outputs: [], - stateMutability: 'nonpayable', + name: 'InsufficientCreditAmount', }, { - type: 'function', - inputs: [], - name: 'name', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', }, { - type: 'function', - inputs: [], - name: 'symbol', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', }, { - type: 'function', - inputs: [], - name: 'totalSupply', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, ], - name: 'transfer', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', + name: 'InvalidRefinancingLoanId', }, { - type: 'function', + type: 'error', inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'transferFrom', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', + name: 'InvalidSignature', }, { - type: 'event', - anonymous: false, + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', inputs: [ - { - name: 'owner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'spender', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - ], - name: 'Approval', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - name: 'Transfer', + name: 'NonceNotUsable', }, ] as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// T721 +// PWNSimpleLoanElasticProposal ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -export const t721Abi = [ +export const pwnSimpleLoanElasticProposalAbi = [ { - type: 'function', + type: 'constructor', inputs: [ - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, ], - name: 'approve', - outputs: [], stateMutability: 'nonpayable', }, { type: 'function', - inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], - name: 'balanceOf', + inputs: [], + name: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'burn', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'getApproved', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'operator', internalType: 'address', type: 'address' }, - ], - name: 'isApprovedForAll', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'mint', - outputs: [], - stateMutability: 'nonpayable', - }, { type: 'function', inputs: [], - name: 'name', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'ownerOf', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'operator', internalType: 'address', type: 'address' }, - { name: 'approved', internalType: 'bool', type: 'bool' }, + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, ], - name: 'setApprovalForAll', - outputs: [], stateMutability: 'nonpayable', }, - { - type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, { type: 'function', inputs: [], - name: 'symbol', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], - name: 'tokenURI', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], stateMutability: 'view', }, { type: 'function', - inputs: [ - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'to', internalType: 'address', type: 'address' }, - { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, - ], - name: 'transferFrom', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'owner', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'approved', - internalType: 'address', - type: 'address', - indexed: true, - }, + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - ], - name: 'Approval', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'owner', - internalType: 'address', - type: 'address', - indexed: true, + name: '', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], }, { - name: 'operator', - internalType: 'address', - type: 'address', - indexed: true, + name: '', + internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], }, - { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'ApprovalForAll', + stateMutability: 'pure', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: true, + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], }, - ], - name: 'Transfer', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Test -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const testAbi = [ - { - type: 'function', - inputs: [], - name: 'IS_TEST', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [], - name: 'excludeArtifacts', - outputs: [ { - name: 'excludedArtifacts_', - internalType: 'string[]', - type: 'string[]', + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], }, ], - stateMutability: 'view', + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', }, { type: 'function', - inputs: [], - name: 'excludeContracts', - outputs: [ + inputs: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, { - name: 'excludedContracts_', - internalType: 'address[]', - type: 'address[]', + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', }, ], - stateMutability: 'view', + name: 'getCollateralAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', }, { type: 'function', - inputs: [], - name: 'excludeSenders', - outputs: [ + inputs: [ { - name: 'excludedSenders_', - internalType: 'address[]', - type: 'address[]', + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], }, ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'failed', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [], - name: 'targetArtifactSelectors', - outputs: [ + inputs: [ { - name: 'targetedArtifactSelectors_', - internalType: 'struct StdInvariant.FuzzSelector[]', - type: 'tuple[]', + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', components: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], }, ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'targetArtifacts', - outputs: [ - { - name: 'targetedArtifacts_', - internalType: 'string[]', - type: 'string[]', - }, - ], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'targetContracts', - outputs: [ + inputs: [ { - name: 'targetedContracts_', - internalType: 'address[]', - type: 'address[]', + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], }, ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [], - name: 'targetInterfaces', - outputs: [ - { - name: 'targetedInterfaces_', - internalType: 'struct StdInvariant.FuzzInterface[]', - type: 'tuple[]', - components: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'artifacts', internalType: 'string[]', type: 'string[]' }, - ], - }, + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - stateMutability: 'view', + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', }, { type: 'function', inputs: [], - name: 'targetSelectors', + name: 'revokedNonce', outputs: [ - { - name: 'targetedSelectors_', - internalType: 'struct StdInvariant.FuzzSelector[]', - type: 'tuple[]', - components: [ - { name: 'addr', internalType: 'address', type: 'address' }, - { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, - ], - }, + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, ], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'targetSenders', + name: 'utilizedCredit', outputs: [ - { - name: 'targetedSenders_', - internalType: 'address[]', - type: 'address[]', - }, + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, ], stateMutability: 'view', }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'string', type: 'string', indexed: false }, - ], - name: 'log', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'address', type: 'address', indexed: false }, - ], - name: 'log_address', - }, { type: 'event', anonymous: false, inputs: [ { - name: 'val', - internalType: 'uint256[]', - type: 'uint256[]', - indexed: false, - }, - ], - name: 'log_array', - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, { - name: 'val', - internalType: 'int256[]', - type: 'int256[]', - indexed: false, + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, }, - ], - name: 'log_array', - }, - { - type: 'event', - anonymous: false, - inputs: [ { - name: 'val', - internalType: 'address[]', - type: 'address[]', + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], indexed: false, }, ], - name: 'log_array', + name: 'ProposalMade', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'bytes', type: 'bytes', indexed: false }, - ], - name: 'log_bytes', + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: '', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'log_bytes32', + name: 'AddressMissingHubTag', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'int256', type: 'int256', indexed: false }, - ], - name: 'log_int', + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'address', type: 'address', indexed: false }, + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, ], - name: 'log_named_address', + name: 'CallerNotLoanContract', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { - name: 'val', - internalType: 'uint256[]', - type: 'uint256[]', - indexed: false, - }, + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, ], - name: 'log_named_array', + name: 'DefaultDateInPast', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { - name: 'val', - internalType: 'int256[]', - type: 'int256[]', - indexed: false, - }, + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, ], - name: 'log_named_array', + name: 'Expired', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { - name: 'val', - internalType: 'address[]', - type: 'address[]', - indexed: false, - }, + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, ], - name: 'log_named_array', + name: 'InsufficientCreditAmount', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'acceptorController', internalType: 'address', type: 'address' }, ], - name: 'log_named_bytes', + name: 'InvalidAcceptorController', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'log_named_bytes32', + name: 'InvalidCollateralStateFingerprint', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, - { - name: 'decimals', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, ], - name: 'log_named_decimal_int', + name: 'InvalidRefinancingLoanId', }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, - { - name: 'decimals', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'log_named_decimal_uint', + name: 'InvalidSignature', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, - ], - name: 'log_named_int', + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, { - type: 'event', - anonymous: false, + type: 'error', inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'string', type: 'string', indexed: false }, + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - name: 'log_named_string', + name: 'NonceNotUsable', }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'key', internalType: 'string', type: 'string', indexed: false }, - { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, - ], - name: 'log_named_uint', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'string', type: 'string', indexed: false }, - ], - name: 'log_string', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'uint256', type: 'uint256', indexed: false }, - ], - name: 'log_uint', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: '', internalType: 'bytes', type: 'bytes', indexed: false }, - ], - name: 'logs', - }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// TimelockController -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const timelockControllerAbi = [ + { type: 'error', inputs: [], name: 'ZeroCreditPerCollateralUnit' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanElasticProposalHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanElasticProposalHarnessAbi = [ { type: 'constructor', inputs: [ - { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, - { name: 'proposers', internalType: 'address[]', type: 'address[]' }, - { name: 'executors', internalType: 'address[]', type: 'address[]' }, - { name: 'admin', internalType: 'address', type: 'address' }, + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, ], stateMutability: 'nonpayable', }, - { type: 'receive', stateMutability: 'payable' }, { type: 'function', inputs: [], - name: 'CANCELLER_ROLE', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'DEFAULT_ADMIN_ROLE', + name: 'DOMAIN_SEPARATOR', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'EXECUTOR_ROLE', + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'PROPOSER_ROLE', + name: 'MULTIPROPOSAL_TYPEHASH', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], - name: 'TIMELOCK_ADMIN_ROLE', + name: 'PROPOSAL_TYPEHASH', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'cancel', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'payload', internalType: 'bytes', type: 'bytes' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'execute', - outputs: [], - stateMutability: 'payable', - }, - { - type: 'function', - inputs: [ - { name: 'targets', internalType: 'address[]', type: 'address[]' }, - { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, - { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'executeBatch', - outputs: [], - stateMutability: 'payable', - }, { type: 'function', inputs: [], - name: 'getMinDelay', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'role', internalType: 'bytes32', type: 'bytes32' }], - name: 'getRoleAdmin', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'getTimestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], stateMutability: 'view', }, { type: 'function', inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32' }, - { name: 'account', internalType: 'address', type: 'address' }, - ], - name: 'grantRole', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32' }, - { name: 'account', internalType: 'address', type: 'address' }, + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, ], - name: 'hasRole', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, ], - name: 'hashOperation', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'pure', + stateMutability: 'nonpayable', }, { type: 'function', - inputs: [ - { name: 'targets', internalType: 'address[]', type: 'address[]' }, - { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, - { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, ], - name: 'hashOperationBatch', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - stateMutability: 'pure', - }, - { - type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'isOperation', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'isOperationDone', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'isOperationPending', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', - inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], - name: 'isOperationReady', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', - }, - { - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'uint256[]', type: 'uint256[]' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155BatchReceived', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC1155Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - { name: '', internalType: 'bytes', type: 'bytes' }, - ], - name: 'onERC721Received', - outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32' }, - { name: 'account', internalType: 'address', type: 'address' }, - ], - name: 'renounceRole', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32' }, - { name: 'account', internalType: 'address', type: 'address' }, + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, ], - name: 'revokeRole', - outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'pure', }, { type: 'function', inputs: [ - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - { name: 'delay', internalType: 'uint256', type: 'uint256' }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanElasticProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, ], - name: 'schedule', - outputs: [], - stateMutability: 'nonpayable', + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', }, { type: 'function', inputs: [ - { name: 'targets', internalType: 'address[]', type: 'address[]' }, - { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, - { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, - { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, - { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, - { name: 'delay', internalType: 'uint256', type: 'uint256' }, - ], - name: 'scheduleBatch', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'function', - inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - stateMutability: 'view', + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', }, { type: 'function', - inputs: [{ name: 'newDelay', internalType: 'uint256', type: 'uint256' }], - name: 'updateDelay', - outputs: [], - stateMutability: 'nonpayable', - }, - { - type: 'event', - anonymous: false, inputs: [ - { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { - name: 'index', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'target', - internalType: 'address', - type: 'address', - indexed: false, - }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, { - name: 'value', + name: 'creditPerCollateralUnit', internalType: 'uint256', type: 'uint256', - indexed: false, }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'CallExecuted', + name: 'getCollateralAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, { - name: 'salt', - internalType: 'bytes32', - type: 'bytes32', - indexed: false, + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], }, ], - name: 'CallSalt', + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { - name: 'index', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'target', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'predecessor', - internalType: 'bytes32', - type: 'bytes32', - indexed: false, - }, { - name: 'delay', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], }, ], - name: 'CallScheduled', + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, - ], - name: 'Cancelled', + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ { - name: 'oldDuration', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'newDuration', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], }, ], - name: 'MinDelayChange', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { - name: 'previousAdminRole', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - { - name: 'newAdminRole', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'RoleAdminChanged', + stateMutability: 'nonpayable', }, { - type: 'event', - anonymous: false, - inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { - name: 'account', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: true, - }, - ], - name: 'RoleGranted', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', }, { - type: 'event', - anonymous: false, + type: 'function', inputs: [ - { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, - { - name: 'account', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: true, - }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, ], - name: 'RoleRevoked', + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', }, -] as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// TransparentUpgradeableProxy -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const transparentUpgradeableProxyAbi = [ { - type: 'constructor', - inputs: [ - { name: '_logic', internalType: 'address', type: 'address' }, - { name: 'admin_', internalType: 'address', type: 'address' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, ], - stateMutability: 'payable', + stateMutability: 'view', }, - { type: 'fallback', stateMutability: 'payable' }, - { type: 'receive', stateMutability: 'payable' }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'previousAdmin', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'newAdmin', - internalType: 'address', - type: 'address', - indexed: false, - }, + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, ], - name: 'AdminChanged', + stateMutability: 'view', }, { type: 'event', anonymous: false, inputs: [ { - name: 'beacon', - internalType: 'address', - type: 'address', + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, - ], - name: 'BeaconUpgraded', - }, - { - type: 'event', - anonymous: false, - inputs: [ { - name: 'implementation', + name: 'proposer', internalType: 'address', type: 'address', indexed: true, }, - ], - name: 'Upgraded', - }, -] as const + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanElasticProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'creditPerCollateralUnit', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, + { type: 'error', inputs: [], name: 'ZeroCreditPerCollateralUnit' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanListProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanListProposalAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'merkleInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'merkleInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [{ name: 'id', internalType: 'uint256', type: 'uint256' }], + name: 'CollateralIdNotWhitelisted', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanListProposalHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanListProposalHarnessAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'merkleInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanListProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'merkleInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanListProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { + name: 'collateralIdsWhitelistMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [{ name: 'id', internalType: 'uint256', type: 'uint256' }], + name: 'CollateralIdNotWhitelisted', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanProposalAbi = [ + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanSimpleProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanSimpleProposalAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: 'struct PWNSimpleLoanSimpleProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanSimpleProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanSimpleProposalHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanSimpleProposalHarnessAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: 'struct PWNSimpleLoanSimpleProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: 'struct PWNSimpleLoanSimpleProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanSimpleProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'collateralCategory', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'collateralAddress', + internalType: 'address', + type: 'address', + }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { + name: 'collateralAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'checkCollateralStateFingerprint', + internalType: 'bool', + type: 'bool', + }, + { + name: 'collateralStateFingerprint', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'creditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanUniswapV3LPIndividualProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanUniswapV3LpIndividualProposalAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { name: '_uniswapV3Factory', internalType: 'address', type: 'address' }, + { + name: '_uniswapNFTPositionManager', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkL2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkFeedRegistry', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkL2SequencerUptimeFeed', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapNFTPositionManager', + outputs: [ + { + name: '', + internalType: 'contract INonfungiblePositionManager', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapV3Factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedPriceTooOld', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedReturnedNegativePrice', + }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + ], + name: 'GracePeriodNotOver', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanUniswapV3LPIndividualProposalHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { name: '_uniswapV3Factory', internalType: 'address', type: 'address' }, + { + name: '_uniswapNFTPositionManager', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkL2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkFeedRegistry', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkL2SequencerUptimeFeed', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.ProposalValues', + type: 'tuple', + components: [ + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapNFTPositionManager', + outputs: [ + { + name: '', + internalType: 'contract INonfungiblePositionManager', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapV3Factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: + 'struct PWNSimpleLoanUniswapV3LPIndividualProposal.Proposal', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedPriceTooOld', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedReturnedNegativePrice', + }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + ], + name: 'GracePeriodNotOver', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanUniswapV3LPSetProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanUniswapV3LpSetProposalAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { name: '_uniswapV3Factory', internalType: 'address', type: 'address' }, + { + name: '_uniswapNFTPositionManager', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkL2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkFeedRegistry', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkL2SequencerUptimeFeed', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPSetProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenAIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenBIndex', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanUniswapV3LPSetProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenAIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenBIndex', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapNFTPositionManager', + outputs: [ + { + name: '', + internalType: 'contract INonfungiblePositionManager', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapV3Factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedPriceTooOld', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedReturnedNegativePrice', + }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + ], + name: 'GracePeriodNotOver', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { type: 'error', inputs: [], name: 'InvalidLPTokenPair' }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNSimpleLoanUniswapV3LPSetProposalHarness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_revokedNonce', internalType: 'address', type: 'address' }, + { name: '_config', internalType: 'address', type: 'address' }, + { name: '_utilizedCredit', internalType: 'address', type: 'address' }, + { name: '_uniswapV3Factory', internalType: 'address', type: 'address' }, + { + name: '_uniswapNFTPositionManager', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkFeedRegistry', + internalType: 'address', + type: 'address', + }, + { + name: '_chainlinkL2SequencerUptimeFeed', + internalType: 'address', + type: 'address', + }, + { name: '_weth', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'LOAN_TO_VALUE_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MAX_INTERMEDIARY_DENOMINATIONS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MULTIPROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSAL_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'WETH', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'acceptor', internalType: 'address', type: 'address' }, + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + { name: 'proposalData', internalType: 'bytes', type: 'bytes' }, + { + name: 'proposalInclusionProof', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'acceptProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'loanTerms', + internalType: 'struct PWNSimpleLoan.Terms', + type: 'tuple', + components: [ + { name: 'lender', internalType: 'address', type: 'address' }, + { name: 'borrower', internalType: 'address', type: 'address' }, + { name: 'duration', internalType: 'uint32', type: 'uint32' }, + { + name: 'collateral', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'credit', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { + name: 'assetAddress', + internalType: 'address', + type: 'address', + }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'lenderSpecHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'borrowerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkFeedRegistry', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkFeedRegistryLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'chainlinkL2SequencerUptimeFeed', + outputs: [ + { + name: '', + internalType: 'contract IChainlinkAggregatorLike', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { name: '', internalType: 'contract PWNConfig', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'proposalData', internalType: 'bytes', type: 'bytes' }], + name: 'decodeProposalData', + outputs: [ + { + name: '', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: '', + internalType: + 'struct PWNSimpleLoanUniswapV3LPSetProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenAIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenBIndex', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proposalValues', + internalType: + 'struct PWNSimpleLoanUniswapV3LPSetProposal.ProposalValues', + type: 'tuple', + components: [ + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenAIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'tokenBIndex', internalType: 'uint256', type: 'uint256' }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + ], + }, + ], + name: 'encodeProposalData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'exposed_erc712EncodeProposal', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { name: 'collateralId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getCreditAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'multiproposal', + internalType: 'struct PWNSimpleLoanProposal.Multiproposal', + type: 'tuple', + components: [ + { + name: 'multiproposalMerkleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + name: 'getMultiproposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'getProposalHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + }, + ], + name: 'makeProposal', + outputs: [ + { name: 'proposalHash', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'proposalsMade', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'revokeNonce', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'revokedNonce', + outputs: [ + { name: '', internalType: 'contract PWNRevokedNonce', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapNFTPositionManager', + outputs: [ + { + name: '', + internalType: 'contract INonfungiblePositionManager', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'uniswapV3Factory', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'utilizedCredit', + outputs: [ + { name: '', internalType: 'contract PWNUtilizedCredit', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'proposer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'proposal', + internalType: 'struct PWNSimpleLoanUniswapV3LPSetProposal.Proposal', + type: 'tuple', + components: [ + { + name: 'tokenAAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { + name: 'tokenBAllowlist', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'creditAddress', internalType: 'address', type: 'address' }, + { + name: 'feedIntermediaryDenominations', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'feedInvertFlags', internalType: 'bool[]', type: 'bool[]' }, + { name: 'loanToValue', internalType: 'uint256', type: 'uint256' }, + { name: 'minCreditAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'availableCreditLimit', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'utilizedCreditId', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'fixedInterestAmount', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'accruingInterestAPR', + internalType: 'uint24', + type: 'uint24', + }, + { name: 'durationOrDate', internalType: 'uint32', type: 'uint32' }, + { name: 'expiration', internalType: 'uint40', type: 'uint40' }, + { + name: 'acceptorController', + internalType: 'address', + type: 'address', + }, + { + name: 'acceptorControllerData', + internalType: 'bytes', + type: 'bytes', + }, + { name: 'proposer', internalType: 'address', type: 'address' }, + { + name: 'proposerSpecHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'isOffer', internalType: 'bool', type: 'bool' }, + { + name: 'refinancingLoanId', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: 'ProposalMade', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'AcceptorIsProposer', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'CallerIsNotStatedProposer', + }, + { + type: 'error', + inputs: [ + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'loanContract', internalType: 'address', type: 'address' }, + ], + name: 'CallerNotLoanContract', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedPriceTooOld', + }, + { + type: 'error', + inputs: [ + { name: 'feed', internalType: 'address', type: 'address' }, + { name: 'price', internalType: 'int256', type: 'int256' }, + { name: 'updatedAt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ChainlinkFeedReturnedNegativePrice', + }, + { type: 'error', inputs: [], name: 'ChainlinkInvalidInputLenghts' }, + { + type: 'error', + inputs: [ + { name: 'defaultDate', internalType: 'uint32', type: 'uint32' }, + { name: 'current', internalType: 'uint32', type: 'uint32' }, + ], + name: 'DefaultDateInPast', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'expiration', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Expired', + }, + { + type: 'error', + inputs: [ + { name: 'timeSinceUp', internalType: 'uint256', type: 'uint256' }, + { name: 'gracePeriod', internalType: 'uint256', type: 'uint256' }, + ], + name: 'GracePeriodNotOver', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InsufficientCreditAmount', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'IntermediaryDenominationsOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'acceptorController', internalType: 'address', type: 'address' }, + ], + name: 'InvalidAcceptorController', + }, + { + type: 'error', + inputs: [ + { name: 'current', internalType: 'bytes32', type: 'bytes32' }, + { name: 'proposed', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidCollateralStateFingerprint', + }, + { type: 'error', inputs: [], name: 'InvalidLPTokenPair' }, + { + type: 'error', + inputs: [ + { name: 'refinancingLoanId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'InvalidRefinancingLoanId', + }, + { + type: 'error', + inputs: [ + { name: 'signer', internalType: 'address', type: 'address' }, + { name: 'digest', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidSignature', + }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'InvalidSignatureLength', + }, + { type: 'error', inputs: [], name: 'L2SequencerDown' }, + { type: 'error', inputs: [], name: 'MinCreditAmountNotSet' }, + { type: 'error', inputs: [], name: 'MissingStateFingerprintComputer' }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'nonceSpace', internalType: 'uint256', type: 'uint256' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NonceNotUsable', + }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNUtilizedCredit +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnUtilizedCreditAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_hub', internalType: 'address', type: 'address' }, + { name: '_accessTag', internalType: 'bytes32', type: 'bytes32' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'accessTag', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'hub', + outputs: [{ name: '', internalType: 'contract PWNHub', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'bytes32', type: 'bytes32' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'utilizeCredit', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'utilizedCredit', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'error', + inputs: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'tag', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'AddressMissingHubTag', + }, + { + type: 'error', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'bytes32', type: 'bytes32' }, + { name: 'utilized', internalType: 'uint256', type: 'uint256' }, + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'AvailableCreditLimitExceeded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PWNVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pwnVaultAbi = [ + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'poolAdapter', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'pool', internalType: 'address', type: 'address', indexed: true }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'PoolSupply', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'poolAdapter', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'pool', internalType: 'address', type: 'address', indexed: true }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'PoolWithdraw', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'origin', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'VaultPull', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'beneficiary', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'VaultPush', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'asset', + internalType: 'struct MultiToken.Asset', + type: 'tuple', + components: [ + { + name: 'category', + internalType: 'enum MultiToken.Category', + type: 'uint8', + }, + { name: 'assetAddress', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'origin', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'beneficiary', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'VaultPushFrom', + }, + { type: 'error', inputs: [], name: 'IncompleteTransfer' }, + { type: 'error', inputs: [], name: 'UnsupportedTransferFunction' }, + { + type: 'error', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'VaultTransferSameSourceAndDestination', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Proxy +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const proxyAbi = [ + { type: 'fallback', stateMutability: 'payable' }, + { type: 'receive', stateMutability: 'payable' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// T1155 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const t1155Abi = [ + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'accounts', internalType: 'address[]', type: 'address[]' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'balanceOfBatch', + outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeBatchTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'uri', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'ids', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + { + name: 'values', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + ], + name: 'TransferBatch', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TransferSingle', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'value', internalType: 'string', type: 'string', indexed: false }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true }, + ], + name: 'URI', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// T20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const t20Abi = [ + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'decreaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'increaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Transfer', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// T721 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const t721Abi = [ + { + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Transfer', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Test +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const testAbi = [ + { + type: 'function', + inputs: [], + name: 'IS_TEST', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'excludeArtifacts', + outputs: [ + { + name: 'excludedArtifacts_', + internalType: 'string[]', + type: 'string[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'excludeContracts', + outputs: [ + { + name: 'excludedContracts_', + internalType: 'address[]', + type: 'address[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'excludeSenders', + outputs: [ + { + name: 'excludedSenders_', + internalType: 'address[]', + type: 'address[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'failed', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'targetArtifactSelectors', + outputs: [ + { + name: 'targetedArtifactSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetArtifacts', + outputs: [ + { + name: 'targetedArtifacts_', + internalType: 'string[]', + type: 'string[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetContracts', + outputs: [ + { + name: 'targetedContracts_', + internalType: 'address[]', + type: 'address[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetInterfaces', + outputs: [ + { + name: 'targetedInterfaces_', + internalType: 'struct StdInvariant.FuzzInterface[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'artifacts', internalType: 'string[]', type: 'string[]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetSelectors', + outputs: [ + { + name: 'targetedSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetSenders', + outputs: [ + { + name: 'targetedSenders_', + internalType: 'address[]', + type: 'address[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'log', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'log_address', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'val', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + ], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'val', + internalType: 'int256[]', + type: 'int256[]', + indexed: false, + }, + ], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'val', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'log_bytes', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'log_bytes32', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'int256', type: 'int256', indexed: false }, + ], + name: 'log_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'log_named_address', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { + name: 'val', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { + name: 'val', + internalType: 'int256[]', + type: 'int256[]', + indexed: false, + }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { + name: 'val', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'log_named_bytes', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'log_named_bytes32', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, + { + name: 'decimals', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'log_named_decimal_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'decimals', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'log_named_decimal_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, + ], + name: 'log_named_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'log_named_string', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'log_named_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'log_string', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'log_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'logs', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Tick +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tickAbi = [{ type: 'error', inputs: [], name: 'LO' }] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TickMath +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tickMathAbi = [ + { type: 'error', inputs: [], name: 'R' }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TimelockController +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const timelockControllerAbi = [ + { + type: 'constructor', + inputs: [ + { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, + { name: 'proposers', internalType: 'address[]', type: 'address[]' }, + { name: 'executors', internalType: 'address[]', type: 'address[]' }, + { name: 'admin', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { type: 'receive', stateMutability: 'payable' }, + { + type: 'function', + inputs: [], + name: 'CANCELLER_ROLE', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'DEFAULT_ADMIN_ROLE', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'EXECUTOR_ROLE', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'PROPOSER_ROLE', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'TIMELOCK_ADMIN_ROLE', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'cancel', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'payload', internalType: 'bytes', type: 'bytes' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'execute', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'targets', internalType: 'address[]', type: 'address[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'executeBatch', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'getMinDelay', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'role', internalType: 'bytes32', type: 'bytes32' }], + name: 'getRoleAdmin', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'getTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32' }, + { name: 'account', internalType: 'address', type: 'address' }, + ], + name: 'grantRole', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32' }, + { name: 'account', internalType: 'address', type: 'address' }, + ], + name: 'hasRole', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'hashOperation', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'targets', internalType: 'address[]', type: 'address[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'hashOperationBatch', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'isOperation', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'isOperationDone', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'isOperationPending', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'isOperationReady', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32' }, + { name: 'account', internalType: 'address', type: 'address' }, + ], + name: 'renounceRole', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32' }, + { name: 'account', internalType: 'address', type: 'address' }, + ], + name: 'revokeRole', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + { name: 'delay', internalType: 'uint256', type: 'uint256' }, + ], + name: 'schedule', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'targets', internalType: 'address[]', type: 'address[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, + { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, + { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, + { name: 'delay', internalType: 'uint256', type: 'uint256' }, + ], + name: 'scheduleBatch', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'newDelay', internalType: 'uint256', type: 'uint256' }], + name: 'updateDelay', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'CallExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'salt', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'CallSalt', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'predecessor', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'delay', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'CallScheduled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, + ], + name: 'Cancelled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'oldDuration', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newDuration', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'MinDelayChange', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'previousAdminRole', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'newAdminRole', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RoleAdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'RoleGranted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'RoleRevoked', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TransparentUpgradeableProxy +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const transparentUpgradeableProxyAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_logic', internalType: 'address', type: 'address' }, + { name: 'admin_', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'payable', + }, + { type: 'fallback', stateMutability: 'payable' }, + { type: 'receive', stateMutability: 'payable' }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'beacon', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// UniswapV3Harness +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const uniswapV3HarnessAbi = [ + { + type: 'function', + inputs: [ + { + name: 'config', + internalType: 'struct UniswapV3.Config', + type: 'tuple', + components: [ + { + name: 'positionManager', + internalType: 'contract INonfungiblePositionManager', + type: 'address', + }, + { name: 'factory', internalType: 'address', type: 'address' }, + ], + }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'token0Denominator', internalType: 'bool', type: 'bool' }, + ], + name: 'getLPValue', + outputs: [ + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'denominator', internalType: 'address', type: 'address' }, + ], + stateMutability: 'view', + }, + { type: 'error', inputs: [], name: 'T' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Action +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ + */ +export const readAccessControl = /*#__PURE__*/ createReadContract({ + abi: accessControlAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"DEFAULT_ADMIN_ROLE"` + */ +export const readAccessControlDefaultAdminRole = + /*#__PURE__*/ createReadContract({ + abi: accessControlAbi, + functionName: 'DEFAULT_ADMIN_ROLE', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"getRoleAdmin"` + */ +export const readAccessControlGetRoleAdmin = /*#__PURE__*/ createReadContract({ + abi: accessControlAbi, + functionName: 'getRoleAdmin', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"hasRole"` + */ +export const readAccessControlHasRole = /*#__PURE__*/ createReadContract({ + abi: accessControlAbi, + functionName: 'hasRole', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readAccessControlSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: accessControlAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ + */ +export const writeAccessControl = /*#__PURE__*/ createWriteContract({ + abi: accessControlAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"grantRole"` + */ +export const writeAccessControlGrantRole = /*#__PURE__*/ createWriteContract({ + abi: accessControlAbi, + functionName: 'grantRole', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"renounceRole"` + */ +export const writeAccessControlRenounceRole = /*#__PURE__*/ createWriteContract( + { abi: accessControlAbi, functionName: 'renounceRole' }, +) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"revokeRole"` + */ +export const writeAccessControlRevokeRole = /*#__PURE__*/ createWriteContract({ + abi: accessControlAbi, + functionName: 'revokeRole', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ + */ +export const simulateAccessControl = /*#__PURE__*/ createSimulateContract({ + abi: accessControlAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"grantRole"` + */ +export const simulateAccessControlGrantRole = + /*#__PURE__*/ createSimulateContract({ + abi: accessControlAbi, + functionName: 'grantRole', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"renounceRole"` + */ +export const simulateAccessControlRenounceRole = + /*#__PURE__*/ createSimulateContract({ + abi: accessControlAbi, + functionName: 'renounceRole', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"revokeRole"` + */ +export const simulateAccessControlRevokeRole = + /*#__PURE__*/ createSimulateContract({ + abi: accessControlAbi, + functionName: 'revokeRole', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ + */ +export const watchAccessControlEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: accessControlAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleAdminChanged"` + */ +export const watchAccessControlRoleAdminChangedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: accessControlAbi, + eventName: 'RoleAdminChanged', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleGranted"` + */ +export const watchAccessControlRoleGrantedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: accessControlAbi, + eventName: 'RoleGranted', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleRevoked"` + */ +export const watchAccessControlRoleRevokedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: accessControlAbi, + eventName: 'RoleRevoked', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ + */ +export const readChainlink = /*#__PURE__*/ createReadContract({ + abi: chainlinkAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"ETH"` + */ +export const readChainlinkEth = /*#__PURE__*/ createReadContract({ + abi: chainlinkAbi, + functionName: 'ETH', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"L2_GRACE_PERIOD"` + */ +export const readChainlinkL2GracePeriod = /*#__PURE__*/ createReadContract({ + abi: chainlinkAbi, + functionName: 'L2_GRACE_PERIOD', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"MAX_CHAINLINK_FEED_PRICE_AGE"` + */ +export const readChainlinkMaxChainlinkFeedPriceAge = + /*#__PURE__*/ createReadContract({ + abi: chainlinkAbi, + functionName: 'MAX_CHAINLINK_FEED_PRICE_AGE', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ + */ +export const readChainlinkDenominations = /*#__PURE__*/ createReadContract({ + abi: chainlinkDenominationsAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"BTC"` + */ +export const readChainlinkDenominationsBtc = /*#__PURE__*/ createReadContract({ + abi: chainlinkDenominationsAbi, + functionName: 'BTC', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"ETH"` + */ +export const readChainlinkDenominationsEth = /*#__PURE__*/ createReadContract({ + abi: chainlinkDenominationsAbi, + functionName: 'ETH', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"USD"` + */ +export const readChainlinkDenominationsUsd = /*#__PURE__*/ createReadContract({ + abi: chainlinkDenominationsAbi, + functionName: 'USD', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ + */ +export const readChainlinkHarness = /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"calculatePrice"` + */ +export const readChainlinkHarnessCalculatePrice = + /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'calculatePrice', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"checkSequencerUptime"` + */ +export const readChainlinkHarnessCheckSequencerUptime = + /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'checkSequencerUptime', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"convertDenomination"` + */ +export const readChainlinkHarnessConvertDenomination = + /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'convertDenomination', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"convertPriceDenomination"` + */ +export const readChainlinkHarnessConvertPriceDenomination = + /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'convertPriceDenomination', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"fetchPrice"` + */ +export const readChainlinkHarnessFetchPrice = /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'fetchPrice', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"syncDecimalsUp"` + */ +export const readChainlinkHarnessSyncDecimalsUp = + /*#__PURE__*/ createReadContract({ + abi: chainlinkHarnessAbi, + functionName: 'syncDecimalsUp', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link contextUpgradeableAbi}__ + */ +export const watchContextUpgradeableEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: contextUpgradeableAbi }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link contextUpgradeableAbi}__ and `eventName` set to `"Initialized"` + */ +export const watchContextUpgradeableInitializedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: contextUpgradeableAbi, + eventName: 'Initialized', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link dsTestAbi}__ + */ +export const readDsTest = /*#__PURE__*/ createReadContract({ abi: dsTestAbi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"IS_TEST"` + */ +export const readDsTestIsTest = /*#__PURE__*/ createReadContract({ + abi: dsTestAbi, + functionName: 'IS_TEST', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link dsTestAbi}__ + */ +export const writeDsTest = /*#__PURE__*/ createWriteContract({ abi: dsTestAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"failed"` + */ +export const writeDsTestFailed = /*#__PURE__*/ createWriteContract({ + abi: dsTestAbi, + functionName: 'failed', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link dsTestAbi}__ + */ +export const simulateDsTest = /*#__PURE__*/ createSimulateContract({ + abi: dsTestAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"failed"` + */ +export const simulateDsTestFailed = /*#__PURE__*/ createSimulateContract({ + abi: dsTestAbi, + functionName: 'failed', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ + */ +export const watchDsTestEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log"` + */ +export const watchDsTestLogEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_address"` + */ +export const watchDsTestLogAddressEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_address', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_bytes"` + */ +export const watchDsTestLogBytesEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_bytes', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_bytes32"` + */ +export const watchDsTestLogBytes32Event = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_bytes32', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_int"` + */ +export const watchDsTestLogIntEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_int', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_address"` + */ +export const watchDsTestLogNamedAddressEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_address', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_bytes"` + */ +export const watchDsTestLogNamedBytesEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_bytes', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_bytes32"` + */ +export const watchDsTestLogNamedBytes32Event = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_bytes32', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_decimal_int"` + */ +export const watchDsTestLogNamedDecimalIntEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_decimal_int', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_decimal_uint"` + */ +export const watchDsTestLogNamedDecimalUintEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_decimal_uint', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_int"` + */ +export const watchDsTestLogNamedIntEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_int', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_string"` + */ +export const watchDsTestLogNamedStringEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_string', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_uint"` + */ +export const watchDsTestLogNamedUintEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_named_uint', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_string"` + */ +export const watchDsTestLogStringEvent = /*#__PURE__*/ createWatchContractEvent( + { abi: dsTestAbi, eventName: 'log_string' }, +) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_uint"` + */ +export const watchDsTestLogUintEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'log_uint', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"logs"` + */ +export const watchDsTestLogsEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: dsTestAbi, + eventName: 'logs', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link deploymentsAbi}__ + */ +export const readDeployments = /*#__PURE__*/ createReadContract({ + abi: deploymentsAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link deploymentsAbi}__ and `functionName` set to `"deploymentsSubpath"` + */ +export const readDeploymentsDeploymentsSubpath = + /*#__PURE__*/ createReadContract({ + abi: deploymentsAbi, + functionName: 'deploymentsSubpath', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ + */ +export const writeDummyPoolAdapter = /*#__PURE__*/ createWriteContract({ + abi: dummyPoolAdapterAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"supply"` + */ +export const writeDummyPoolAdapterSupply = /*#__PURE__*/ createWriteContract({ + abi: dummyPoolAdapterAbi, + functionName: 'supply', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + */ +export const writeDummyPoolAdapterWithdraw = /*#__PURE__*/ createWriteContract({ + abi: dummyPoolAdapterAbi, + functionName: 'withdraw', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ + */ +export const simulateDummyPoolAdapter = /*#__PURE__*/ createSimulateContract({ + abi: dummyPoolAdapterAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"supply"` + */ +export const simulateDummyPoolAdapterSupply = + /*#__PURE__*/ createSimulateContract({ + abi: dummyPoolAdapterAbi, + functionName: 'supply', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + */ +export const simulateDummyPoolAdapterWithdraw = + /*#__PURE__*/ createSimulateContract({ + abi: dummyPoolAdapterAbi, + functionName: 'withdraw', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ + */ +export const readErc1155 = /*#__PURE__*/ createReadContract({ abi: erc1155Abi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"balanceOf"` + */ +export const readErc1155BalanceOf = /*#__PURE__*/ createReadContract({ + abi: erc1155Abi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"balanceOfBatch"` + */ +export const readErc1155BalanceOfBatch = /*#__PURE__*/ createReadContract({ + abi: erc1155Abi, + functionName: 'balanceOfBatch', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readErc1155IsApprovedForAll = /*#__PURE__*/ createReadContract({ + abi: erc1155Abi, + functionName: 'isApprovedForAll', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"supportsInterface"` + */ +export const readErc1155SupportsInterface = /*#__PURE__*/ createReadContract({ + abi: erc1155Abi, + functionName: 'supportsInterface', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"uri"` + */ +export const readErc1155Uri = /*#__PURE__*/ createReadContract({ + abi: erc1155Abi, + functionName: 'uri', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ + */ +export const writeErc1155 = /*#__PURE__*/ createWriteContract({ + abi: erc1155Abi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const writeErc1155SafeBatchTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: erc1155Abi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeErc1155SafeTransferFrom = /*#__PURE__*/ createWriteContract({ + abi: erc1155Abi, + functionName: 'safeTransferFrom', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeErc1155SetApprovalForAll = /*#__PURE__*/ createWriteContract({ + abi: erc1155Abi, + functionName: 'setApprovalForAll', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ + */ +export const simulateErc1155 = /*#__PURE__*/ createSimulateContract({ + abi: erc1155Abi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const simulateErc1155SafeBatchTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: erc1155Abi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateErc1155SafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: erc1155Abi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateErc1155SetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: erc1155Abi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ + */ +export const watchErc1155Event = /*#__PURE__*/ createWatchContractEvent({ + abi: erc1155Abi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchErc1155ApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1155Abi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"TransferBatch"` + */ +export const watchErc1155TransferBatchEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1155Abi, + eventName: 'TransferBatch', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"TransferSingle"` + */ +export const watchErc1155TransferSingleEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1155Abi, + eventName: 'TransferSingle', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"URI"` + */ +export const watchErc1155UriEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc1155Abi, + eventName: 'URI', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc165Abi}__ + */ +export const readErc165 = /*#__PURE__*/ createReadContract({ abi: erc165Abi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc165Abi}__ and `functionName` set to `"supportsInterface"` + */ +export const readErc165SupportsInterface = /*#__PURE__*/ createReadContract({ + abi: erc165Abi, + functionName: 'supportsInterface', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ + */ +export const watchErc1967ProxyEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967ProxyAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"AdminChanged"` + */ +export const watchErc1967ProxyAdminChangedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967ProxyAbi, + eventName: 'AdminChanged', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"BeaconUpgraded"` + */ +export const watchErc1967ProxyBeaconUpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967ProxyAbi, + eventName: 'BeaconUpgraded', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"Upgraded"` + */ +export const watchErc1967ProxyUpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967ProxyAbi, + eventName: 'Upgraded', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ + */ +export const watchErc1967UpgradeEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967UpgradeAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"AdminChanged"` + */ +export const watchErc1967UpgradeAdminChangedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967UpgradeAbi, + eventName: 'AdminChanged', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"BeaconUpgraded"` + */ +export const watchErc1967UpgradeBeaconUpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967UpgradeAbi, + eventName: 'BeaconUpgraded', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"Upgraded"` + */ +export const watchErc1967UpgradeUpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc1967UpgradeAbi, + eventName: 'Upgraded', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ + */ +export const readErc20 = /*#__PURE__*/ createReadContract({ abi: erc20Abi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"allowance"` + */ +export const readErc20Allowance = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'allowance', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"balanceOf"` + */ +export const readErc20BalanceOf = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decimals"` + */ +export const readErc20Decimals = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'decimals', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"name"` + */ +export const readErc20Name = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'name', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"symbol"` + */ +export const readErc20Symbol = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'symbol', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"totalSupply"` + */ +export const readErc20TotalSupply = /*#__PURE__*/ createReadContract({ + abi: erc20Abi, + functionName: 'totalSupply', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ + */ +export const writeErc20 = /*#__PURE__*/ createWriteContract({ abi: erc20Abi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"approve"` + */ +export const writeErc20Approve = /*#__PURE__*/ createWriteContract({ + abi: erc20Abi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decreaseAllowance"` + */ +export const writeErc20DecreaseAllowance = /*#__PURE__*/ createWriteContract({ + abi: erc20Abi, + functionName: 'decreaseAllowance', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"increaseAllowance"` + */ +export const writeErc20IncreaseAllowance = /*#__PURE__*/ createWriteContract({ + abi: erc20Abi, + functionName: 'increaseAllowance', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transfer"` + */ +export const writeErc20Transfer = /*#__PURE__*/ createWriteContract({ + abi: erc20Abi, + functionName: 'transfer', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transferFrom"` + */ +export const writeErc20TransferFrom = /*#__PURE__*/ createWriteContract({ + abi: erc20Abi, + functionName: 'transferFrom', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ + */ +export const simulateErc20 = /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"approve"` + */ +export const simulateErc20Approve = /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, + functionName: 'approve', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decreaseAllowance"` + */ +export const simulateErc20DecreaseAllowance = + /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, + functionName: 'decreaseAllowance', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"increaseAllowance"` + */ +export const simulateErc20IncreaseAllowance = + /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, + functionName: 'increaseAllowance', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transfer"` + */ +export const simulateErc20Transfer = /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, + functionName: 'transfer', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateErc20TransferFrom = /*#__PURE__*/ createSimulateContract({ + abi: erc20Abi, + functionName: 'transferFrom', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ + */ +export const watchErc20Event = /*#__PURE__*/ createWatchContractEvent({ + abi: erc20Abi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ and `eventName` set to `"Approval"` + */ +export const watchErc20ApprovalEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc20Abi, + eventName: 'Approval', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ and `eventName` set to `"Transfer"` + */ +export const watchErc20TransferEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc20Abi, + eventName: 'Transfer', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ + */ +export const readErc721 = /*#__PURE__*/ createReadContract({ abi: erc721Abi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"balanceOf"` + */ +export const readErc721BalanceOf = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"getApproved"` + */ +export const readErc721GetApproved = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'getApproved', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readErc721IsApprovedForAll = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'isApprovedForAll', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"name"` + */ +export const readErc721Name = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'name', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"ownerOf"` + */ +export const readErc721OwnerOf = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'ownerOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"supportsInterface"` + */ +export const readErc721SupportsInterface = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'supportsInterface', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"symbol"` + */ +export const readErc721Symbol = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'symbol', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"tokenURI"` + */ +export const readErc721TokenUri = /*#__PURE__*/ createReadContract({ + abi: erc721Abi, + functionName: 'tokenURI', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ + */ +export const writeErc721 = /*#__PURE__*/ createWriteContract({ abi: erc721Abi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"approve"` + */ +export const writeErc721Approve = /*#__PURE__*/ createWriteContract({ + abi: erc721Abi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeErc721SafeTransferFrom = /*#__PURE__*/ createWriteContract({ + abi: erc721Abi, + functionName: 'safeTransferFrom', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeErc721SetApprovalForAll = /*#__PURE__*/ createWriteContract({ + abi: erc721Abi, + functionName: 'setApprovalForAll', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"transferFrom"` + */ +export const writeErc721TransferFrom = /*#__PURE__*/ createWriteContract({ + abi: erc721Abi, + functionName: 'transferFrom', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ + */ +export const simulateErc721 = /*#__PURE__*/ createSimulateContract({ + abi: erc721Abi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"approve"` + */ +export const simulateErc721Approve = /*#__PURE__*/ createSimulateContract({ + abi: erc721Abi, + functionName: 'approve', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateErc721SafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: erc721Abi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateErc721SetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: erc721Abi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateErc721TransferFrom = /*#__PURE__*/ createSimulateContract({ + abi: erc721Abi, + functionName: 'transferFrom', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ + */ +export const watchErc721Event = /*#__PURE__*/ createWatchContractEvent({ + abi: erc721Abi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"Approval"` + */ +export const watchErc721ApprovalEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc721Abi, + eventName: 'Approval', +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchErc721ApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: erc721Abi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"Transfer"` + */ +export const watchErc721TransferEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: erc721Abi, + eventName: 'Transfer', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ + */ +export const writeGnosisSafeLike = /*#__PURE__*/ createWriteContract({ + abi: gnosisSafeLikeAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ and `functionName` set to `"execTransaction"` + */ +export const writeGnosisSafeLikeExecTransaction = + /*#__PURE__*/ createWriteContract({ + abi: gnosisSafeLikeAbi, + functionName: 'execTransaction', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ + */ +export const simulateGnosisSafeLike = /*#__PURE__*/ createSimulateContract({ + abi: gnosisSafeLikeAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ and `functionName` set to `"execTransaction"` + */ +export const simulateGnosisSafeLikeExecTransaction = + /*#__PURE__*/ createSimulateContract({ + abi: gnosisSafeLikeAbi, + functionName: 'execTransaction', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ + */ +export const readIAccessControl = /*#__PURE__*/ createReadContract({ + abi: iAccessControlAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"getRoleAdmin"` + */ +export const readIAccessControlGetRoleAdmin = /*#__PURE__*/ createReadContract({ + abi: iAccessControlAbi, + functionName: 'getRoleAdmin', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"hasRole"` + */ +export const readIAccessControlHasRole = /*#__PURE__*/ createReadContract({ + abi: iAccessControlAbi, + functionName: 'hasRole', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ + */ +export const writeIAccessControl = /*#__PURE__*/ createWriteContract({ + abi: iAccessControlAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"grantRole"` + */ +export const writeIAccessControlGrantRole = /*#__PURE__*/ createWriteContract({ + abi: iAccessControlAbi, + functionName: 'grantRole', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"renounceRole"` + */ +export const writeIAccessControlRenounceRole = + /*#__PURE__*/ createWriteContract({ + abi: iAccessControlAbi, + functionName: 'renounceRole', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"revokeRole"` + */ +export const writeIAccessControlRevokeRole = /*#__PURE__*/ createWriteContract({ + abi: iAccessControlAbi, + functionName: 'revokeRole', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ + */ +export const simulateIAccessControl = /*#__PURE__*/ createSimulateContract({ + abi: iAccessControlAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"grantRole"` + */ +export const simulateIAccessControlGrantRole = + /*#__PURE__*/ createSimulateContract({ + abi: iAccessControlAbi, + functionName: 'grantRole', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"renounceRole"` + */ +export const simulateIAccessControlRenounceRole = + /*#__PURE__*/ createSimulateContract({ + abi: iAccessControlAbi, + functionName: 'renounceRole', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"revokeRole"` + */ +export const simulateIAccessControlRevokeRole = + /*#__PURE__*/ createSimulateContract({ + abi: iAccessControlAbi, + functionName: 'revokeRole', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ + */ +export const watchIAccessControlEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: iAccessControlAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleAdminChanged"` + */ +export const watchIAccessControlRoleAdminChangedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iAccessControlAbi, + eventName: 'RoleAdminChanged', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleGranted"` + */ +export const watchIAccessControlRoleGrantedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iAccessControlAbi, + eventName: 'RoleGranted', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleRevoked"` + */ +export const watchIAccessControlRoleRevokedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iAccessControlAbi, + eventName: 'RoleRevoked', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iBeaconAbi}__ + */ +export const readIBeacon = /*#__PURE__*/ createReadContract({ abi: iBeaconAbi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iBeaconAbi}__ and `functionName` set to `"implementation"` + */ +export const readIBeaconImplementation = /*#__PURE__*/ createReadContract({ + abi: iBeaconAbi, + functionName: 'implementation', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ + */ +export const readIChainlinkAggregatorLike = /*#__PURE__*/ createReadContract({ + abi: iChainlinkAggregatorLikeAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"decimals"` + */ +export const readIChainlinkAggregatorLikeDecimals = + /*#__PURE__*/ createReadContract({ + abi: iChainlinkAggregatorLikeAbi, + functionName: 'decimals', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"description"` + */ +export const readIChainlinkAggregatorLikeDescription = + /*#__PURE__*/ createReadContract({ + abi: iChainlinkAggregatorLikeAbi, + functionName: 'description', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"latestRoundData"` + */ +export const readIChainlinkAggregatorLikeLatestRoundData = + /*#__PURE__*/ createReadContract({ + abi: iChainlinkAggregatorLikeAbi, + functionName: 'latestRoundData', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + */ +export const readIChainlinkFeedRegistryLike = /*#__PURE__*/ createReadContract({ + abi: iChainlinkFeedRegistryLikeAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"getFeed"` + */ +export const readIChainlinkFeedRegistryLikeGetFeed = + /*#__PURE__*/ createReadContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'getFeed', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + */ +export const writeIChainlinkFeedRegistryLike = + /*#__PURE__*/ createWriteContract({ abi: iChainlinkFeedRegistryLikeAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"acceptOwnership"` + */ +export const writeIChainlinkFeedRegistryLikeAcceptOwnership = + /*#__PURE__*/ createWriteContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'acceptOwnership', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"confirmFeed"` + */ +export const writeIChainlinkFeedRegistryLikeConfirmFeed = + /*#__PURE__*/ createWriteContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'confirmFeed', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"proposeFeed"` + */ +export const writeIChainlinkFeedRegistryLikeProposeFeed = + /*#__PURE__*/ createWriteContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'proposeFeed', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"transferOwnership"` + */ +export const writeIChainlinkFeedRegistryLikeTransferOwnership = + /*#__PURE__*/ createWriteContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + */ +export const simulateIChainlinkFeedRegistryLike = + /*#__PURE__*/ createSimulateContract({ abi: iChainlinkFeedRegistryLikeAbi }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"acceptOwnership"` + */ +export const simulateIChainlinkFeedRegistryLikeAcceptOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'acceptOwnership', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"confirmFeed"` + */ +export const simulateIChainlinkFeedRegistryLikeConfirmFeed = + /*#__PURE__*/ createSimulateContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'confirmFeed', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"proposeFeed"` + */ +export const simulateIChainlinkFeedRegistryLikeProposeFeed = + /*#__PURE__*/ createSimulateContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'proposeFeed', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"transferOwnership"` + */ +export const simulateIChainlinkFeedRegistryLikeTransferOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: iChainlinkFeedRegistryLikeAbi, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + */ +export const readICryptoKitties = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readICryptoKittiesBalanceOf = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"name"` + */ +export const readICryptoKittiesName = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'name', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"ownerOf"` + */ +export const readICryptoKittiesOwnerOf = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'ownerOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readICryptoKittiesSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"symbol"` + */ +export const readICryptoKittiesSymbol = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'symbol', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"tokenMetadata"` + */ +export const readICryptoKittiesTokenMetadata = /*#__PURE__*/ createReadContract( + { abi: iCryptoKittiesAbi, functionName: 'tokenMetadata' }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"tokensOfOwner"` + */ +export const readICryptoKittiesTokensOfOwner = /*#__PURE__*/ createReadContract( + { abi: iCryptoKittiesAbi, functionName: 'tokensOfOwner' }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"totalSupply"` + */ +export const readICryptoKittiesTotalSupply = /*#__PURE__*/ createReadContract({ + abi: iCryptoKittiesAbi, + functionName: 'totalSupply', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + */ +export const writeICryptoKitties = /*#__PURE__*/ createWriteContract({ + abi: iCryptoKittiesAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"approve"` + */ +export const writeICryptoKittiesApprove = /*#__PURE__*/ createWriteContract({ + abi: iCryptoKittiesAbi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transfer"` + */ +export const writeICryptoKittiesTransfer = /*#__PURE__*/ createWriteContract({ + abi: iCryptoKittiesAbi, + functionName: 'transfer', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeICryptoKittiesTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: iCryptoKittiesAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + */ +export const simulateICryptoKitties = /*#__PURE__*/ createSimulateContract({ + abi: iCryptoKittiesAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"approve"` + */ +export const simulateICryptoKittiesApprove = + /*#__PURE__*/ createSimulateContract({ + abi: iCryptoKittiesAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transfer"` + */ +export const simulateICryptoKittiesTransfer = + /*#__PURE__*/ createSimulateContract({ + abi: iCryptoKittiesAbi, + functionName: 'transfer', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateICryptoKittiesTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: iCryptoKittiesAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + */ +export const watchICryptoKittiesEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: iCryptoKittiesAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `eventName` set to `"Approval"` + */ +export const watchICryptoKittiesApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iCryptoKittiesAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchICryptoKittiesTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iCryptoKittiesAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ + */ +export const readIerc1155 = /*#__PURE__*/ createReadContract({ + abi: ierc1155Abi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc1155BalanceOf = /*#__PURE__*/ createReadContract({ + abi: ierc1155Abi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"balanceOfBatch"` + */ +export const readIerc1155BalanceOfBatch = /*#__PURE__*/ createReadContract({ + abi: ierc1155Abi, + functionName: 'balanceOfBatch', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readIerc1155IsApprovedForAll = /*#__PURE__*/ createReadContract({ + abi: ierc1155Abi, + functionName: 'isApprovedForAll', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc1155SupportsInterface = /*#__PURE__*/ createReadContract({ + abi: ierc1155Abi, + functionName: 'supportsInterface', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ + */ +export const writeIerc1155 = /*#__PURE__*/ createWriteContract({ + abi: ierc1155Abi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const writeIerc1155SafeBatchTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155Abi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeIerc1155SafeTransferFrom = /*#__PURE__*/ createWriteContract({ + abi: ierc1155Abi, + functionName: 'safeTransferFrom', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeIerc1155SetApprovalForAll = /*#__PURE__*/ createWriteContract( + { abi: ierc1155Abi, functionName: 'setApprovalForAll' }, +) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ + */ +export const simulateIerc1155 = /*#__PURE__*/ createSimulateContract({ + abi: ierc1155Abi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const simulateIerc1155SafeBatchTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155Abi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateIerc1155SafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155Abi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateIerc1155SetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155Abi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ + */ +export const watchIerc1155Event = /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155Abi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchIerc1155ApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155Abi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"TransferBatch"` + */ +export const watchIerc1155TransferBatchEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155Abi, + eventName: 'TransferBatch', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"TransferSingle"` + */ +export const watchIerc1155TransferSingleEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155Abi, + eventName: 'TransferSingle', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"URI"` + */ +export const watchIerc1155UriEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155Abi, + eventName: 'URI', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + */ +export const readIerc1155MetadataUri = /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc1155MetadataUriBalanceOf = + /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'balanceOf', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"balanceOfBatch"` + */ +export const readIerc1155MetadataUriBalanceOfBatch = + /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'balanceOfBatch', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readIerc1155MetadataUriIsApprovedForAll = + /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc1155MetadataUriSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"uri"` + */ +export const readIerc1155MetadataUriUri = /*#__PURE__*/ createReadContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'uri', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + */ +export const writeIerc1155MetadataUri = /*#__PURE__*/ createWriteContract({ + abi: ierc1155MetadataUriAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const writeIerc1155MetadataUriSafeBatchTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeIerc1155MetadataUriSafeTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeIerc1155MetadataUriSetApprovalForAll = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + */ +export const simulateIerc1155MetadataUri = /*#__PURE__*/ createSimulateContract( + { abi: ierc1155MetadataUriAbi }, +) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + */ +export const simulateIerc1155MetadataUriSafeBatchTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateIerc1155MetadataUriSafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateIerc1155MetadataUriSetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155MetadataUriAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + */ +export const watchIerc1155MetadataUriEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: ierc1155MetadataUriAbi }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchIerc1155MetadataUriApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155MetadataUriAbi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"TransferBatch"` + */ +export const watchIerc1155MetadataUriTransferBatchEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155MetadataUriAbi, + eventName: 'TransferBatch', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"TransferSingle"` + */ +export const watchIerc1155MetadataUriTransferSingleEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155MetadataUriAbi, + eventName: 'TransferSingle', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"URI"` + */ +export const watchIerc1155MetadataUriUriEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1155MetadataUriAbi, + eventName: 'URI', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + */ +export const readIerc1155Receiver = /*#__PURE__*/ createReadContract({ + abi: ierc1155ReceiverAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc1155ReceiverSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: ierc1155ReceiverAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + */ +export const writeIerc1155Receiver = /*#__PURE__*/ createWriteContract({ + abi: ierc1155ReceiverAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + */ +export const writeIerc1155ReceiverOnErc1155BatchReceived = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155ReceiverAbi, + functionName: 'onERC1155BatchReceived', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155Received"` + */ +export const writeIerc1155ReceiverOnErc1155Received = + /*#__PURE__*/ createWriteContract({ + abi: ierc1155ReceiverAbi, + functionName: 'onERC1155Received', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + */ +export const simulateIerc1155Receiver = /*#__PURE__*/ createSimulateContract({ + abi: ierc1155ReceiverAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + */ +export const simulateIerc1155ReceiverOnErc1155BatchReceived = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155ReceiverAbi, + functionName: 'onERC1155BatchReceived', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155Received"` + */ +export const simulateIerc1155ReceiverOnErc1155Received = + /*#__PURE__*/ createSimulateContract({ + abi: ierc1155ReceiverAbi, + functionName: 'onERC1155Received', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1271Abi}__ + */ +export const readIerc1271 = /*#__PURE__*/ createReadContract({ + abi: ierc1271Abi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1271Abi}__ and `functionName` set to `"isValidSignature"` + */ +export const readIerc1271IsValidSignature = /*#__PURE__*/ createReadContract({ + abi: ierc1271Abi, + functionName: 'isValidSignature', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1822ProxiableAbi}__ + */ +export const readIerc1822Proxiable = /*#__PURE__*/ createReadContract({ + abi: ierc1822ProxiableAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1822ProxiableAbi}__ and `functionName` set to `"proxiableUUID"` + */ +export const readIerc1822ProxiableProxiableUuid = + /*#__PURE__*/ createReadContract({ + abi: ierc1822ProxiableAbi, + functionName: 'proxiableUUID', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ + */ +export const watchIerc1967Event = /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1967Abi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"AdminChanged"` + */ +export const watchIerc1967AdminChangedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1967Abi, + eventName: 'AdminChanged', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"BeaconUpgraded"` + */ +export const watchIerc1967BeaconUpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1967Abi, + eventName: 'BeaconUpgraded', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"Upgraded"` + */ +export const watchIerc1967UpgradedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc1967Abi, + eventName: 'Upgraded', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + */ +export const readIerc20Metadata = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"allowance"` + */ +export const readIerc20MetadataAllowance = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'allowance', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc20MetadataBalanceOf = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"decimals"` + */ +export const readIerc20MetadataDecimals = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'decimals', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"name"` + */ +export const readIerc20MetadataName = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'name', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"symbol"` + */ +export const readIerc20MetadataSymbol = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'symbol', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"totalSupply"` + */ +export const readIerc20MetadataTotalSupply = /*#__PURE__*/ createReadContract({ + abi: ierc20MetadataAbi, + functionName: 'totalSupply', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + */ +export const writeIerc20Metadata = /*#__PURE__*/ createWriteContract({ + abi: ierc20MetadataAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"approve"` + */ +export const writeIerc20MetadataApprove = /*#__PURE__*/ createWriteContract({ + abi: ierc20MetadataAbi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transfer"` + */ +export const writeIerc20MetadataTransfer = /*#__PURE__*/ createWriteContract({ + abi: ierc20MetadataAbi, + functionName: 'transfer', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeIerc20MetadataTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc20MetadataAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + */ +export const simulateIerc20Metadata = /*#__PURE__*/ createSimulateContract({ + abi: ierc20MetadataAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"approve"` + */ +export const simulateIerc20MetadataApprove = + /*#__PURE__*/ createSimulateContract({ + abi: ierc20MetadataAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transfer"` + */ +export const simulateIerc20MetadataTransfer = + /*#__PURE__*/ createSimulateContract({ + abi: ierc20MetadataAbi, + functionName: 'transfer', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateIerc20MetadataTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc20MetadataAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ + */ +export const watchIerc20MetadataEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: ierc20MetadataAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `eventName` set to `"Approval"` + */ +export const watchIerc20MetadataApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc20MetadataAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchIerc20MetadataTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc20MetadataAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + */ +export const readIerc20Permit = /*#__PURE__*/ createReadContract({ + abi: ierc20PermitAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + */ +export const readIerc20PermitDomainSeparator = /*#__PURE__*/ createReadContract( + { abi: ierc20PermitAbi, functionName: 'DOMAIN_SEPARATOR' }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"nonces"` + */ +export const readIerc20PermitNonces = /*#__PURE__*/ createReadContract({ + abi: ierc20PermitAbi, + functionName: 'nonces', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + */ +export const writeIerc20Permit = /*#__PURE__*/ createWriteContract({ + abi: ierc20PermitAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"permit"` + */ +export const writeIerc20PermitPermit = /*#__PURE__*/ createWriteContract({ + abi: ierc20PermitAbi, + functionName: 'permit', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + */ +export const simulateIerc20Permit = /*#__PURE__*/ createSimulateContract({ + abi: ierc20PermitAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"permit"` + */ +export const simulateIerc20PermitPermit = /*#__PURE__*/ createSimulateContract({ + abi: ierc20PermitAbi, + functionName: 'permit', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc5646Abi}__ + */ +export const readIerc5646 = /*#__PURE__*/ createReadContract({ + abi: ierc5646Abi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc5646Abi}__ and `functionName` set to `"getStateFingerprint"` + */ +export const readIerc5646GetStateFingerprint = /*#__PURE__*/ createReadContract( + { abi: ierc5646Abi, functionName: 'getStateFingerprint' }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ + */ +export const readIerc721Enumerable = /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc721EnumerableBalanceOf = /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"getApproved"` + */ +export const readIerc721EnumerableGetApproved = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'getApproved', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readIerc721EnumerableIsApprovedForAll = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"ownerOf"` + */ +export const readIerc721EnumerableOwnerOf = /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'ownerOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc721EnumerableSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"tokenByIndex"` + */ +export const readIerc721EnumerableTokenByIndex = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'tokenByIndex', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"tokenOfOwnerByIndex"` + */ +export const readIerc721EnumerableTokenOfOwnerByIndex = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'tokenOfOwnerByIndex', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"totalSupply"` + */ +export const readIerc721EnumerableTotalSupply = + /*#__PURE__*/ createReadContract({ + abi: ierc721EnumerableAbi, + functionName: 'totalSupply', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ + */ +export const writeIerc721Enumerable = /*#__PURE__*/ createWriteContract({ + abi: ierc721EnumerableAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"approve"` + */ +export const writeIerc721EnumerableApprove = /*#__PURE__*/ createWriteContract({ + abi: ierc721EnumerableAbi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeIerc721EnumerableSafeTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc721EnumerableAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeIerc721EnumerableSetApprovalForAll = + /*#__PURE__*/ createWriteContract({ + abi: ierc721EnumerableAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeIerc721EnumerableTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc721EnumerableAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ + */ +export const simulateIerc721Enumerable = /*#__PURE__*/ createSimulateContract({ + abi: ierc721EnumerableAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"approve"` + */ +export const simulateIerc721EnumerableApprove = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721EnumerableAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateIerc721EnumerableSafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721EnumerableAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateIerc721EnumerableSetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721EnumerableAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateIerc721EnumerableTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721EnumerableAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721EnumerableAbi}__ + */ +export const watchIerc721EnumerableEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: ierc721EnumerableAbi }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `eventName` set to `"Approval"` + */ +export const watchIerc721EnumerableApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721EnumerableAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchIerc721EnumerableApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721EnumerableAbi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721EnumerableAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchIerc721EnumerableTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721EnumerableAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + */ +export const readIerc721Metadata = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc721MetadataBalanceOf = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"getApproved"` + */ +export const readIerc721MetadataGetApproved = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'getApproved', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readIerc721MetadataIsApprovedForAll = + /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"name"` + */ +export const readIerc721MetadataName = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'name', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"ownerOf"` + */ +export const readIerc721MetadataOwnerOf = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'ownerOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc721MetadataSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"symbol"` + */ +export const readIerc721MetadataSymbol = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'symbol', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"tokenURI"` + */ +export const readIerc721MetadataTokenUri = /*#__PURE__*/ createReadContract({ + abi: ierc721MetadataAbi, + functionName: 'tokenURI', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + */ +export const writeIerc721Metadata = /*#__PURE__*/ createWriteContract({ + abi: ierc721MetadataAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"approve"` + */ +export const writeIerc721MetadataApprove = /*#__PURE__*/ createWriteContract({ + abi: ierc721MetadataAbi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeIerc721MetadataSafeTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc721MetadataAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeIerc721MetadataSetApprovalForAll = + /*#__PURE__*/ createWriteContract({ + abi: ierc721MetadataAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeIerc721MetadataTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc721MetadataAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + */ +export const simulateIerc721Metadata = /*#__PURE__*/ createSimulateContract({ + abi: ierc721MetadataAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"approve"` + */ +export const simulateIerc721MetadataApprove = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721MetadataAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateIerc721MetadataSafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721MetadataAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateIerc721MetadataSetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721MetadataAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateIerc721MetadataTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721MetadataAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ + */ +export const watchIerc721MetadataEvent = /*#__PURE__*/ createWatchContractEvent( + { abi: ierc721MetadataAbi }, +) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"Approval"` + */ +export const watchIerc721MetadataApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721MetadataAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchIerc721MetadataApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721MetadataAbi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchIerc721MetadataTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721MetadataAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ + */ +export const readIerc721Permit = /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + */ +export const readIerc721PermitDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'DOMAIN_SEPARATOR', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"PERMIT_TYPEHASH"` + */ +export const readIerc721PermitPermitTypehash = /*#__PURE__*/ createReadContract( + { abi: ierc721PermitAbi, functionName: 'PERMIT_TYPEHASH' }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readIerc721PermitBalanceOf = /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"getApproved"` + */ +export const readIerc721PermitGetApproved = /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'getApproved', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readIerc721PermitIsApprovedForAll = + /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"ownerOf"` + */ +export const readIerc721PermitOwnerOf = /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'ownerOf', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readIerc721PermitSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: ierc721PermitAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ + */ +export const writeIerc721Permit = /*#__PURE__*/ createWriteContract({ + abi: ierc721PermitAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"approve"` + */ +export const writeIerc721PermitApprove = /*#__PURE__*/ createWriteContract({ + abi: ierc721PermitAbi, + functionName: 'approve', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"permit"` + */ +export const writeIerc721PermitPermit = /*#__PURE__*/ createWriteContract({ + abi: ierc721PermitAbi, + functionName: 'permit', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeIerc721PermitSafeTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: ierc721PermitAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeIerc721PermitSetApprovalForAll = + /*#__PURE__*/ createWriteContract({ + abi: ierc721PermitAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeIerc721PermitTransferFrom = /*#__PURE__*/ createWriteContract( + { abi: ierc721PermitAbi, functionName: 'transferFrom' }, +) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ + */ +export const simulateIerc721Permit = /*#__PURE__*/ createSimulateContract({ + abi: ierc721PermitAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"approve"` + */ +export const simulateIerc721PermitApprove = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721PermitAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"permit"` + */ +export const simulateIerc721PermitPermit = /*#__PURE__*/ createSimulateContract( + { abi: ierc721PermitAbi, functionName: 'permit' }, +) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateIerc721PermitSafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721PermitAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateIerc721PermitSetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721PermitAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721PermitAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateIerc721PermitTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721PermitAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721PermitAbi}__ + */ +export const watchIerc721PermitEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721PermitAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721PermitAbi}__ and `eventName` set to `"Approval"` + */ +export const watchIerc721PermitApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721PermitAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721PermitAbi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchIerc721PermitApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721PermitAbi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721PermitAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchIerc721PermitTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ierc721PermitAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ + */ +export const writeIerc721Receiver = /*#__PURE__*/ createWriteContract({ + abi: ierc721ReceiverAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ and `functionName` set to `"onERC721Received"` + */ +export const writeIerc721ReceiverOnErc721Received = + /*#__PURE__*/ createWriteContract({ + abi: ierc721ReceiverAbi, + functionName: 'onERC721Received', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ + */ +export const simulateIerc721Receiver = /*#__PURE__*/ createSimulateContract({ + abi: ierc721ReceiverAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ and `functionName` set to `"onERC721Received"` + */ +export const simulateIerc721ReceiverOnErc721Received = + /*#__PURE__*/ createSimulateContract({ + abi: ierc721ReceiverAbi, + functionName: 'onERC721Received', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + */ +export const readIMultiTokenCategoryRegistry = /*#__PURE__*/ createReadContract( + { abi: iMultiTokenCategoryRegistryAbi }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registeredCategoryValue"` + */ +export const readIMultiTokenCategoryRegistryRegisteredCategoryValue = + /*#__PURE__*/ createReadContract({ + abi: iMultiTokenCategoryRegistryAbi, + functionName: 'registeredCategoryValue', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + */ +export const writeIMultiTokenCategoryRegistry = + /*#__PURE__*/ createWriteContract({ abi: iMultiTokenCategoryRegistryAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + */ +export const writeIMultiTokenCategoryRegistryRegisterCategoryValue = + /*#__PURE__*/ createWriteContract({ + abi: iMultiTokenCategoryRegistryAbi, + functionName: 'registerCategoryValue', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + */ +export const writeIMultiTokenCategoryRegistryUnregisterCategoryValue = + /*#__PURE__*/ createWriteContract({ + abi: iMultiTokenCategoryRegistryAbi, + functionName: 'unregisterCategoryValue', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + */ +export const simulateIMultiTokenCategoryRegistry = + /*#__PURE__*/ createSimulateContract({ abi: iMultiTokenCategoryRegistryAbi }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + */ +export const simulateIMultiTokenCategoryRegistryRegisterCategoryValue = + /*#__PURE__*/ createSimulateContract({ + abi: iMultiTokenCategoryRegistryAbi, + functionName: 'registerCategoryValue', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + */ +export const simulateIMultiTokenCategoryRegistryUnregisterCategoryValue = + /*#__PURE__*/ createSimulateContract({ + abi: iMultiTokenCategoryRegistryAbi, + functionName: 'unregisterCategoryValue', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + */ +export const watchIMultiTokenCategoryRegistryEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iMultiTokenCategoryRegistryAbi, + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryRegistered"` + */ +export const watchIMultiTokenCategoryRegistryCategoryRegisteredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iMultiTokenCategoryRegistryAbi, + eventName: 'CategoryRegistered', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryUnregistered"` + */ +export const watchIMultiTokenCategoryRegistryCategoryUnregisteredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iMultiTokenCategoryRegistryAbi, + eventName: 'CategoryUnregistered', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ + */ +export const readIMulticall3 = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBasefee"` + */ +export const readIMulticall3GetBasefee = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getBasefee', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBlockHash"` + */ +export const readIMulticall3GetBlockHash = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getBlockHash', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBlockNumber"` + */ +export const readIMulticall3GetBlockNumber = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getBlockNumber', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getChainId"` + */ +export const readIMulticall3GetChainId = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getChainId', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockCoinbase"` + */ +export const readIMulticall3GetCurrentBlockCoinbase = + /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getCurrentBlockCoinbase', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockDifficulty"` + */ +export const readIMulticall3GetCurrentBlockDifficulty = + /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getCurrentBlockDifficulty', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockGasLimit"` + */ +export const readIMulticall3GetCurrentBlockGasLimit = + /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getCurrentBlockGasLimit', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockTimestamp"` + */ +export const readIMulticall3GetCurrentBlockTimestamp = + /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getCurrentBlockTimestamp', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getEthBalance"` + */ +export const readIMulticall3GetEthBalance = /*#__PURE__*/ createReadContract({ + abi: iMulticall3Abi, + functionName: 'getEthBalance', +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getLastBlockHash"` + */ +export const readIMulticall3GetLastBlockHash = /*#__PURE__*/ createReadContract( + { abi: iMulticall3Abi, functionName: 'getLastBlockHash' }, +) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ + */ +export const writeIMulticall3 = /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate"` + */ +export const writeIMulticall3Aggregate = /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'aggregate', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3"` + */ +export const writeIMulticall3Aggregate3 = /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'aggregate3', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3Value"` + */ +export const writeIMulticall3Aggregate3Value = + /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'aggregate3Value', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"blockAndAggregate"` + */ +export const writeIMulticall3BlockAndAggregate = + /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'blockAndAggregate', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryAggregate"` + */ +export const writeIMulticall3TryAggregate = /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'tryAggregate', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryBlockAndAggregate"` + */ +export const writeIMulticall3TryBlockAndAggregate = + /*#__PURE__*/ createWriteContract({ + abi: iMulticall3Abi, + functionName: 'tryBlockAndAggregate', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ + */ +export const simulateIMulticall3 = /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate"` + */ +export const simulateIMulticall3Aggregate = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'aggregate', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3"` + */ +export const simulateIMulticall3Aggregate3 = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'aggregate3', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3Value"` + */ +export const simulateIMulticall3Aggregate3Value = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'aggregate3Value', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"blockAndAggregate"` + */ +export const simulateIMulticall3BlockAndAggregate = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'blockAndAggregate', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryAggregate"` + */ +export const simulateIMulticall3TryAggregate = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'tryAggregate', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryBlockAndAggregate"` + */ +export const simulateIMulticall3TryBlockAndAggregate = + /*#__PURE__*/ createSimulateContract({ + abi: iMulticall3Abi, + functionName: 'tryBlockAndAggregate', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ + */ +export const readINonfungiblePositionManager = /*#__PURE__*/ createReadContract( + { abi: iNonfungiblePositionManagerAbi }, +) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + */ +export const readINonfungiblePositionManagerDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'DOMAIN_SEPARATOR', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"PERMIT_TYPEHASH"` + */ +export const readINonfungiblePositionManagerPermitTypehash = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'PERMIT_TYPEHASH', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"WETH9"` + */ +export const readINonfungiblePositionManagerWeth9 = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'WETH9', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"balanceOf"` + */ +export const readINonfungiblePositionManagerBalanceOf = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'balanceOf', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"factory"` + */ +export const readINonfungiblePositionManagerFactory = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'factory', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"getApproved"` + */ +export const readINonfungiblePositionManagerGetApproved = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'getApproved', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"isApprovedForAll"` + */ +export const readINonfungiblePositionManagerIsApprovedForAll = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"name"` + */ +export const readINonfungiblePositionManagerName = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'name', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"ownerOf"` + */ +export const readINonfungiblePositionManagerOwnerOf = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'ownerOf', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"positions"` + */ +export const readINonfungiblePositionManagerPositions = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'positions', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"supportsInterface"` + */ +export const readINonfungiblePositionManagerSupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"symbol"` + */ +export const readINonfungiblePositionManagerSymbol = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'symbol', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"tokenByIndex"` + */ +export const readINonfungiblePositionManagerTokenByIndex = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'tokenByIndex', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"tokenOfOwnerByIndex"` + */ +export const readINonfungiblePositionManagerTokenOfOwnerByIndex = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'tokenOfOwnerByIndex', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"tokenURI"` + */ +export const readINonfungiblePositionManagerTokenUri = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'tokenURI', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"totalSupply"` + */ +export const readINonfungiblePositionManagerTotalSupply = + /*#__PURE__*/ createReadContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'totalSupply', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ + */ +export const writeINonfungiblePositionManager = + /*#__PURE__*/ createWriteContract({ abi: iNonfungiblePositionManagerAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"approve"` + */ +export const writeINonfungiblePositionManagerApprove = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"burn"` + */ +export const writeINonfungiblePositionManagerBurn = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'burn', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"collect"` + */ +export const writeINonfungiblePositionManagerCollect = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'collect', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"createAndInitializePoolIfNecessary"` + */ +export const writeINonfungiblePositionManagerCreateAndInitializePoolIfNecessary = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'createAndInitializePoolIfNecessary', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"decreaseLiquidity"` + */ +export const writeINonfungiblePositionManagerDecreaseLiquidity = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'decreaseLiquidity', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"increaseLiquidity"` + */ +export const writeINonfungiblePositionManagerIncreaseLiquidity = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'increaseLiquidity', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"mint"` + */ +export const writeINonfungiblePositionManagerMint = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'mint', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"permit"` + */ +export const writeINonfungiblePositionManagerPermit = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'permit', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"refundETH"` + */ +export const writeINonfungiblePositionManagerRefundEth = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'refundETH', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const writeINonfungiblePositionManagerSafeTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const writeINonfungiblePositionManagerSetApprovalForAll = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"sweepToken"` + */ +export const writeINonfungiblePositionManagerSweepToken = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'sweepToken', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"transferFrom"` + */ +export const writeINonfungiblePositionManagerTransferFrom = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"unwrapWETH9"` + */ +export const writeINonfungiblePositionManagerUnwrapWeth9 = + /*#__PURE__*/ createWriteContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'unwrapWETH9', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ + */ +export const simulateINonfungiblePositionManager = + /*#__PURE__*/ createSimulateContract({ abi: iNonfungiblePositionManagerAbi }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"approve"` + */ +export const simulateINonfungiblePositionManagerApprove = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'approve', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"burn"` + */ +export const simulateINonfungiblePositionManagerBurn = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'burn', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"collect"` + */ +export const simulateINonfungiblePositionManagerCollect = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'collect', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"createAndInitializePoolIfNecessary"` + */ +export const simulateINonfungiblePositionManagerCreateAndInitializePoolIfNecessary = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'createAndInitializePoolIfNecessary', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"decreaseLiquidity"` + */ +export const simulateINonfungiblePositionManagerDecreaseLiquidity = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'decreaseLiquidity', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"increaseLiquidity"` + */ +export const simulateINonfungiblePositionManagerIncreaseLiquidity = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'increaseLiquidity', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"mint"` + */ +export const simulateINonfungiblePositionManagerMint = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'mint', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"permit"` + */ +export const simulateINonfungiblePositionManagerPermit = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'permit', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"refundETH"` + */ +export const simulateINonfungiblePositionManagerRefundEth = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'refundETH', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"safeTransferFrom"` + */ +export const simulateINonfungiblePositionManagerSafeTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"setApprovalForAll"` + */ +export const simulateINonfungiblePositionManagerSetApprovalForAll = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"sweepToken"` + */ +export const simulateINonfungiblePositionManagerSweepToken = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'sweepToken', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"transferFrom"` + */ +export const simulateINonfungiblePositionManagerTransferFrom = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'transferFrom', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `functionName` set to `"unwrapWETH9"` + */ +export const simulateINonfungiblePositionManagerUnwrapWeth9 = + /*#__PURE__*/ createSimulateContract({ + abi: iNonfungiblePositionManagerAbi, + functionName: 'unwrapWETH9', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ + */ +export const watchINonfungiblePositionManagerEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"Approval"` + */ +export const watchINonfungiblePositionManagerApprovalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'Approval', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"ApprovalForAll"` + */ +export const watchINonfungiblePositionManagerApprovalForAllEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"Collect"` + */ +export const watchINonfungiblePositionManagerCollectEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'Collect', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"DecreaseLiquidity"` + */ +export const watchINonfungiblePositionManagerDecreaseLiquidityEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'DecreaseLiquidity', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"IncreaseLiquidity"` + */ +export const watchINonfungiblePositionManagerIncreaseLiquidityEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'IncreaseLiquidity', + }) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iNonfungiblePositionManagerAbi}__ and `eventName` set to `"Transfer"` + */ +export const watchINonfungiblePositionManagerTransferEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iNonfungiblePositionManagerAbi, + eventName: 'Transfer', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnAcceptorControllerAbi}__ + */ +export const readIpwnAcceptorController = /*#__PURE__*/ createReadContract({ + abi: ipwnAcceptorControllerAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnAcceptorControllerAbi}__ and `functionName` set to `"checkAcceptor"` + */ +export const readIpwnAcceptorControllerCheckAcceptor = + /*#__PURE__*/ createReadContract({ + abi: ipwnAcceptorControllerAbi, + functionName: 'checkAcceptor', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + */ +export const readIpwnDeployer = /*#__PURE__*/ createReadContract({ + abi: ipwnDeployerAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"computeAddress"` + */ +export const readIpwnDeployerComputeAddress = /*#__PURE__*/ createReadContract({ + abi: ipwnDeployerAbi, + functionName: 'computeAddress', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + */ +export const writeIpwnDeployer = /*#__PURE__*/ createWriteContract({ + abi: ipwnDeployerAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deploy"` + */ +export const writeIpwnDeployerDeploy = /*#__PURE__*/ createWriteContract({ + abi: ipwnDeployerAbi, + functionName: 'deploy', +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deployAndTransferOwnership"` + */ +export const writeIpwnDeployerDeployAndTransferOwnership = + /*#__PURE__*/ createWriteContract({ + abi: ipwnDeployerAbi, + functionName: 'deployAndTransferOwnership', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"owner"` + */ +export const writeIpwnDeployerOwner = /*#__PURE__*/ createWriteContract({ + abi: ipwnDeployerAbi, + functionName: 'owner', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + */ +export const simulateIpwnDeployer = /*#__PURE__*/ createSimulateContract({ + abi: ipwnDeployerAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deploy"` + */ +export const simulateIpwnDeployerDeploy = /*#__PURE__*/ createSimulateContract({ + abi: ipwnDeployerAbi, + functionName: 'deploy', +}) -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Action -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deployAndTransferOwnership"` + */ +export const simulateIpwnDeployerDeployAndTransferOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: ipwnDeployerAbi, + functionName: 'deployAndTransferOwnership', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"owner"` */ -export const readAccessControl = /*#__PURE__*/ createReadContract({ - abi: accessControlAbi, +export const simulateIpwnDeployerOwner = /*#__PURE__*/ createSimulateContract({ + abi: ipwnDeployerAbi, + functionName: 'owner', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"DEFAULT_ADMIN_ROLE"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnLoanMetadataProviderAbi}__ */ -export const readAccessControlDefaultAdminRole = +export const readIpwnLoanMetadataProvider = /*#__PURE__*/ createReadContract({ + abi: ipwnLoanMetadataProviderAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnLoanMetadataProviderAbi}__ and `functionName` set to `"loanMetadataUri"` + */ +export const readIpwnLoanMetadataProviderLoanMetadataUri = /*#__PURE__*/ createReadContract({ - abi: accessControlAbi, - functionName: 'DEFAULT_ADMIN_ROLE', + abi: ipwnLoanMetadataProviderAbi, + functionName: 'loanMetadataUri', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"getRoleAdmin"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iPeripheryImmutableStateAbi}__ */ -export const readAccessControlGetRoleAdmin = /*#__PURE__*/ createReadContract({ - abi: accessControlAbi, - functionName: 'getRoleAdmin', +export const readIPeripheryImmutableState = /*#__PURE__*/ createReadContract({ + abi: iPeripheryImmutableStateAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"hasRole"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iPeripheryImmutableStateAbi}__ and `functionName` set to `"WETH9"` */ -export const readAccessControlHasRole = /*#__PURE__*/ createReadContract({ - abi: accessControlAbi, - functionName: 'hasRole', -}) +export const readIPeripheryImmutableStateWeth9 = + /*#__PURE__*/ createReadContract({ + abi: iPeripheryImmutableStateAbi, + functionName: 'WETH9', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iPeripheryImmutableStateAbi}__ and `functionName` set to `"factory"` */ -export const readAccessControlSupportsInterface = +export const readIPeripheryImmutableStateFactory = /*#__PURE__*/ createReadContract({ - abi: accessControlAbi, - functionName: 'supportsInterface', + abi: iPeripheryImmutableStateAbi, + functionName: 'factory', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ */ -export const writeAccessControl = /*#__PURE__*/ createWriteContract({ - abi: accessControlAbi, +export const writeIPeripheryPayments = /*#__PURE__*/ createWriteContract({ + abi: iPeripheryPaymentsAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"grantRole"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"refundETH"` */ -export const writeAccessControlGrantRole = /*#__PURE__*/ createWriteContract({ - abi: accessControlAbi, - functionName: 'grantRole', +export const writeIPeripheryPaymentsRefundEth = + /*#__PURE__*/ createWriteContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'refundETH', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"sweepToken"` + */ +export const writeIPeripheryPaymentsSweepToken = + /*#__PURE__*/ createWriteContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'sweepToken', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"unwrapWETH9"` + */ +export const writeIPeripheryPaymentsUnwrapWeth9 = + /*#__PURE__*/ createWriteContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'unwrapWETH9', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ + */ +export const simulateIPeripheryPayments = /*#__PURE__*/ createSimulateContract({ + abi: iPeripheryPaymentsAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"renounceRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"refundETH"` */ -export const writeAccessControlRenounceRole = /*#__PURE__*/ createWriteContract( - { abi: accessControlAbi, functionName: 'renounceRole' }, -) +export const simulateIPeripheryPaymentsRefundEth = + /*#__PURE__*/ createSimulateContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'refundETH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"revokeRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"sweepToken"` */ -export const writeAccessControlRevokeRole = /*#__PURE__*/ createWriteContract({ - abi: accessControlAbi, - functionName: 'revokeRole', +export const simulateIPeripheryPaymentsSweepToken = + /*#__PURE__*/ createSimulateContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'sweepToken', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPeripheryPaymentsAbi}__ and `functionName` set to `"unwrapWETH9"` + */ +export const simulateIPeripheryPaymentsUnwrapWeth9 = + /*#__PURE__*/ createSimulateContract({ + abi: iPeripheryPaymentsAbi, + functionName: 'unwrapWETH9', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ + */ +export const writeIPoolAdapter = /*#__PURE__*/ createWriteContract({ + abi: iPoolAdapterAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"supply"` */ -export const simulateAccessControl = /*#__PURE__*/ createSimulateContract({ - abi: accessControlAbi, +export const writeIPoolAdapterSupply = /*#__PURE__*/ createWriteContract({ + abi: iPoolAdapterAbi, + functionName: 'supply', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"grantRole"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"withdraw"` */ -export const simulateAccessControlGrantRole = +export const writeIPoolAdapterWithdraw = /*#__PURE__*/ createWriteContract({ + abi: iPoolAdapterAbi, + functionName: 'withdraw', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ + */ +export const simulateIPoolAdapter = /*#__PURE__*/ createSimulateContract({ + abi: iPoolAdapterAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"supply"` + */ +export const simulateIPoolAdapterSupply = /*#__PURE__*/ createSimulateContract({ + abi: iPoolAdapterAbi, + functionName: 'supply', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + */ +export const simulateIPoolAdapterWithdraw = /*#__PURE__*/ createSimulateContract({ - abi: accessControlAbi, - functionName: 'grantRole', + abi: iPoolAdapterAbi, + functionName: 'withdraw', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"renounceRole"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolInitializerAbi}__ */ -export const simulateAccessControlRenounceRole = +export const writeIPoolInitializer = /*#__PURE__*/ createWriteContract({ + abi: iPoolInitializerAbi, +}) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolInitializerAbi}__ and `functionName` set to `"createAndInitializePoolIfNecessary"` + */ +export const writeIPoolInitializerCreateAndInitializePoolIfNecessary = + /*#__PURE__*/ createWriteContract({ + abi: iPoolInitializerAbi, + functionName: 'createAndInitializePoolIfNecessary', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolInitializerAbi}__ + */ +export const simulateIPoolInitializer = /*#__PURE__*/ createSimulateContract({ + abi: iPoolInitializerAbi, +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolInitializerAbi}__ and `functionName` set to `"createAndInitializePoolIfNecessary"` + */ +export const simulateIPoolInitializerCreateAndInitializePoolIfNecessary = + /*#__PURE__*/ createSimulateContract({ + abi: iPoolInitializerAbi, + functionName: 'createAndInitializePoolIfNecessary', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ + */ +export const readIStateFingerpringComputer = /*#__PURE__*/ createReadContract({ + abi: iStateFingerpringComputerAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ and `functionName` set to `"computeStateFingerprint"` + */ +export const readIStateFingerpringComputerComputeStateFingerprint = + /*#__PURE__*/ createReadContract({ + abi: iStateFingerpringComputerAbi, + functionName: 'computeStateFingerprint', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ and `functionName` set to `"supportsToken"` + */ +export const readIStateFingerpringComputerSupportsToken = + /*#__PURE__*/ createReadContract({ + abi: iStateFingerpringComputerAbi, + functionName: 'supportsToken', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + */ +export const readITransparentUpgradeableProxy = + /*#__PURE__*/ createReadContract({ abi: iTransparentUpgradeableProxyAbi }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"admin"` + */ +export const readITransparentUpgradeableProxyAdmin = + /*#__PURE__*/ createReadContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'admin', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"implementation"` + */ +export const readITransparentUpgradeableProxyImplementation = + /*#__PURE__*/ createReadContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'implementation', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + */ +export const writeITransparentUpgradeableProxy = + /*#__PURE__*/ createWriteContract({ abi: iTransparentUpgradeableProxyAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"changeAdmin"` + */ +export const writeITransparentUpgradeableProxyChangeAdmin = + /*#__PURE__*/ createWriteContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'changeAdmin', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeTo"` + */ +export const writeITransparentUpgradeableProxyUpgradeTo = + /*#__PURE__*/ createWriteContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'upgradeTo', + }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeToAndCall"` + */ +export const writeITransparentUpgradeableProxyUpgradeToAndCall = + /*#__PURE__*/ createWriteContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'upgradeToAndCall', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + */ +export const simulateITransparentUpgradeableProxy = + /*#__PURE__*/ createSimulateContract({ abi: iTransparentUpgradeableProxyAbi }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"changeAdmin"` + */ +export const simulateITransparentUpgradeableProxyChangeAdmin = + /*#__PURE__*/ createSimulateContract({ + abi: iTransparentUpgradeableProxyAbi, + functionName: 'changeAdmin', + }) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeTo"` + */ +export const simulateITransparentUpgradeableProxyUpgradeTo = /*#__PURE__*/ createSimulateContract({ - abi: accessControlAbi, - functionName: 'renounceRole', + abi: iTransparentUpgradeableProxyAbi, + functionName: 'upgradeTo', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link accessControlAbi}__ and `functionName` set to `"revokeRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeToAndCall"` */ -export const simulateAccessControlRevokeRole = +export const simulateITransparentUpgradeableProxyUpgradeToAndCall = /*#__PURE__*/ createSimulateContract({ - abi: accessControlAbi, - functionName: 'revokeRole', + abi: iTransparentUpgradeableProxyAbi, + functionName: 'upgradeToAndCall', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ */ -export const watchAccessControlEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: accessControlAbi, -}) +export const watchITransparentUpgradeableProxyEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iTransparentUpgradeableProxyAbi, + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleAdminChanged"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"AdminChanged"` */ -export const watchAccessControlRoleAdminChangedEvent = +export const watchITransparentUpgradeableProxyAdminChangedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: accessControlAbi, - eventName: 'RoleAdminChanged', + abi: iTransparentUpgradeableProxyAbi, + eventName: 'AdminChanged', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleGranted"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"BeaconUpgraded"` */ -export const watchAccessControlRoleGrantedEvent = +export const watchITransparentUpgradeableProxyBeaconUpgradedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: accessControlAbi, - eventName: 'RoleGranted', + abi: iTransparentUpgradeableProxyAbi, + eventName: 'BeaconUpgraded', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link accessControlAbi}__ and `eventName` set to `"RoleRevoked"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"Upgraded"` */ -export const watchAccessControlRoleRevokedEvent = +export const watchITransparentUpgradeableProxyUpgradedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: accessControlAbi, - eventName: 'RoleRevoked', + abi: iTransparentUpgradeableProxyAbi, + eventName: 'Upgraded', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ */ -export const readChainlink = /*#__PURE__*/ createReadContract({ - abi: chainlinkAbi, +export const readIUniswapV3Pool = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"ETH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"factory"` */ -export const readChainlinkEth = /*#__PURE__*/ createReadContract({ - abi: chainlinkAbi, - functionName: 'ETH', +export const readIUniswapV3PoolFactory = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'factory', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"L2_GRACE_PERIOD"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"fee"` */ -export const readChainlinkL2GracePeriod = /*#__PURE__*/ createReadContract({ - abi: chainlinkAbi, - functionName: 'L2_GRACE_PERIOD', +export const readIUniswapV3PoolFee = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'fee', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkAbi}__ and `functionName` set to `"MAX_CHAINLINK_FEED_PRICE_AGE"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"feeGrowthGlobal0X128"` */ -export const readChainlinkMaxChainlinkFeedPriceAge = +export const readIUniswapV3PoolFeeGrowthGlobal0X128 = /*#__PURE__*/ createReadContract({ - abi: chainlinkAbi, - functionName: 'MAX_CHAINLINK_FEED_PRICE_AGE', + abi: iUniswapV3PoolAbi, + functionName: 'feeGrowthGlobal0X128', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"feeGrowthGlobal1X128"` */ -export const readChainlinkDenominations = /*#__PURE__*/ createReadContract({ - abi: chainlinkDenominationsAbi, -}) +export const readIUniswapV3PoolFeeGrowthGlobal1X128 = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'feeGrowthGlobal1X128', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"BTC"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"liquidity"` */ -export const readChainlinkDenominationsBtc = /*#__PURE__*/ createReadContract({ - abi: chainlinkDenominationsAbi, - functionName: 'BTC', +export const readIUniswapV3PoolLiquidity = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'liquidity', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"ETH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"maxLiquidityPerTick"` */ -export const readChainlinkDenominationsEth = /*#__PURE__*/ createReadContract({ - abi: chainlinkDenominationsAbi, - functionName: 'ETH', -}) +export const readIUniswapV3PoolMaxLiquidityPerTick = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'maxLiquidityPerTick', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkDenominationsAbi}__ and `functionName` set to `"USD"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"observations"` */ -export const readChainlinkDenominationsUsd = /*#__PURE__*/ createReadContract({ - abi: chainlinkDenominationsAbi, - functionName: 'USD', +export const readIUniswapV3PoolObservations = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'observations', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"observe"` */ -export const readChainlinkHarness = /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, +export const readIUniswapV3PoolObserve = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'observe', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"checkSequencerUptime"` - */ -export const readChainlinkHarnessCheckSequencerUptime = - /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, - functionName: 'checkSequencerUptime', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"convertPriceDenomination"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"positions"` */ -export const readChainlinkHarnessConvertPriceDenomination = - /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, - functionName: 'convertPriceDenomination', - }) +export const readIUniswapV3PoolPositions = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'positions', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"fetchCreditPriceWithCollateralDenomination"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"protocolFees"` */ -export const readChainlinkHarnessFetchCreditPriceWithCollateralDenomination = - /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, - functionName: 'fetchCreditPriceWithCollateralDenomination', - }) +export const readIUniswapV3PoolProtocolFees = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'protocolFees', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"fetchPrice"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"slot0"` */ -export const readChainlinkHarnessFetchPrice = /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, - functionName: 'fetchPrice', +export const readIUniswapV3PoolSlot0 = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'slot0', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link chainlinkHarnessAbi}__ and `functionName` set to `"syncDecimalsUp"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"snapshotCumulativesInside"` */ -export const readChainlinkHarnessSyncDecimalsUp = +export const readIUniswapV3PoolSnapshotCumulativesInside = /*#__PURE__*/ createReadContract({ - abi: chainlinkHarnessAbi, - functionName: 'syncDecimalsUp', + abi: iUniswapV3PoolAbi, + functionName: 'snapshotCumulativesInside', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link contextUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"tickBitmap"` */ -export const watchContextUpgradeableEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: contextUpgradeableAbi }) +export const readIUniswapV3PoolTickBitmap = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'tickBitmap', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link contextUpgradeableAbi}__ and `eventName` set to `"Initialized"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"tickSpacing"` */ -export const watchContextUpgradeableInitializedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: contextUpgradeableAbi, - eventName: 'Initialized', - }) +export const readIUniswapV3PoolTickSpacing = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'tickSpacing', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link dsTestAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"ticks"` */ -export const readDsTest = /*#__PURE__*/ createReadContract({ abi: dsTestAbi }) +export const readIUniswapV3PoolTicks = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'ticks', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"IS_TEST"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"token0"` */ -export const readDsTestIsTest = /*#__PURE__*/ createReadContract({ - abi: dsTestAbi, - functionName: 'IS_TEST', +export const readIUniswapV3PoolToken0 = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'token0', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link dsTestAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"token1"` */ -export const writeDsTest = /*#__PURE__*/ createWriteContract({ abi: dsTestAbi }) +export const readIUniswapV3PoolToken1 = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolAbi, + functionName: 'token1', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"failed"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ */ -export const writeDsTestFailed = /*#__PURE__*/ createWriteContract({ - abi: dsTestAbi, - functionName: 'failed', +export const writeIUniswapV3Pool = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link dsTestAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"burn"` */ -export const simulateDsTest = /*#__PURE__*/ createSimulateContract({ - abi: dsTestAbi, +export const writeIUniswapV3PoolBurn = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'burn', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link dsTestAbi}__ and `functionName` set to `"failed"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"collect"` */ -export const simulateDsTestFailed = /*#__PURE__*/ createSimulateContract({ - abi: dsTestAbi, - functionName: 'failed', +export const writeIUniswapV3PoolCollect = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'collect', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"collectProtocol"` */ -export const watchDsTestEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, -}) +export const writeIUniswapV3PoolCollectProtocol = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'collectProtocol', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"flash"` */ -export const watchDsTestLogEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log', +export const writeIUniswapV3PoolFlash = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'flash', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_address"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"increaseObservationCardinalityNext"` */ -export const watchDsTestLogAddressEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_address', +export const writeIUniswapV3PoolIncreaseObservationCardinalityNext = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'increaseObservationCardinalityNext', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_bytes"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"initialize"` */ -export const watchDsTestLogBytesEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_bytes', +export const writeIUniswapV3PoolInitialize = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'initialize', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_bytes32"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"mint"` */ -export const watchDsTestLogBytes32Event = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_bytes32', - }) +export const writeIUniswapV3PoolMint = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'mint', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_int"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"setFeeProtocol"` */ -export const watchDsTestLogIntEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_int', -}) +export const writeIUniswapV3PoolSetFeeProtocol = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'setFeeProtocol', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_address"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"swap"` */ -export const watchDsTestLogNamedAddressEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_address', - }) +export const writeIUniswapV3PoolSwap = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolAbi, + functionName: 'swap', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_bytes"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ */ -export const watchDsTestLogNamedBytesEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_bytes', - }) +export const simulateIUniswapV3Pool = /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_bytes32"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"burn"` */ -export const watchDsTestLogNamedBytes32Event = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_bytes32', - }) +export const simulateIUniswapV3PoolBurn = /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'burn', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_decimal_int"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"collect"` */ -export const watchDsTestLogNamedDecimalIntEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_decimal_int', +export const simulateIUniswapV3PoolCollect = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'collect', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_decimal_uint"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"collectProtocol"` */ -export const watchDsTestLogNamedDecimalUintEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_decimal_uint', +export const simulateIUniswapV3PoolCollectProtocol = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'collectProtocol', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_int"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"flash"` */ -export const watchDsTestLogNamedIntEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_int', - }) +export const simulateIUniswapV3PoolFlash = /*#__PURE__*/ createSimulateContract( + { abi: iUniswapV3PoolAbi, functionName: 'flash' }, +) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_string"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"increaseObservationCardinalityNext"` */ -export const watchDsTestLogNamedStringEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_string', +export const simulateIUniswapV3PoolIncreaseObservationCardinalityNext = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'increaseObservationCardinalityNext', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_named_uint"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"initialize"` */ -export const watchDsTestLogNamedUintEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_named_uint', +export const simulateIUniswapV3PoolInitialize = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'initialize', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_string"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"mint"` */ -export const watchDsTestLogStringEvent = /*#__PURE__*/ createWatchContractEvent( - { abi: dsTestAbi, eventName: 'log_string' }, -) +export const simulateIUniswapV3PoolMint = /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'mint', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"log_uint"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"setFeeProtocol"` */ -export const watchDsTestLogUintEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'log_uint', -}) +export const simulateIUniswapV3PoolSetFeeProtocol = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'setFeeProtocol', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link dsTestAbi}__ and `eventName` set to `"logs"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `functionName` set to `"swap"` */ -export const watchDsTestLogsEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: dsTestAbi, - eventName: 'logs', +export const simulateIUniswapV3PoolSwap = /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolAbi, + functionName: 'swap', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link deploymentsAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ */ -export const readDeployments = /*#__PURE__*/ createReadContract({ - abi: deploymentsAbi, +export const watchIUniswapV3PoolEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link deploymentsAbi}__ and `functionName` set to `"deploymentsSubpath"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Burn"` */ -export const readDeploymentsDeploymentsSubpath = - /*#__PURE__*/ createReadContract({ - abi: deploymentsAbi, - functionName: 'deploymentsSubpath', +export const watchIUniswapV3PoolBurnEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Burn', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Collect"` */ -export const writeDummyPoolAdapter = /*#__PURE__*/ createWriteContract({ - abi: dummyPoolAdapterAbi, -}) +export const watchIUniswapV3PoolCollectEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Collect', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"supply"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"CollectProtocol"` */ -export const writeDummyPoolAdapterSupply = /*#__PURE__*/ createWriteContract({ - abi: dummyPoolAdapterAbi, - functionName: 'supply', -}) +export const watchIUniswapV3PoolCollectProtocolEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'CollectProtocol', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Flash"` */ -export const writeDummyPoolAdapterWithdraw = /*#__PURE__*/ createWriteContract({ - abi: dummyPoolAdapterAbi, - functionName: 'withdraw', -}) +export const watchIUniswapV3PoolFlashEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Flash', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"IncreaseObservationCardinalityNext"` */ -export const simulateDummyPoolAdapter = /*#__PURE__*/ createSimulateContract({ - abi: dummyPoolAdapterAbi, -}) +export const watchIUniswapV3PoolIncreaseObservationCardinalityNextEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'IncreaseObservationCardinalityNext', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"supply"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Initialize"` */ -export const simulateDummyPoolAdapterSupply = - /*#__PURE__*/ createSimulateContract({ - abi: dummyPoolAdapterAbi, - functionName: 'supply', +export const watchIUniswapV3PoolInitializeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Initialize', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link dummyPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Mint"` */ -export const simulateDummyPoolAdapterWithdraw = - /*#__PURE__*/ createSimulateContract({ - abi: dummyPoolAdapterAbi, - functionName: 'withdraw', +export const watchIUniswapV3PoolMintEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Mint', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"SetFeeProtocol"` */ -export const readErc1155 = /*#__PURE__*/ createReadContract({ abi: erc1155Abi }) +export const watchIUniswapV3PoolSetFeeProtocolEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'SetFeeProtocol', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolAbi}__ and `eventName` set to `"Swap"` */ -export const readErc1155BalanceOf = /*#__PURE__*/ createReadContract({ - abi: erc1155Abi, - functionName: 'balanceOf', -}) +export const watchIUniswapV3PoolSwapEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolAbi, + eventName: 'Swap', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"balanceOfBatch"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ */ -export const readErc1155BalanceOfBatch = /*#__PURE__*/ createReadContract({ - abi: erc1155Abi, - functionName: 'balanceOfBatch', +export const writeIUniswapV3PoolActions = /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolActionsAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"burn"` */ -export const readErc1155IsApprovedForAll = /*#__PURE__*/ createReadContract({ - abi: erc1155Abi, - functionName: 'isApprovedForAll', -}) +export const writeIUniswapV3PoolActionsBurn = /*#__PURE__*/ createWriteContract( + { abi: iUniswapV3PoolActionsAbi, functionName: 'burn' }, +) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"collect"` */ -export const readErc1155SupportsInterface = /*#__PURE__*/ createReadContract({ - abi: erc1155Abi, - functionName: 'supportsInterface', -}) +export const writeIUniswapV3PoolActionsCollect = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'collect', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"uri"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"flash"` */ -export const readErc1155Uri = /*#__PURE__*/ createReadContract({ - abi: erc1155Abi, - functionName: 'uri', -}) +export const writeIUniswapV3PoolActionsFlash = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'flash', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"increaseObservationCardinalityNext"` */ -export const writeErc1155 = /*#__PURE__*/ createWriteContract({ - abi: erc1155Abi, -}) +export const writeIUniswapV3PoolActionsIncreaseObservationCardinalityNext = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'increaseObservationCardinalityNext', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"initialize"` */ -export const writeErc1155SafeBatchTransferFrom = +export const writeIUniswapV3PoolActionsInitialize = /*#__PURE__*/ createWriteContract({ - abi: erc1155Abi, - functionName: 'safeBatchTransferFrom', + abi: iUniswapV3PoolActionsAbi, + functionName: 'initialize', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"mint"` */ -export const writeErc1155SafeTransferFrom = /*#__PURE__*/ createWriteContract({ - abi: erc1155Abi, - functionName: 'safeTransferFrom', -}) +export const writeIUniswapV3PoolActionsMint = /*#__PURE__*/ createWriteContract( + { abi: iUniswapV3PoolActionsAbi, functionName: 'mint' }, +) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"swap"` */ -export const writeErc1155SetApprovalForAll = /*#__PURE__*/ createWriteContract({ - abi: erc1155Abi, - functionName: 'setApprovalForAll', -}) +export const writeIUniswapV3PoolActionsSwap = /*#__PURE__*/ createWriteContract( + { abi: iUniswapV3PoolActionsAbi, functionName: 'swap' }, +) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ */ -export const simulateErc1155 = /*#__PURE__*/ createSimulateContract({ - abi: erc1155Abi, -}) +export const simulateIUniswapV3PoolActions = + /*#__PURE__*/ createSimulateContract({ abi: iUniswapV3PoolActionsAbi }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"burn"` */ -export const simulateErc1155SafeBatchTransferFrom = +export const simulateIUniswapV3PoolActionsBurn = /*#__PURE__*/ createSimulateContract({ - abi: erc1155Abi, - functionName: 'safeBatchTransferFrom', + abi: iUniswapV3PoolActionsAbi, + functionName: 'burn', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"collect"` */ -export const simulateErc1155SafeTransferFrom = +export const simulateIUniswapV3PoolActionsCollect = /*#__PURE__*/ createSimulateContract({ - abi: erc1155Abi, - functionName: 'safeTransferFrom', + abi: iUniswapV3PoolActionsAbi, + functionName: 'collect', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"flash"` */ -export const simulateErc1155SetApprovalForAll = +export const simulateIUniswapV3PoolActionsFlash = /*#__PURE__*/ createSimulateContract({ - abi: erc1155Abi, - functionName: 'setApprovalForAll', + abi: iUniswapV3PoolActionsAbi, + functionName: 'flash', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"increaseObservationCardinalityNext"` */ -export const watchErc1155Event = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1155Abi, -}) +export const simulateIUniswapV3PoolActionsIncreaseObservationCardinalityNext = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'increaseObservationCardinalityNext', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"initialize"` */ -export const watchErc1155ApprovalForAllEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: erc1155Abi, - eventName: 'ApprovalForAll', +export const simulateIUniswapV3PoolActionsInitialize = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'initialize', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"TransferBatch"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"mint"` */ -export const watchErc1155TransferBatchEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: erc1155Abi, - eventName: 'TransferBatch', +export const simulateIUniswapV3PoolActionsMint = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'mint', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"TransferSingle"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolActionsAbi}__ and `functionName` set to `"swap"` */ -export const watchErc1155TransferSingleEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: erc1155Abi, - eventName: 'TransferSingle', +export const simulateIUniswapV3PoolActionsSwap = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolActionsAbi, + functionName: 'swap', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1155Abi}__ and `eventName` set to `"URI"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolDerivedStateAbi}__ */ -export const watchErc1155UriEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1155Abi, - eventName: 'URI', +export const readIUniswapV3PoolDerivedState = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolDerivedStateAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc165Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolDerivedStateAbi}__ and `functionName` set to `"observe"` */ -export const readErc165 = /*#__PURE__*/ createReadContract({ abi: erc165Abi }) +export const readIUniswapV3PoolDerivedStateObserve = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolDerivedStateAbi, + functionName: 'observe', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc165Abi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolDerivedStateAbi}__ and `functionName` set to `"snapshotCumulativesInside"` */ -export const readErc165SupportsInterface = /*#__PURE__*/ createReadContract({ - abi: erc165Abi, - functionName: 'supportsInterface', -}) +export const readIUniswapV3PoolDerivedStateSnapshotCumulativesInside = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolDerivedStateAbi, + functionName: 'snapshotCumulativesInside', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ */ -export const watchErc1967ProxyEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967ProxyAbi, -}) +export const watchIUniswapV3PoolEventsEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: iUniswapV3PoolEventsAbi }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"AdminChanged"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Burn"` */ -export const watchErc1967ProxyAdminChangedEvent = +export const watchIUniswapV3PoolEventsBurnEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967ProxyAbi, - eventName: 'AdminChanged', + abi: iUniswapV3PoolEventsAbi, + eventName: 'Burn', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"BeaconUpgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Collect"` */ -export const watchErc1967ProxyBeaconUpgradedEvent = +export const watchIUniswapV3PoolEventsCollectEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967ProxyAbi, - eventName: 'BeaconUpgraded', + abi: iUniswapV3PoolEventsAbi, + eventName: 'Collect', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967ProxyAbi}__ and `eventName` set to `"Upgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"CollectProtocol"` */ -export const watchErc1967ProxyUpgradedEvent = +export const watchIUniswapV3PoolEventsCollectProtocolEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967ProxyAbi, - eventName: 'Upgraded', + abi: iUniswapV3PoolEventsAbi, + eventName: 'CollectProtocol', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ - */ -export const watchErc1967UpgradeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967UpgradeAbi, -}) - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"AdminChanged"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Flash"` */ -export const watchErc1967UpgradeAdminChangedEvent = +export const watchIUniswapV3PoolEventsFlashEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967UpgradeAbi, - eventName: 'AdminChanged', + abi: iUniswapV3PoolEventsAbi, + eventName: 'Flash', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"BeaconUpgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"IncreaseObservationCardinalityNext"` */ -export const watchErc1967UpgradeBeaconUpgradedEvent = +export const watchIUniswapV3PoolEventsIncreaseObservationCardinalityNextEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967UpgradeAbi, - eventName: 'BeaconUpgraded', + abi: iUniswapV3PoolEventsAbi, + eventName: 'IncreaseObservationCardinalityNext', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc1967UpgradeAbi}__ and `eventName` set to `"Upgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Initialize"` */ -export const watchErc1967UpgradeUpgradedEvent = +export const watchIUniswapV3PoolEventsInitializeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc1967UpgradeAbi, - eventName: 'Upgraded', + abi: iUniswapV3PoolEventsAbi, + eventName: 'Initialize', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ - */ -export const readErc20 = /*#__PURE__*/ createReadContract({ abi: erc20Abi }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"allowance"` - */ -export const readErc20Allowance = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'allowance', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"balanceOf"` - */ -export const readErc20BalanceOf = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'balanceOf', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decimals"` - */ -export const readErc20Decimals = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'decimals', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"name"` - */ -export const readErc20Name = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'name', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"symbol"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Mint"` */ -export const readErc20Symbol = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'symbol', -}) +export const watchIUniswapV3PoolEventsMintEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolEventsAbi, + eventName: 'Mint', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"totalSupply"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"SetFeeProtocol"` */ -export const readErc20TotalSupply = /*#__PURE__*/ createReadContract({ - abi: erc20Abi, - functionName: 'totalSupply', -}) +export const watchIUniswapV3PoolEventsSetFeeProtocolEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolEventsAbi, + eventName: 'SetFeeProtocol', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iUniswapV3PoolEventsAbi}__ and `eventName` set to `"Swap"` */ -export const writeErc20 = /*#__PURE__*/ createWriteContract({ abi: erc20Abi }) +export const watchIUniswapV3PoolEventsSwapEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: iUniswapV3PoolEventsAbi, + eventName: 'Swap', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ */ -export const writeErc20Approve = /*#__PURE__*/ createWriteContract({ - abi: erc20Abi, - functionName: 'approve', +export const readIUniswapV3PoolImmutables = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decreaseAllowance"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"factory"` */ -export const writeErc20DecreaseAllowance = /*#__PURE__*/ createWriteContract({ - abi: erc20Abi, - functionName: 'decreaseAllowance', -}) +export const readIUniswapV3PoolImmutablesFactory = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, + functionName: 'factory', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"increaseAllowance"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"fee"` */ -export const writeErc20IncreaseAllowance = /*#__PURE__*/ createWriteContract({ - abi: erc20Abi, - functionName: 'increaseAllowance', -}) +export const readIUniswapV3PoolImmutablesFee = /*#__PURE__*/ createReadContract( + { abi: iUniswapV3PoolImmutablesAbi, functionName: 'fee' }, +) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transfer"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"maxLiquidityPerTick"` */ -export const writeErc20Transfer = /*#__PURE__*/ createWriteContract({ - abi: erc20Abi, - functionName: 'transfer', -}) +export const readIUniswapV3PoolImmutablesMaxLiquidityPerTick = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, + functionName: 'maxLiquidityPerTick', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"tickSpacing"` */ -export const writeErc20TransferFrom = /*#__PURE__*/ createWriteContract({ - abi: erc20Abi, - functionName: 'transferFrom', -}) +export const readIUniswapV3PoolImmutablesTickSpacing = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, + functionName: 'tickSpacing', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"token0"` */ -export const simulateErc20 = /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, -}) +export const readIUniswapV3PoolImmutablesToken0 = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, + functionName: 'token0', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolImmutablesAbi}__ and `functionName` set to `"token1"` */ -export const simulateErc20Approve = /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, - functionName: 'approve', -}) +export const readIUniswapV3PoolImmutablesToken1 = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolImmutablesAbi, + functionName: 'token1', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"decreaseAllowance"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ */ -export const simulateErc20DecreaseAllowance = - /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, - functionName: 'decreaseAllowance', +export const writeIUniswapV3PoolOwnerActions = + /*#__PURE__*/ createWriteContract({ abi: iUniswapV3PoolOwnerActionsAbi }) + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ and `functionName` set to `"collectProtocol"` + */ +export const writeIUniswapV3PoolOwnerActionsCollectProtocol = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolOwnerActionsAbi, + functionName: 'collectProtocol', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"increaseAllowance"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ and `functionName` set to `"setFeeProtocol"` */ -export const simulateErc20IncreaseAllowance = - /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, - functionName: 'increaseAllowance', +export const writeIUniswapV3PoolOwnerActionsSetFeeProtocol = + /*#__PURE__*/ createWriteContract({ + abi: iUniswapV3PoolOwnerActionsAbi, + functionName: 'setFeeProtocol', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transfer"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ */ -export const simulateErc20Transfer = /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, - functionName: 'transfer', -}) +export const simulateIUniswapV3PoolOwnerActions = + /*#__PURE__*/ createSimulateContract({ abi: iUniswapV3PoolOwnerActionsAbi }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc20Abi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ and `functionName` set to `"collectProtocol"` */ -export const simulateErc20TransferFrom = /*#__PURE__*/ createSimulateContract({ - abi: erc20Abi, - functionName: 'transferFrom', -}) +export const simulateIUniswapV3PoolOwnerActionsCollectProtocol = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolOwnerActionsAbi, + functionName: 'collectProtocol', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link iUniswapV3PoolOwnerActionsAbi}__ and `functionName` set to `"setFeeProtocol"` */ -export const watchErc20Event = /*#__PURE__*/ createWatchContractEvent({ - abi: erc20Abi, -}) +export const simulateIUniswapV3PoolOwnerActionsSetFeeProtocol = + /*#__PURE__*/ createSimulateContract({ + abi: iUniswapV3PoolOwnerActionsAbi, + functionName: 'setFeeProtocol', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ and `eventName` set to `"Approval"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ */ -export const watchErc20ApprovalEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc20Abi, - eventName: 'Approval', +export const readIUniswapV3PoolState = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc20Abi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"feeGrowthGlobal0X128"` */ -export const watchErc20TransferEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc20Abi, - eventName: 'Transfer', -}) +export const readIUniswapV3PoolStateFeeGrowthGlobal0X128 = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'feeGrowthGlobal0X128', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"feeGrowthGlobal1X128"` */ -export const readErc721 = /*#__PURE__*/ createReadContract({ abi: erc721Abi }) +export const readIUniswapV3PoolStateFeeGrowthGlobal1X128 = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'feeGrowthGlobal1X128', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"liquidity"` */ -export const readErc721BalanceOf = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'balanceOf', -}) +export const readIUniswapV3PoolStateLiquidity = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'liquidity', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"getApproved"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"observations"` */ -export const readErc721GetApproved = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'getApproved', -}) +export const readIUniswapV3PoolStateObservations = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'observations', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"positions"` */ -export const readErc721IsApprovedForAll = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'isApprovedForAll', -}) +export const readIUniswapV3PoolStatePositions = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'positions', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"name"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"protocolFees"` */ -export const readErc721Name = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'name', -}) +export const readIUniswapV3PoolStateProtocolFees = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'protocolFees', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"ownerOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"slot0"` */ -export const readErc721OwnerOf = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'ownerOf', +export const readIUniswapV3PoolStateSlot0 = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'slot0', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"tickBitmap"` */ -export const readErc721SupportsInterface = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'supportsInterface', -}) +export const readIUniswapV3PoolStateTickBitmap = + /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'tickBitmap', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"symbol"` + * Wraps __{@link readContract}__ with `abi` set to __{@link iUniswapV3PoolStateAbi}__ and `functionName` set to `"ticks"` */ -export const readErc721Symbol = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'symbol', +export const readIUniswapV3PoolStateTicks = /*#__PURE__*/ createReadContract({ + abi: iUniswapV3PoolStateAbi, + functionName: 'ticks', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"tokenURI"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link initializableAbi}__ */ -export const readErc721TokenUri = /*#__PURE__*/ createReadContract({ - abi: erc721Abi, - functionName: 'tokenURI', +export const watchInitializableEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: initializableAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link initializableAbi}__ and `eventName` set to `"Initialized"` */ -export const writeErc721 = /*#__PURE__*/ createWriteContract({ abi: erc721Abi }) +export const watchInitializableInitializedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: initializableAbi, + eventName: 'Initialized', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ */ -export const writeErc721Approve = /*#__PURE__*/ createWriteContract({ - abi: erc721Abi, - functionName: 'approve', +export const readMultiToken = /*#__PURE__*/ createReadContract({ + abi: multiTokenAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"CATEGORY_NOT_REGISTERED"` */ -export const writeErc721SafeTransferFrom = /*#__PURE__*/ createWriteContract({ - abi: erc721Abi, - functionName: 'safeTransferFrom', -}) +export const readMultiTokenCategoryNotRegistered = + /*#__PURE__*/ createReadContract({ + abi: multiTokenAbi, + functionName: 'CATEGORY_NOT_REGISTERED', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"CRYPTO_KITTIES_INTERFACE_ID"` */ -export const writeErc721SetApprovalForAll = /*#__PURE__*/ createWriteContract({ - abi: erc721Abi, - functionName: 'setApprovalForAll', -}) +export const readMultiTokenCryptoKittiesInterfaceId = + /*#__PURE__*/ createReadContract({ + abi: multiTokenAbi, + functionName: 'CRYPTO_KITTIES_INTERFACE_ID', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC1155_INTERFACE_ID"` */ -export const writeErc721TransferFrom = /*#__PURE__*/ createWriteContract({ - abi: erc721Abi, - functionName: 'transferFrom', -}) +export const readMultiTokenErc1155InterfaceId = + /*#__PURE__*/ createReadContract({ + abi: multiTokenAbi, + functionName: 'ERC1155_INTERFACE_ID', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC20_INTERFACE_ID"` */ -export const simulateErc721 = /*#__PURE__*/ createSimulateContract({ - abi: erc721Abi, +export const readMultiTokenErc20InterfaceId = /*#__PURE__*/ createReadContract({ + abi: multiTokenAbi, + functionName: 'ERC20_INTERFACE_ID', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC721_INTERFACE_ID"` */ -export const simulateErc721Approve = /*#__PURE__*/ createSimulateContract({ - abi: erc721Abi, - functionName: 'approve', -}) +export const readMultiTokenErc721InterfaceId = /*#__PURE__*/ createReadContract( + { abi: multiTokenAbi, functionName: 'ERC721_INTERFACE_ID' }, +) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ */ -export const simulateErc721SafeTransferFrom = - /*#__PURE__*/ createSimulateContract({ - abi: erc721Abi, - functionName: 'safeTransferFrom', - }) +export const readMultiTokenCategoryRegistry = /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"CATEGORY_NOT_REGISTERED"` */ -export const simulateErc721SetApprovalForAll = - /*#__PURE__*/ createSimulateContract({ - abi: erc721Abi, - functionName: 'setApprovalForAll', +export const readMultiTokenCategoryRegistryCategoryNotRegistered = + /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'CATEGORY_NOT_REGISTERED', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link erc721Abi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"owner"` */ -export const simulateErc721TransferFrom = /*#__PURE__*/ createSimulateContract({ - abi: erc721Abi, - functionName: 'transferFrom', -}) +export const readMultiTokenCategoryRegistryOwner = + /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'owner', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"pendingOwner"` */ -export const watchErc721Event = /*#__PURE__*/ createWatchContractEvent({ - abi: erc721Abi, -}) +export const readMultiTokenCategoryRegistryPendingOwner = + /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'pendingOwner', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"Approval"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registeredCategoryValue"` */ -export const watchErc721ApprovalEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc721Abi, - eventName: 'Approval', -}) +export const readMultiTokenCategoryRegistryRegisteredCategoryValue = + /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'registeredCategoryValue', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"supportsInterface"` */ -export const watchErc721ApprovalForAllEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: erc721Abi, - eventName: 'ApprovalForAll', +export const readMultiTokenCategoryRegistrySupportsInterface = + /*#__PURE__*/ createReadContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'supportsInterface', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link erc721Abi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ */ -export const watchErc721TransferEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: erc721Abi, - eventName: 'Transfer', -}) +export const writeMultiTokenCategoryRegistry = + /*#__PURE__*/ createWriteContract({ abi: multiTokenCategoryRegistryAbi }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const writeGnosisSafeLike = /*#__PURE__*/ createWriteContract({ - abi: gnosisSafeLikeAbi, -}) +export const writeMultiTokenCategoryRegistryAcceptOwnership = + /*#__PURE__*/ createWriteContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'acceptOwnership', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ and `functionName` set to `"execTransaction"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` */ -export const writeGnosisSafeLikeExecTransaction = +export const writeMultiTokenCategoryRegistryRegisterCategoryValue = /*#__PURE__*/ createWriteContract({ - abi: gnosisSafeLikeAbi, - functionName: 'execTransaction', + abi: multiTokenCategoryRegistryAbi, + functionName: 'registerCategoryValue', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateGnosisSafeLike = /*#__PURE__*/ createSimulateContract({ - abi: gnosisSafeLikeAbi, -}) +export const writeMultiTokenCategoryRegistryRenounceOwnership = + /*#__PURE__*/ createWriteContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'renounceOwnership', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link gnosisSafeLikeAbi}__ and `functionName` set to `"execTransaction"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"transferOwnership"` */ -export const simulateGnosisSafeLikeExecTransaction = - /*#__PURE__*/ createSimulateContract({ - abi: gnosisSafeLikeAbi, - functionName: 'execTransaction', +export const writeMultiTokenCategoryRegistryTransferOwnership = + /*#__PURE__*/ createWriteContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` */ -export const readIAccessControl = /*#__PURE__*/ createReadContract({ - abi: iAccessControlAbi, -}) +export const writeMultiTokenCategoryRegistryUnregisterCategoryValue = + /*#__PURE__*/ createWriteContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'unregisterCategoryValue', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"getRoleAdmin"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ */ -export const readIAccessControlGetRoleAdmin = /*#__PURE__*/ createReadContract({ - abi: iAccessControlAbi, - functionName: 'getRoleAdmin', -}) +export const simulateMultiTokenCategoryRegistry = + /*#__PURE__*/ createSimulateContract({ abi: multiTokenCategoryRegistryAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"hasRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const readIAccessControlHasRole = /*#__PURE__*/ createReadContract({ - abi: iAccessControlAbi, - functionName: 'hasRole', -}) +export const simulateMultiTokenCategoryRegistryAcceptOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'acceptOwnership', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` */ -export const writeIAccessControl = /*#__PURE__*/ createWriteContract({ - abi: iAccessControlAbi, -}) +export const simulateMultiTokenCategoryRegistryRegisterCategoryValue = + /*#__PURE__*/ createSimulateContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'registerCategoryValue', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"grantRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeIAccessControlGrantRole = /*#__PURE__*/ createWriteContract({ - abi: iAccessControlAbi, - functionName: 'grantRole', -}) +export const simulateMultiTokenCategoryRegistryRenounceOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'renounceOwnership', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"renounceRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"transferOwnership"` */ -export const writeIAccessControlRenounceRole = - /*#__PURE__*/ createWriteContract({ - abi: iAccessControlAbi, - functionName: 'renounceRole', +export const simulateMultiTokenCategoryRegistryTransferOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"revokeRole"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` */ -export const writeIAccessControlRevokeRole = /*#__PURE__*/ createWriteContract({ - abi: iAccessControlAbi, - functionName: 'revokeRole', -}) +export const simulateMultiTokenCategoryRegistryUnregisterCategoryValue = + /*#__PURE__*/ createSimulateContract({ + abi: multiTokenCategoryRegistryAbi, + functionName: 'unregisterCategoryValue', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ */ -export const simulateIAccessControl = /*#__PURE__*/ createSimulateContract({ - abi: iAccessControlAbi, -}) +export const watchMultiTokenCategoryRegistryEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: multiTokenCategoryRegistryAbi }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"grantRole"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryRegistered"` */ -export const simulateIAccessControlGrantRole = - /*#__PURE__*/ createSimulateContract({ - abi: iAccessControlAbi, - functionName: 'grantRole', +export const watchMultiTokenCategoryRegistryCategoryRegisteredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: multiTokenCategoryRegistryAbi, + eventName: 'CategoryRegistered', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"renounceRole"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryUnregistered"` */ -export const simulateIAccessControlRenounceRole = - /*#__PURE__*/ createSimulateContract({ - abi: iAccessControlAbi, - functionName: 'renounceRole', +export const watchMultiTokenCategoryRegistryCategoryUnregisteredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: multiTokenCategoryRegistryAbi, + eventName: 'CategoryUnregistered', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iAccessControlAbi}__ and `functionName` set to `"revokeRole"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"OwnershipTransferStarted"` */ -export const simulateIAccessControlRevokeRole = - /*#__PURE__*/ createSimulateContract({ - abi: iAccessControlAbi, - functionName: 'revokeRole', +export const watchMultiTokenCategoryRegistryOwnershipTransferStartedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: multiTokenCategoryRegistryAbi, + eventName: 'OwnershipTransferStarted', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const watchIAccessControlEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iAccessControlAbi, -}) +export const watchMultiTokenCategoryRegistryOwnershipTransferredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: multiTokenCategoryRegistryAbi, + eventName: 'OwnershipTransferred', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleAdminChanged"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownableAbi}__ */ -export const watchIAccessControlRoleAdminChangedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iAccessControlAbi, - eventName: 'RoleAdminChanged', - }) +export const readOwnable = /*#__PURE__*/ createReadContract({ abi: ownableAbi }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleGranted"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"owner"` */ -export const watchIAccessControlRoleGrantedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iAccessControlAbi, - eventName: 'RoleGranted', - }) +export const readOwnableOwner = /*#__PURE__*/ createReadContract({ + abi: ownableAbi, + functionName: 'owner', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iAccessControlAbi}__ and `eventName` set to `"RoleRevoked"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ */ -export const watchIAccessControlRoleRevokedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iAccessControlAbi, - eventName: 'RoleRevoked', - }) +export const writeOwnable = /*#__PURE__*/ createWriteContract({ + abi: ownableAbi, +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iBeaconAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const readIBeacon = /*#__PURE__*/ createReadContract({ abi: iBeaconAbi }) +export const writeOwnableRenounceOwnership = /*#__PURE__*/ createWriteContract({ + abi: ownableAbi, + functionName: 'renounceOwnership', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iBeaconAbi}__ and `functionName` set to `"implementation"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const readIBeaconImplementation = /*#__PURE__*/ createReadContract({ - abi: iBeaconAbi, - functionName: 'implementation', +export const writeOwnableTransferOwnership = /*#__PURE__*/ createWriteContract({ + abi: ownableAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ */ -export const readIChainlinkAggregatorLike = /*#__PURE__*/ createReadContract({ - abi: iChainlinkAggregatorLikeAbi, +export const simulateOwnable = /*#__PURE__*/ createSimulateContract({ + abi: ownableAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"decimals"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const readIChainlinkAggregatorLikeDecimals = - /*#__PURE__*/ createReadContract({ - abi: iChainlinkAggregatorLikeAbi, - functionName: 'decimals', +export const simulateOwnableRenounceOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: ownableAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"description"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const readIChainlinkAggregatorLikeDescription = - /*#__PURE__*/ createReadContract({ - abi: iChainlinkAggregatorLikeAbi, - functionName: 'description', +export const simulateOwnableTransferOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: ownableAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkAggregatorLikeAbi}__ and `functionName` set to `"latestRoundData"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableAbi}__ */ -export const readIChainlinkAggregatorLikeLatestRoundData = - /*#__PURE__*/ createReadContract({ - abi: iChainlinkAggregatorLikeAbi, - functionName: 'latestRoundData', +export const watchOwnableEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: ownableAbi, +}) + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableAbi}__ and `eventName` set to `"OwnershipTransferred"` + */ +export const watchOwnableOwnershipTransferredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownableAbi, + eventName: 'OwnershipTransferred', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ */ -export const readIChainlinkFeedRegistryLike = /*#__PURE__*/ createReadContract({ - abi: iChainlinkFeedRegistryLikeAbi, +export const readOwnable2Step = /*#__PURE__*/ createReadContract({ + abi: ownable2StepAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"getFeed"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"owner"` */ -export const readIChainlinkFeedRegistryLikeGetFeed = - /*#__PURE__*/ createReadContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'getFeed', - }) +export const readOwnable2StepOwner = /*#__PURE__*/ createReadContract({ + abi: ownable2StepAbi, + functionName: 'owner', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"pendingOwner"` */ -export const writeIChainlinkFeedRegistryLike = - /*#__PURE__*/ createWriteContract({ abi: iChainlinkFeedRegistryLikeAbi }) +export const readOwnable2StepPendingOwner = /*#__PURE__*/ createReadContract({ + abi: ownable2StepAbi, + functionName: 'pendingOwner', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ */ -export const writeIChainlinkFeedRegistryLikeAcceptOwnership = - /*#__PURE__*/ createWriteContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'acceptOwnership', - }) +export const writeOwnable2Step = /*#__PURE__*/ createWriteContract({ + abi: ownable2StepAbi, +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"confirmFeed"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const writeIChainlinkFeedRegistryLikeConfirmFeed = +export const writeOwnable2StepAcceptOwnership = /*#__PURE__*/ createWriteContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'confirmFeed', + abi: ownable2StepAbi, + functionName: 'acceptOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"proposeFeed"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeIChainlinkFeedRegistryLikeProposeFeed = +export const writeOwnable2StepRenounceOwnership = /*#__PURE__*/ createWriteContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'proposeFeed', + abi: ownable2StepAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"transferOwnership"` */ -export const writeIChainlinkFeedRegistryLikeTransferOwnership = +export const writeOwnable2StepTransferOwnership = /*#__PURE__*/ createWriteContract({ - abi: iChainlinkFeedRegistryLikeAbi, + abi: ownable2StepAbi, functionName: 'transferOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ */ -export const simulateIChainlinkFeedRegistryLike = - /*#__PURE__*/ createSimulateContract({ abi: iChainlinkFeedRegistryLikeAbi }) +export const simulateOwnable2Step = /*#__PURE__*/ createSimulateContract({ + abi: ownable2StepAbi, +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const simulateIChainlinkFeedRegistryLikeAcceptOwnership = +export const simulateOwnable2StepAcceptOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iChainlinkFeedRegistryLikeAbi, + abi: ownable2StepAbi, functionName: 'acceptOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"confirmFeed"` - */ -export const simulateIChainlinkFeedRegistryLikeConfirmFeed = - /*#__PURE__*/ createSimulateContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'confirmFeed', - }) - -/** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"proposeFeed"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateIChainlinkFeedRegistryLikeProposeFeed = +export const simulateOwnable2StepRenounceOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iChainlinkFeedRegistryLikeAbi, - functionName: 'proposeFeed', + abi: ownable2StepAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iChainlinkFeedRegistryLikeAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"transferOwnership"` */ -export const simulateIChainlinkFeedRegistryLikeTransferOwnership = +export const simulateOwnable2StepTransferOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iChainlinkFeedRegistryLikeAbi, + abi: ownable2StepAbi, functionName: 'transferOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ */ -export const readICryptoKitties = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, +export const watchOwnable2StepEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ and `eventName` set to `"OwnershipTransferStarted"` */ -export const readICryptoKittiesBalanceOf = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'balanceOf', -}) +export const watchOwnable2StepOwnershipTransferStartedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepAbi, + eventName: 'OwnershipTransferStarted', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"name"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const readICryptoKittiesName = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'name', -}) +export const watchOwnable2StepOwnershipTransferredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepAbi, + eventName: 'OwnershipTransferred', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"ownerOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ */ -export const readICryptoKittiesOwnerOf = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'ownerOf', +export const readOwnable2StepUpgradeable = /*#__PURE__*/ createReadContract({ + abi: ownable2StepUpgradeableAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"owner"` */ -export const readICryptoKittiesSupportsInterface = +export const readOwnable2StepUpgradeableOwner = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'supportsInterface', + abi: ownable2StepUpgradeableAbi, + functionName: 'owner', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"symbol"` - */ -export const readICryptoKittiesSymbol = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'symbol', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"tokenMetadata"` - */ -export const readICryptoKittiesTokenMetadata = /*#__PURE__*/ createReadContract( - { abi: iCryptoKittiesAbi, functionName: 'tokenMetadata' }, -) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"tokensOfOwner"` - */ -export const readICryptoKittiesTokensOfOwner = /*#__PURE__*/ createReadContract( - { abi: iCryptoKittiesAbi, functionName: 'tokensOfOwner' }, -) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"totalSupply"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"pendingOwner"` */ -export const readICryptoKittiesTotalSupply = /*#__PURE__*/ createReadContract({ - abi: iCryptoKittiesAbi, - functionName: 'totalSupply', -}) +export const readOwnable2StepUpgradeablePendingOwner = + /*#__PURE__*/ createReadContract({ + abi: ownable2StepUpgradeableAbi, + functionName: 'pendingOwner', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ */ -export const writeICryptoKitties = /*#__PURE__*/ createWriteContract({ - abi: iCryptoKittiesAbi, +export const writeOwnable2StepUpgradeable = /*#__PURE__*/ createWriteContract({ + abi: ownable2StepUpgradeableAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const writeICryptoKittiesApprove = /*#__PURE__*/ createWriteContract({ - abi: iCryptoKittiesAbi, - functionName: 'approve', -}) +export const writeOwnable2StepUpgradeableAcceptOwnership = + /*#__PURE__*/ createWriteContract({ + abi: ownable2StepUpgradeableAbi, + functionName: 'acceptOwnership', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transfer"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeICryptoKittiesTransfer = /*#__PURE__*/ createWriteContract({ - abi: iCryptoKittiesAbi, - functionName: 'transfer', -}) +export const writeOwnable2StepUpgradeableRenounceOwnership = + /*#__PURE__*/ createWriteContract({ + abi: ownable2StepUpgradeableAbi, + functionName: 'renounceOwnership', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const writeICryptoKittiesTransferFrom = +export const writeOwnable2StepUpgradeableTransferOwnership = /*#__PURE__*/ createWriteContract({ - abi: iCryptoKittiesAbi, - functionName: 'transferFrom', + abi: ownable2StepUpgradeableAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ */ -export const simulateICryptoKitties = /*#__PURE__*/ createSimulateContract({ - abi: iCryptoKittiesAbi, -}) +export const simulateOwnable2StepUpgradeable = + /*#__PURE__*/ createSimulateContract({ abi: ownable2StepUpgradeableAbi }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const simulateICryptoKittiesApprove = +export const simulateOwnable2StepUpgradeableAcceptOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iCryptoKittiesAbi, - functionName: 'approve', + abi: ownable2StepUpgradeableAbi, + functionName: 'acceptOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transfer"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateICryptoKittiesTransfer = +export const simulateOwnable2StepUpgradeableRenounceOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iCryptoKittiesAbi, - functionName: 'transfer', + abi: ownable2StepUpgradeableAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const simulateICryptoKittiesTransferFrom = +export const simulateOwnable2StepUpgradeableTransferOwnership = /*#__PURE__*/ createSimulateContract({ - abi: iCryptoKittiesAbi, - functionName: 'transferFrom', - }) - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ - */ -export const watchICryptoKittiesEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iCryptoKittiesAbi, -}) - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `eventName` set to `"Approval"` - */ -export const watchICryptoKittiesApprovalEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iCryptoKittiesAbi, - eventName: 'Approval', + abi: ownable2StepUpgradeableAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iCryptoKittiesAbi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ */ -export const watchICryptoKittiesTransferEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iCryptoKittiesAbi, - eventName: 'Transfer', - }) +export const watchOwnable2StepUpgradeableEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: ownable2StepUpgradeableAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"Initialized"` */ -export const readIerc1155 = /*#__PURE__*/ createReadContract({ - abi: ierc1155Abi, -}) +export const watchOwnable2StepUpgradeableInitializedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepUpgradeableAbi, + eventName: 'Initialized', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferStarted"` */ -export const readIerc1155BalanceOf = /*#__PURE__*/ createReadContract({ - abi: ierc1155Abi, - functionName: 'balanceOf', -}) +export const watchOwnable2StepUpgradeableOwnershipTransferStartedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepUpgradeableAbi, + eventName: 'OwnershipTransferStarted', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"balanceOfBatch"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const readIerc1155BalanceOfBatch = /*#__PURE__*/ createReadContract({ - abi: ierc1155Abi, - functionName: 'balanceOfBatch', -}) +export const watchOwnable2StepUpgradeableOwnershipTransferredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownable2StepUpgradeableAbi, + eventName: 'OwnershipTransferred', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ */ -export const readIerc1155IsApprovedForAll = /*#__PURE__*/ createReadContract({ - abi: ierc1155Abi, - functionName: 'isApprovedForAll', +export const readOwnableUpgradeable = /*#__PURE__*/ createReadContract({ + abi: ownableUpgradeableAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"owner"` */ -export const readIerc1155SupportsInterface = /*#__PURE__*/ createReadContract({ - abi: ierc1155Abi, - functionName: 'supportsInterface', +export const readOwnableUpgradeableOwner = /*#__PURE__*/ createReadContract({ + abi: ownableUpgradeableAbi, + functionName: 'owner', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ */ -export const writeIerc1155 = /*#__PURE__*/ createWriteContract({ - abi: ierc1155Abi, +export const writeOwnableUpgradeable = /*#__PURE__*/ createWriteContract({ + abi: ownableUpgradeableAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeIerc1155SafeBatchTransferFrom = +export const writeOwnableUpgradeableRenounceOwnership = /*#__PURE__*/ createWriteContract({ - abi: ierc1155Abi, - functionName: 'safeBatchTransferFrom', + abi: ownableUpgradeableAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeTransferFrom"` - */ -export const writeIerc1155SafeTransferFrom = /*#__PURE__*/ createWriteContract({ - abi: ierc1155Abi, - functionName: 'safeTransferFrom', -}) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const writeIerc1155SetApprovalForAll = /*#__PURE__*/ createWriteContract( - { abi: ierc1155Abi, functionName: 'setApprovalForAll' }, -) +export const writeOwnableUpgradeableTransferOwnership = + /*#__PURE__*/ createWriteContract({ + abi: ownableUpgradeableAbi, + functionName: 'transferOwnership', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ */ -export const simulateIerc1155 = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155Abi, +export const simulateOwnableUpgradeable = /*#__PURE__*/ createSimulateContract({ + abi: ownableUpgradeableAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateIerc1155SafeBatchTransferFrom = +export const simulateOwnableUpgradeableRenounceOwnership = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155Abi, - functionName: 'safeBatchTransferFrom', + abi: ownableUpgradeableAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` */ -export const simulateIerc1155SafeTransferFrom = +export const simulateOwnableUpgradeableTransferOwnership = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155Abi, - functionName: 'safeTransferFrom', + abi: ownableUpgradeableAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155Abi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ */ -export const simulateIerc1155SetApprovalForAll = - /*#__PURE__*/ createSimulateContract({ - abi: ierc1155Abi, - functionName: 'setApprovalForAll', - }) +export const watchOwnableUpgradeableEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: ownableUpgradeableAbi }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `eventName` set to `"Initialized"` */ -export const watchIerc1155Event = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155Abi, -}) +export const watchOwnableUpgradeableInitializedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: ownableUpgradeableAbi, + eventName: 'Initialized', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const watchIerc1155ApprovalForAllEvent = +export const watchOwnableUpgradeableOwnershipTransferredEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155Abi, - eventName: 'ApprovalForAll', + abi: ownableUpgradeableAbi, + eventName: 'OwnershipTransferred', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"TransferBatch"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ */ -export const watchIerc1155TransferBatchEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155Abi, - eventName: 'TransferBatch', - }) +export const readPwnConfig = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"TransferSingle"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"MAX_FEE"` */ -export const watchIerc1155TransferSingleEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155Abi, - eventName: 'TransferSingle', - }) +export const readPwnConfigMaxFee = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'MAX_FEE', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155Abi}__ and `eventName` set to `"URI"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"fee"` */ -export const watchIerc1155UriEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155Abi, - eventName: 'URI', +export const readPwnConfigFee = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'fee', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"feeCollector"` */ -export const readIerc1155MetadataUri = /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, +export const readPwnConfigFeeCollector = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'feeCollector', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"getPoolAdapter"` */ -export const readIerc1155MetadataUriBalanceOf = - /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'balanceOf', - }) +export const readPwnConfigGetPoolAdapter = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'getPoolAdapter', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"balanceOfBatch"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"getStateFingerprintComputer"` */ -export const readIerc1155MetadataUriBalanceOfBatch = +export const readPwnConfigGetStateFingerprintComputer = /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'balanceOfBatch', + abi: pwnConfigAbi, + functionName: 'getStateFingerprintComputer', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"loanMetadataUri"` */ -export const readIerc1155MetadataUriIsApprovedForAll = - /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'isApprovedForAll', - }) +export const readPwnConfigLoanMetadataUri = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'loanMetadataUri', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"owner"` */ -export const readIerc1155MetadataUriSupportsInterface = - /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'supportsInterface', - }) +export const readPwnConfigOwner = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'owner', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"uri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"pendingOwner"` */ -export const readIerc1155MetadataUriUri = /*#__PURE__*/ createReadContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'uri', +export const readPwnConfigPendingOwner = /*#__PURE__*/ createReadContract({ + abi: pwnConfigAbi, + functionName: 'pendingOwner', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ */ -export const writeIerc1155MetadataUri = /*#__PURE__*/ createWriteContract({ - abi: ierc1155MetadataUriAbi, +export const writePwnConfig = /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const writeIerc1155MetadataUriSafeBatchTransferFrom = - /*#__PURE__*/ createWriteContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'safeBatchTransferFrom', - }) +export const writePwnConfigAcceptOwnership = /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'acceptOwnership', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"initialize"` */ -export const writeIerc1155MetadataUriSafeTransferFrom = - /*#__PURE__*/ createWriteContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'safeTransferFrom', - }) +export const writePwnConfigInitialize = /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'initialize', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerPoolAdapter"` */ -export const writeIerc1155MetadataUriSetApprovalForAll = +export const writePwnConfigRegisterPoolAdapter = /*#__PURE__*/ createWriteContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'setApprovalForAll', + abi: pwnConfigAbi, + functionName: 'registerPoolAdapter', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerStateFingerprintComputer"` */ -export const simulateIerc1155MetadataUri = /*#__PURE__*/ createSimulateContract( - { abi: ierc1155MetadataUriAbi }, -) +export const writePwnConfigRegisterStateFingerprintComputer = + /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'registerStateFingerprintComputer', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateIerc1155MetadataUriSafeBatchTransferFrom = - /*#__PURE__*/ createSimulateContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'safeBatchTransferFrom', +export const writePwnConfigRenounceOwnership = + /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setDefaultLOANMetadataUri"` */ -export const simulateIerc1155MetadataUriSafeTransferFrom = - /*#__PURE__*/ createSimulateContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'safeTransferFrom', +export const writePwnConfigSetDefaultLoanMetadataUri = + /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'setDefaultLOANMetadataUri', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFee"` */ -export const simulateIerc1155MetadataUriSetApprovalForAll = - /*#__PURE__*/ createSimulateContract({ - abi: ierc1155MetadataUriAbi, - functionName: 'setApprovalForAll', - }) +export const writePwnConfigSetFee = /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'setFee', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFeeCollector"` */ -export const watchIerc1155MetadataUriEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: ierc1155MetadataUriAbi }) +export const writePwnConfigSetFeeCollector = /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'setFeeCollector', +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setLOANMetadataUri"` */ -export const watchIerc1155MetadataUriApprovalForAllEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155MetadataUriAbi, - eventName: 'ApprovalForAll', +export const writePwnConfigSetLoanMetadataUri = + /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'setLOANMetadataUri', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"TransferBatch"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"transferOwnership"` */ -export const watchIerc1155MetadataUriTransferBatchEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155MetadataUriAbi, - eventName: 'TransferBatch', +export const writePwnConfigTransferOwnership = + /*#__PURE__*/ createWriteContract({ + abi: pwnConfigAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"TransferSingle"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ */ -export const watchIerc1155MetadataUriTransferSingleEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155MetadataUriAbi, - eventName: 'TransferSingle', - }) +export const simulatePwnConfig = /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1155MetadataUriAbi}__ and `eventName` set to `"URI"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const watchIerc1155MetadataUriUriEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1155MetadataUriAbi, - eventName: 'URI', +export const simulatePwnConfigAcceptOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'acceptOwnership', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"initialize"` */ -export const readIerc1155Receiver = /*#__PURE__*/ createReadContract({ - abi: ierc1155ReceiverAbi, -}) +export const simulatePwnConfigInitialize = /*#__PURE__*/ createSimulateContract( + { abi: pwnConfigAbi, functionName: 'initialize' }, +) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerPoolAdapter"` */ -export const readIerc1155ReceiverSupportsInterface = - /*#__PURE__*/ createReadContract({ - abi: ierc1155ReceiverAbi, - functionName: 'supportsInterface', +export const simulatePwnConfigRegisterPoolAdapter = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'registerPoolAdapter', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerStateFingerprintComputer"` */ -export const writeIerc1155Receiver = /*#__PURE__*/ createWriteContract({ - abi: ierc1155ReceiverAbi, -}) +export const simulatePwnConfigRegisterStateFingerprintComputer = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'registerStateFingerprintComputer', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeIerc1155ReceiverOnErc1155BatchReceived = - /*#__PURE__*/ createWriteContract({ - abi: ierc1155ReceiverAbi, - functionName: 'onERC1155BatchReceived', +export const simulatePwnConfigRenounceOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155Received"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setDefaultLOANMetadataUri"` */ -export const writeIerc1155ReceiverOnErc1155Received = - /*#__PURE__*/ createWriteContract({ - abi: ierc1155ReceiverAbi, - functionName: 'onERC1155Received', +export const simulatePwnConfigSetDefaultLoanMetadataUri = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'setDefaultLOANMetadataUri', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFee"` */ -export const simulateIerc1155Receiver = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155ReceiverAbi, +export const simulatePwnConfigSetFee = /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'setFee', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFeeCollector"` */ -export const simulateIerc1155ReceiverOnErc1155BatchReceived = +export const simulatePwnConfigSetFeeCollector = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155ReceiverAbi, - functionName: 'onERC1155BatchReceived', + abi: pwnConfigAbi, + functionName: 'setFeeCollector', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc1155ReceiverAbi}__ and `functionName` set to `"onERC1155Received"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setLOANMetadataUri"` */ -export const simulateIerc1155ReceiverOnErc1155Received = +export const simulatePwnConfigSetLoanMetadataUri = /*#__PURE__*/ createSimulateContract({ - abi: ierc1155ReceiverAbi, - functionName: 'onERC1155Received', + abi: pwnConfigAbi, + functionName: 'setLOANMetadataUri', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1271Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"transferOwnership"` */ -export const readIerc1271 = /*#__PURE__*/ createReadContract({ - abi: ierc1271Abi, -}) +export const simulatePwnConfigTransferOwnership = + /*#__PURE__*/ createSimulateContract({ + abi: pwnConfigAbi, + functionName: 'transferOwnership', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1271Abi}__ and `functionName` set to `"isValidSignature"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ */ -export const readIerc1271IsValidSignature = /*#__PURE__*/ createReadContract({ - abi: ierc1271Abi, - functionName: 'isValidSignature', +export const watchPwnConfigEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: pwnConfigAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1822ProxiableAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"DefaultLOANMetadataUriUpdated"` */ -export const readIerc1822Proxiable = /*#__PURE__*/ createReadContract({ - abi: ierc1822ProxiableAbi, -}) +export const watchPwnConfigDefaultLoanMetadataUriUpdatedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnConfigAbi, + eventName: 'DefaultLOANMetadataUriUpdated', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc1822ProxiableAbi}__ and `functionName` set to `"proxiableUUID"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"FeeCollectorUpdated"` */ -export const readIerc1822ProxiableProxiableUuid = - /*#__PURE__*/ createReadContract({ - abi: ierc1822ProxiableAbi, - functionName: 'proxiableUUID', +export const watchPwnConfigFeeCollectorUpdatedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnConfigAbi, + eventName: 'FeeCollectorUpdated', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"FeeUpdated"` */ -export const watchIerc1967Event = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1967Abi, -}) +export const watchPwnConfigFeeUpdatedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnConfigAbi, + eventName: 'FeeUpdated', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"AdminChanged"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"Initialized"` */ -export const watchIerc1967AdminChangedEvent = +export const watchPwnConfigInitializedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1967Abi, - eventName: 'AdminChanged', + abi: pwnConfigAbi, + eventName: 'Initialized', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"BeaconUpgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"LOANMetadataUriUpdated"` */ -export const watchIerc1967BeaconUpgradedEvent = +export const watchPwnConfigLoanMetadataUriUpdatedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1967Abi, - eventName: 'BeaconUpgraded', + abi: pwnConfigAbi, + eventName: 'LOANMetadataUriUpdated', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc1967Abi}__ and `eventName` set to `"Upgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"OwnershipTransferStarted"` */ -export const watchIerc1967UpgradedEvent = +export const watchPwnConfigOwnershipTransferStartedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc1967Abi, - eventName: 'Upgraded', + abi: pwnConfigAbi, + eventName: 'OwnershipTransferStarted', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const readIerc20Metadata = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, -}) +export const watchPwnConfigOwnershipTransferredEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnConfigAbi, + eventName: 'OwnershipTransferred', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"allowance"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ */ -export const readIerc20MetadataAllowance = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'allowance', -}) +export const readPwnHub = /*#__PURE__*/ createReadContract({ abi: pwnHubAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"hasTag"` */ -export const readIerc20MetadataBalanceOf = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'balanceOf', +export const readPwnHubHasTag = /*#__PURE__*/ createReadContract({ + abi: pwnHubAbi, + functionName: 'hasTag', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"decimals"` - */ -export const readIerc20MetadataDecimals = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'decimals', + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"owner"` + */ +export const readPwnHubOwner = /*#__PURE__*/ createReadContract({ + abi: pwnHubAbi, + functionName: 'owner', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"name"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"pendingOwner"` */ -export const readIerc20MetadataName = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'name', +export const readPwnHubPendingOwner = /*#__PURE__*/ createReadContract({ + abi: pwnHubAbi, + functionName: 'pendingOwner', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"symbol"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ */ -export const readIerc20MetadataSymbol = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'symbol', -}) +export const writePwnHub = /*#__PURE__*/ createWriteContract({ abi: pwnHubAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"totalSupply"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const readIerc20MetadataTotalSupply = /*#__PURE__*/ createReadContract({ - abi: ierc20MetadataAbi, - functionName: 'totalSupply', +export const writePwnHubAcceptOwnership = /*#__PURE__*/ createWriteContract({ + abi: pwnHubAbi, + functionName: 'acceptOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const writeIerc20Metadata = /*#__PURE__*/ createWriteContract({ - abi: ierc20MetadataAbi, +export const writePwnHubRenounceOwnership = /*#__PURE__*/ createWriteContract({ + abi: pwnHubAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTag"` */ -export const writeIerc20MetadataApprove = /*#__PURE__*/ createWriteContract({ - abi: ierc20MetadataAbi, - functionName: 'approve', +export const writePwnHubSetTag = /*#__PURE__*/ createWriteContract({ + abi: pwnHubAbi, + functionName: 'setTag', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transfer"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTags"` */ -export const writeIerc20MetadataTransfer = /*#__PURE__*/ createWriteContract({ - abi: ierc20MetadataAbi, - functionName: 'transfer', +export const writePwnHubSetTags = /*#__PURE__*/ createWriteContract({ + abi: pwnHubAbi, + functionName: 'setTags', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"transferOwnership"` */ -export const writeIerc20MetadataTransferFrom = - /*#__PURE__*/ createWriteContract({ - abi: ierc20MetadataAbi, - functionName: 'transferFrom', - }) +export const writePwnHubTransferOwnership = /*#__PURE__*/ createWriteContract({ + abi: pwnHubAbi, + functionName: 'transferOwnership', +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ */ -export const simulateIerc20Metadata = /*#__PURE__*/ createSimulateContract({ - abi: ierc20MetadataAbi, +export const simulatePwnHub = /*#__PURE__*/ createSimulateContract({ + abi: pwnHubAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"acceptOwnership"` */ -export const simulateIerc20MetadataApprove = +export const simulatePwnHubAcceptOwnership = /*#__PURE__*/ createSimulateContract({ - abi: ierc20MetadataAbi, - functionName: 'approve', + abi: pwnHubAbi, + functionName: 'acceptOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transfer"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"renounceOwnership"` */ -export const simulateIerc20MetadataTransfer = +export const simulatePwnHubRenounceOwnership = /*#__PURE__*/ createSimulateContract({ - abi: ierc20MetadataAbi, - functionName: 'transfer', + abi: pwnHubAbi, + functionName: 'renounceOwnership', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTag"` */ -export const simulateIerc20MetadataTransferFrom = +export const simulatePwnHubSetTag = /*#__PURE__*/ createSimulateContract({ + abi: pwnHubAbi, + functionName: 'setTag', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTags"` + */ +export const simulatePwnHubSetTags = /*#__PURE__*/ createSimulateContract({ + abi: pwnHubAbi, + functionName: 'setTags', +}) + +/** + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"transferOwnership"` + */ +export const simulatePwnHubTransferOwnership = /*#__PURE__*/ createSimulateContract({ - abi: ierc20MetadataAbi, - functionName: 'transferFrom', + abi: pwnHubAbi, + functionName: 'transferOwnership', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ */ -export const watchIerc20MetadataEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc20MetadataAbi, +export const watchPwnHubEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: pwnHubAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `eventName` set to `"Approval"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"OwnershipTransferStarted"` */ -export const watchIerc20MetadataApprovalEvent = +export const watchPwnHubOwnershipTransferStartedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc20MetadataAbi, - eventName: 'Approval', + abi: pwnHubAbi, + eventName: 'OwnershipTransferStarted', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc20MetadataAbi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"OwnershipTransferred"` */ -export const watchIerc20MetadataTransferEvent = +export const watchPwnHubOwnershipTransferredEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc20MetadataAbi, - eventName: 'Transfer', + abi: pwnHubAbi, + eventName: 'OwnershipTransferred', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"TagSet"` */ -export const readIerc20Permit = /*#__PURE__*/ createReadContract({ - abi: ierc20PermitAbi, +export const watchPwnHubTagSetEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: pwnHubAbi, + eventName: 'TagSet', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ */ -export const readIerc20PermitDomainSeparator = /*#__PURE__*/ createReadContract( - { abi: ierc20PermitAbi, functionName: 'DOMAIN_SEPARATOR' }, -) +export const readPwnloan = /*#__PURE__*/ createReadContract({ abi: pwnloanAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"nonces"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"balanceOf"` */ -export const readIerc20PermitNonces = /*#__PURE__*/ createReadContract({ - abi: ierc20PermitAbi, - functionName: 'nonces', +export const readPwnloanBalanceOf = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'balanceOf', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"getApproved"` */ -export const writeIerc20Permit = /*#__PURE__*/ createWriteContract({ - abi: ierc20PermitAbi, +export const readPwnloanGetApproved = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'getApproved', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"permit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"getStateFingerprint"` */ -export const writeIerc20PermitPermit = /*#__PURE__*/ createWriteContract({ - abi: ierc20PermitAbi, - functionName: 'permit', +export const readPwnloanGetStateFingerprint = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'getStateFingerprint', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20PermitAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"hub"` */ -export const simulateIerc20Permit = /*#__PURE__*/ createSimulateContract({ - abi: ierc20PermitAbi, +export const readPwnloanHub = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'hub', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc20PermitAbi}__ and `functionName` set to `"permit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"isApprovedForAll"` */ -export const simulateIerc20PermitPermit = /*#__PURE__*/ createSimulateContract({ - abi: ierc20PermitAbi, - functionName: 'permit', +export const readPwnloanIsApprovedForAll = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'isApprovedForAll', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc5646Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"lastLoanId"` */ -export const readIerc5646 = /*#__PURE__*/ createReadContract({ - abi: ierc5646Abi, +export const readPwnloanLastLoanId = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'lastLoanId', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc5646Abi}__ and `functionName` set to `"getStateFingerprint"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"loanContract"` */ -export const readIerc5646GetStateFingerprint = /*#__PURE__*/ createReadContract( - { abi: ierc5646Abi, functionName: 'getStateFingerprint' }, -) +export const readPwnloanLoanContract = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'loanContract', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"name"` */ -export const readIerc721Metadata = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, +export const readPwnloanName = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'name', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"ownerOf"` */ -export const readIerc721MetadataBalanceOf = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'balanceOf', +export const readPwnloanOwnerOf = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'ownerOf', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"getApproved"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"supportsInterface"` */ -export const readIerc721MetadataGetApproved = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'getApproved', +export const readPwnloanSupportsInterface = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'supportsInterface', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"symbol"` */ -export const readIerc721MetadataIsApprovedForAll = - /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'isApprovedForAll', - }) +export const readPwnloanSymbol = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'symbol', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"name"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"tokenURI"` */ -export const readIerc721MetadataName = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'name', +export const readPwnloanTokenUri = /*#__PURE__*/ createReadContract({ + abi: pwnloanAbi, + functionName: 'tokenURI', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"ownerOf"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ */ -export const readIerc721MetadataOwnerOf = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'ownerOf', +export const writePwnloan = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"approve"` */ -export const readIerc721MetadataSupportsInterface = - /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'supportsInterface', - }) +export const writePwnloanApprove = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'approve', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"symbol"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"burn"` */ -export const readIerc721MetadataSymbol = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'symbol', +export const writePwnloanBurn = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'burn', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"tokenURI"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"mint"` */ -export const readIerc721MetadataTokenUri = /*#__PURE__*/ createReadContract({ - abi: ierc721MetadataAbi, - functionName: 'tokenURI', +export const writePwnloanMint = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'mint', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"safeTransferFrom"` */ -export const writeIerc721Metadata = /*#__PURE__*/ createWriteContract({ - abi: ierc721MetadataAbi, +export const writePwnloanSafeTransferFrom = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'safeTransferFrom', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"setApprovalForAll"` */ -export const writeIerc721MetadataApprove = /*#__PURE__*/ createWriteContract({ - abi: ierc721MetadataAbi, - functionName: 'approve', +export const writePwnloanSetApprovalForAll = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'setApprovalForAll', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"transferFrom"` */ -export const writeIerc721MetadataSafeTransferFrom = - /*#__PURE__*/ createWriteContract({ - abi: ierc721MetadataAbi, - functionName: 'safeTransferFrom', - }) +export const writePwnloanTransferFrom = /*#__PURE__*/ createWriteContract({ + abi: pwnloanAbi, + functionName: 'transferFrom', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ */ -export const writeIerc721MetadataSetApprovalForAll = - /*#__PURE__*/ createWriteContract({ - abi: ierc721MetadataAbi, - functionName: 'setApprovalForAll', - }) +export const simulatePwnloan = /*#__PURE__*/ createSimulateContract({ + abi: pwnloanAbi, +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"approve"` */ -export const writeIerc721MetadataTransferFrom = - /*#__PURE__*/ createWriteContract({ - abi: ierc721MetadataAbi, - functionName: 'transferFrom', - }) +export const simulatePwnloanApprove = /*#__PURE__*/ createSimulateContract({ + abi: pwnloanAbi, + functionName: 'approve', +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"burn"` */ -export const simulateIerc721Metadata = /*#__PURE__*/ createSimulateContract({ - abi: ierc721MetadataAbi, +export const simulatePwnloanBurn = /*#__PURE__*/ createSimulateContract({ + abi: pwnloanAbi, + functionName: 'burn', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"mint"` */ -export const simulateIerc721MetadataApprove = - /*#__PURE__*/ createSimulateContract({ - abi: ierc721MetadataAbi, - functionName: 'approve', - }) +export const simulatePwnloanMint = /*#__PURE__*/ createSimulateContract({ + abi: pwnloanAbi, + functionName: 'mint', +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"safeTransferFrom"` */ -export const simulateIerc721MetadataSafeTransferFrom = +export const simulatePwnloanSafeTransferFrom = /*#__PURE__*/ createSimulateContract({ - abi: ierc721MetadataAbi, + abi: pwnloanAbi, functionName: 'safeTransferFrom', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"setApprovalForAll"` */ -export const simulateIerc721MetadataSetApprovalForAll = +export const simulatePwnloanSetApprovalForAll = /*#__PURE__*/ createSimulateContract({ - abi: ierc721MetadataAbi, + abi: pwnloanAbi, functionName: 'setApprovalForAll', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"transferFrom"` */ -export const simulateIerc721MetadataTransferFrom = - /*#__PURE__*/ createSimulateContract({ - abi: ierc721MetadataAbi, - functionName: 'transferFrom', - }) +export const simulatePwnloanTransferFrom = /*#__PURE__*/ createSimulateContract( + { abi: pwnloanAbi, functionName: 'transferFrom' }, +) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ */ -export const watchIerc721MetadataEvent = /*#__PURE__*/ createWatchContractEvent( - { abi: ierc721MetadataAbi }, -) +export const watchPwnloanEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: pwnloanAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"Approval"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"Approval"` */ -export const watchIerc721MetadataApprovalEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ierc721MetadataAbi, - eventName: 'Approval', - }) +export const watchPwnloanApprovalEvent = /*#__PURE__*/ createWatchContractEvent( + { abi: pwnloanAbi, eventName: 'Approval' }, +) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"ApprovalForAll"` */ -export const watchIerc721MetadataApprovalForAllEvent = +export const watchPwnloanApprovalForAllEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc721MetadataAbi, + abi: pwnloanAbi, eventName: 'ApprovalForAll', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ierc721MetadataAbi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"LOANBurned"` */ -export const watchIerc721MetadataTransferEvent = +export const watchPwnloanLoanBurnedEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ierc721MetadataAbi, - eventName: 'Transfer', + abi: pwnloanAbi, + eventName: 'LOANBurned', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ - */ -export const writeIerc721Receiver = /*#__PURE__*/ createWriteContract({ - abi: ierc721ReceiverAbi, -}) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ and `functionName` set to `"onERC721Received"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"LOANMinted"` */ -export const writeIerc721ReceiverOnErc721Received = - /*#__PURE__*/ createWriteContract({ - abi: ierc721ReceiverAbi, - functionName: 'onERC721Received', +export const watchPwnloanLoanMintedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnloanAbi, + eventName: 'LOANMinted', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"Transfer"` */ -export const simulateIerc721Receiver = /*#__PURE__*/ createSimulateContract({ - abi: ierc721ReceiverAbi, -}) +export const watchPwnloanTransferEvent = /*#__PURE__*/ createWatchContractEvent( + { abi: pwnloanAbi, eventName: 'Transfer' }, +) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ierc721ReceiverAbi}__ and `functionName` set to `"onERC721Received"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ */ -export const simulateIerc721ReceiverOnErc721Received = - /*#__PURE__*/ createSimulateContract({ - abi: ierc721ReceiverAbi, - functionName: 'onERC721Received', - }) +export const readPwnRevokedNonce = /*#__PURE__*/ createReadContract({ + abi: pwnRevokedNonceAbi, +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"accessTag"` */ -export const readIMultiTokenCategoryRegistry = /*#__PURE__*/ createReadContract( - { abi: iMultiTokenCategoryRegistryAbi }, -) +export const readPwnRevokedNonceAccessTag = /*#__PURE__*/ createReadContract({ + abi: pwnRevokedNonceAbi, + functionName: 'accessTag', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registeredCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"currentNonceSpace"` */ -export const readIMultiTokenCategoryRegistryRegisteredCategoryValue = +export const readPwnRevokedNonceCurrentNonceSpace = /*#__PURE__*/ createReadContract({ - abi: iMultiTokenCategoryRegistryAbi, - functionName: 'registeredCategoryValue', + abi: pwnRevokedNonceAbi, + functionName: 'currentNonceSpace', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ - */ -export const writeIMultiTokenCategoryRegistry = - /*#__PURE__*/ createWriteContract({ abi: iMultiTokenCategoryRegistryAbi }) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"hub"` */ -export const writeIMultiTokenCategoryRegistryRegisterCategoryValue = - /*#__PURE__*/ createWriteContract({ - abi: iMultiTokenCategoryRegistryAbi, - functionName: 'registerCategoryValue', - }) +export const readPwnRevokedNonceHub = /*#__PURE__*/ createReadContract({ + abi: pwnRevokedNonceAbi, + functionName: 'hub', +}) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"isNonceRevoked"` */ -export const writeIMultiTokenCategoryRegistryUnregisterCategoryValue = - /*#__PURE__*/ createWriteContract({ - abi: iMultiTokenCategoryRegistryAbi, - functionName: 'unregisterCategoryValue', +export const readPwnRevokedNonceIsNonceRevoked = + /*#__PURE__*/ createReadContract({ + abi: pwnRevokedNonceAbi, + functionName: 'isNonceRevoked', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ - */ -export const simulateIMultiTokenCategoryRegistry = - /*#__PURE__*/ createSimulateContract({ abi: iMultiTokenCategoryRegistryAbi }) - -/** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"isNonceUsable"` */ -export const simulateIMultiTokenCategoryRegistryRegisterCategoryValue = - /*#__PURE__*/ createSimulateContract({ - abi: iMultiTokenCategoryRegistryAbi, - functionName: 'registerCategoryValue', +export const readPwnRevokedNonceIsNonceUsable = + /*#__PURE__*/ createReadContract({ + abi: pwnRevokedNonceAbi, + functionName: 'isNonceUsable', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ */ -export const simulateIMultiTokenCategoryRegistryUnregisterCategoryValue = - /*#__PURE__*/ createSimulateContract({ - abi: iMultiTokenCategoryRegistryAbi, - functionName: 'unregisterCategoryValue', - }) +export const writePwnRevokedNonce = /*#__PURE__*/ createWriteContract({ + abi: pwnRevokedNonceAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchIMultiTokenCategoryRegistryEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iMultiTokenCategoryRegistryAbi, +export const writePwnRevokedNonceRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryRegistered"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonceSpace"` */ -export const watchIMultiTokenCategoryRegistryCategoryRegisteredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iMultiTokenCategoryRegistryAbi, - eventName: 'CategoryRegistered', +export const writePwnRevokedNonceRevokeNonceSpace = + /*#__PURE__*/ createWriteContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonceSpace', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iMultiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryUnregistered"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonces"` */ -export const watchIMultiTokenCategoryRegistryCategoryUnregisteredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: iMultiTokenCategoryRegistryAbi, - eventName: 'CategoryUnregistered', +export const writePwnRevokedNonceRevokeNonces = + /*#__PURE__*/ createWriteContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonces', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ */ -export const readIMulticall3 = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, +export const simulatePwnRevokedNonce = /*#__PURE__*/ createSimulateContract({ + abi: pwnRevokedNonceAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBasefee"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readIMulticall3GetBasefee = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getBasefee', -}) +export const simulatePwnRevokedNonceRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBlockHash"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonceSpace"` */ -export const readIMulticall3GetBlockHash = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getBlockHash', -}) +export const simulatePwnRevokedNonceRevokeNonceSpace = + /*#__PURE__*/ createSimulateContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonceSpace', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getBlockNumber"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonces"` */ -export const readIMulticall3GetBlockNumber = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getBlockNumber', -}) +export const simulatePwnRevokedNonceRevokeNonces = + /*#__PURE__*/ createSimulateContract({ + abi: pwnRevokedNonceAbi, + functionName: 'revokeNonces', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getChainId"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ */ -export const readIMulticall3GetChainId = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getChainId', -}) +export const watchPwnRevokedNonceEvent = /*#__PURE__*/ createWatchContractEvent( + { abi: pwnRevokedNonceAbi }, +) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockCoinbase"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `eventName` set to `"NonceRevoked"` */ -export const readIMulticall3GetCurrentBlockCoinbase = - /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getCurrentBlockCoinbase', +export const watchPwnRevokedNonceNonceRevokedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnRevokedNonceAbi, + eventName: 'NonceRevoked', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockDifficulty"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `eventName` set to `"NonceSpaceRevoked"` */ -export const readIMulticall3GetCurrentBlockDifficulty = - /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getCurrentBlockDifficulty', +export const watchPwnRevokedNonceNonceSpaceRevokedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnRevokedNonceAbi, + eventName: 'NonceSpaceRevoked', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockGasLimit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSignatureCheckerHarnessAbi}__ */ -export const readIMulticall3GetCurrentBlockGasLimit = - /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getCurrentBlockGasLimit', - }) +export const readPwnSignatureCheckerHarness = /*#__PURE__*/ createReadContract({ + abi: pwnSignatureCheckerHarnessAbi, +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getCurrentBlockTimestamp"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSignatureCheckerHarnessAbi}__ and `functionName` set to `"exposed_isValidSignatureNow"` */ -export const readIMulticall3GetCurrentBlockTimestamp = +export const readPwnSignatureCheckerHarnessExposedIsValidSignatureNow = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getCurrentBlockTimestamp', + abi: pwnSignatureCheckerHarnessAbi, + functionName: 'exposed_isValidSignatureNow', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getEthBalance"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ */ -export const readIMulticall3GetEthBalance = /*#__PURE__*/ createReadContract({ - abi: iMulticall3Abi, - functionName: 'getEthBalance', +export const readPwnSimpleLoan = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"getLastBlockHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"ACCRUING_INTEREST_APR_DECIMALS"` */ -export const readIMulticall3GetLastBlockHash = /*#__PURE__*/ createReadContract( - { abi: iMulticall3Abi, functionName: 'getLastBlockHash' }, -) +export const readPwnSimpleLoanAccruingInterestAprDecimals = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'ACCRUING_INTEREST_APR_DECIMALS', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"ACCRUING_INTEREST_APR_DENOMINATOR"` */ -export const writeIMulticall3 = /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, -}) +export const readPwnSimpleLoanAccruingInterestAprDenominator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'ACCRUING_INTEREST_APR_DENOMINATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const writeIMulticall3Aggregate = /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'aggregate', -}) +export const readPwnSimpleLoanDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"EXTENSION_PROPOSAL_TYPEHASH"` */ -export const writeIMulticall3Aggregate3 = /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'aggregate3', -}) +export const readPwnSimpleLoanExtensionProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'EXTENSION_PROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3Value"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MAX_ACCRUING_INTEREST_APR"` */ -export const writeIMulticall3Aggregate3Value = - /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'aggregate3Value', +export const readPwnSimpleLoanMaxAccruingInterestApr = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'MAX_ACCRUING_INTEREST_APR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"blockAndAggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MAX_EXTENSION_DURATION"` */ -export const writeIMulticall3BlockAndAggregate = - /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'blockAndAggregate', +export const readPwnSimpleLoanMaxExtensionDuration = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'MAX_EXTENSION_DURATION', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryAggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MINUTES_IN_YEAR"` */ -export const writeIMulticall3TryAggregate = /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'tryAggregate', +export const readPwnSimpleLoanMinutesInYear = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'MINUTES_IN_YEAR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryBlockAndAggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MIN_EXTENSION_DURATION"` */ -export const writeIMulticall3TryBlockAndAggregate = - /*#__PURE__*/ createWriteContract({ - abi: iMulticall3Abi, - functionName: 'tryBlockAndAggregate', +export const readPwnSimpleLoanMinExtensionDuration = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'MIN_EXTENSION_DURATION', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MIN_LOAN_DURATION"` */ -export const simulateIMulticall3 = /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, -}) +export const readPwnSimpleLoanMinLoanDuration = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'MIN_LOAN_DURATION', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"VERSION"` */ -export const simulateIMulticall3Aggregate = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'aggregate', - }) +export const readPwnSimpleLoanVersion = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'VERSION', +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"categoryRegistry"` */ -export const simulateIMulticall3Aggregate3 = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'aggregate3', +export const readPwnSimpleLoanCategoryRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'categoryRegistry', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"aggregate3Value"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"config"` */ -export const simulateIMulticall3Aggregate3Value = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'aggregate3Value', - }) +export const readPwnSimpleLoanConfig = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'config', +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"blockAndAggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extensionProposalsMade"` */ -export const simulateIMulticall3BlockAndAggregate = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'blockAndAggregate', +export const readPwnSimpleLoanExtensionProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'extensionProposalsMade', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryAggregate"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getExtensionHash"` */ -export const simulateIMulticall3TryAggregate = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'tryAggregate', +export const readPwnSimpleLoanGetExtensionHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'getExtensionHash', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iMulticall3Abi}__ and `functionName` set to `"tryBlockAndAggregate"` - */ -export const simulateIMulticall3TryBlockAndAggregate = - /*#__PURE__*/ createSimulateContract({ - abi: iMulticall3Abi, - functionName: 'tryBlockAndAggregate', - }) + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getLOAN"` + */ +export const readPwnSimpleLoanGetLoan = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'getLOAN', +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getLenderSpecHash"` */ -export const readIpwnDeployer = /*#__PURE__*/ createReadContract({ - abi: ipwnDeployerAbi, -}) +export const readPwnSimpleLoanGetLenderSpecHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'getLenderSpecHash', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"computeAddress"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getStateFingerprint"` */ -export const readIpwnDeployerComputeAddress = /*#__PURE__*/ createReadContract({ - abi: ipwnDeployerAbi, - functionName: 'computeAddress', -}) +export const readPwnSimpleLoanGetStateFingerprint = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'getStateFingerprint', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"hub"` */ -export const writeIpwnDeployer = /*#__PURE__*/ createWriteContract({ - abi: ipwnDeployerAbi, +export const readPwnSimpleLoanHub = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'hub', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deploy"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"isValidAsset"` */ -export const writeIpwnDeployerDeploy = /*#__PURE__*/ createWriteContract({ - abi: ipwnDeployerAbi, - functionName: 'deploy', +export const readPwnSimpleLoanIsValidAsset = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'isValidAsset', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deployAndTransferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanMetadataUri"` */ -export const writeIpwnDeployerDeployAndTransferOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ipwnDeployerAbi, - functionName: 'deployAndTransferOwnership', +export const readPwnSimpleLoanLoanMetadataUri = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'loanMetadataUri', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanRepaymentAmount"` */ -export const writeIpwnDeployerOwner = /*#__PURE__*/ createWriteContract({ - abi: ipwnDeployerAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanLoanRepaymentAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'loanRepaymentAmount', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanToken"` */ -export const simulateIpwnDeployer = /*#__PURE__*/ createSimulateContract({ - abi: ipwnDeployerAbi, +export const readPwnSimpleLoanLoanToken = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'loanToken', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deploy"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC1155BatchReceived"` */ -export const simulateIpwnDeployerDeploy = /*#__PURE__*/ createSimulateContract({ - abi: ipwnDeployerAbi, - functionName: 'deploy', -}) +export const readPwnSimpleLoanOnErc1155BatchReceived = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'onERC1155BatchReceived', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"deployAndTransferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC1155Received"` */ -export const simulateIpwnDeployerDeployAndTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ipwnDeployerAbi, - functionName: 'deployAndTransferOwnership', +export const readPwnSimpleLoanOnErc1155Received = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'onERC1155Received', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ipwnDeployerAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC721Received"` */ -export const simulateIpwnDeployerOwner = /*#__PURE__*/ createSimulateContract({ - abi: ipwnDeployerAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanOnErc721Received = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'onERC721Received', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnLoanMetadataProviderAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readIpwnLoanMetadataProvider = /*#__PURE__*/ createReadContract({ - abi: ipwnLoanMetadataProviderAbi, +export const readPwnSimpleLoanRevokedNonce = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ipwnLoanMetadataProviderAbi}__ and `functionName` set to `"loanMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"supportsInterface"` */ -export const readIpwnLoanMetadataProviderLoanMetadataUri = +export const readPwnSimpleLoanSupportsInterface = /*#__PURE__*/ createReadContract({ - abi: ipwnLoanMetadataProviderAbi, - functionName: 'loanMetadataUri', + abi: pwnSimpleLoanAbi, + functionName: 'supportsInterface', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ - */ -export const writeIPoolAdapter = /*#__PURE__*/ createWriteContract({ - abi: iPoolAdapterAbi, -}) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"supply"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ */ -export const writeIPoolAdapterSupply = /*#__PURE__*/ createWriteContract({ - abi: iPoolAdapterAbi, - functionName: 'supply', +export const writePwnSimpleLoan = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"claimLOAN"` */ -export const writeIPoolAdapterWithdraw = /*#__PURE__*/ createWriteContract({ - abi: iPoolAdapterAbi, - functionName: 'withdraw', +export const writePwnSimpleLoanClaimLoan = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'claimLOAN', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"createLOAN"` */ -export const simulateIPoolAdapter = /*#__PURE__*/ createSimulateContract({ - abi: iPoolAdapterAbi, +export const writePwnSimpleLoanCreateLoan = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'createLOAN', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"supply"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extendLOAN"` */ -export const simulateIPoolAdapterSupply = /*#__PURE__*/ createSimulateContract({ - abi: iPoolAdapterAbi, - functionName: 'supply', +export const writePwnSimpleLoanExtendLoan = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'extendLOAN', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iPoolAdapterAbi}__ and `functionName` set to `"withdraw"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"makeExtensionProposal"` */ -export const simulateIPoolAdapterWithdraw = - /*#__PURE__*/ createSimulateContract({ - abi: iPoolAdapterAbi, - functionName: 'withdraw', +export const writePwnSimpleLoanMakeExtensionProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'makeExtensionProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"repayLOAN"` */ -export const readIStateFingerpringComputer = /*#__PURE__*/ createReadContract({ - abi: iStateFingerpringComputerAbi, +export const writePwnSimpleLoanRepayLoan = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'repayLOAN', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ and `functionName` set to `"computeStateFingerprint"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"tryClaimRepaidLOAN"` */ -export const readIStateFingerpringComputerComputeStateFingerprint = - /*#__PURE__*/ createReadContract({ - abi: iStateFingerpringComputerAbi, - functionName: 'computeStateFingerprint', +export const writePwnSimpleLoanTryClaimRepaidLoan = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanAbi, + functionName: 'tryClaimRepaidLOAN', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iStateFingerpringComputerAbi}__ and `functionName` set to `"supportsToken"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ */ -export const readIStateFingerpringComputerSupportsToken = - /*#__PURE__*/ createReadContract({ - abi: iStateFingerpringComputerAbi, - functionName: 'supportsToken', - }) +export const simulatePwnSimpleLoan = /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, +}) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"claimLOAN"` */ -export const readITransparentUpgradeableProxy = - /*#__PURE__*/ createReadContract({ abi: iTransparentUpgradeableProxyAbi }) +export const simulatePwnSimpleLoanClaimLoan = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'claimLOAN', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"admin"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"createLOAN"` */ -export const readITransparentUpgradeableProxyAdmin = - /*#__PURE__*/ createReadContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'admin', +export const simulatePwnSimpleLoanCreateLoan = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'createLOAN', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"implementation"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extendLOAN"` */ -export const readITransparentUpgradeableProxyImplementation = - /*#__PURE__*/ createReadContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'implementation', +export const simulatePwnSimpleLoanExtendLoan = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'extendLOAN', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"makeExtensionProposal"` */ -export const writeITransparentUpgradeableProxy = - /*#__PURE__*/ createWriteContract({ abi: iTransparentUpgradeableProxyAbi }) +export const simulatePwnSimpleLoanMakeExtensionProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'makeExtensionProposal', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"changeAdmin"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"repayLOAN"` */ -export const writeITransparentUpgradeableProxyChangeAdmin = - /*#__PURE__*/ createWriteContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'changeAdmin', +export const simulatePwnSimpleLoanRepayLoan = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'repayLOAN', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeTo"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"tryClaimRepaidLOAN"` */ -export const writeITransparentUpgradeableProxyUpgradeTo = - /*#__PURE__*/ createWriteContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'upgradeTo', +export const simulatePwnSimpleLoanTryClaimRepaidLoan = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanAbi, + functionName: 'tryClaimRepaidLOAN', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeToAndCall"` - */ -export const writeITransparentUpgradeableProxyUpgradeToAndCall = - /*#__PURE__*/ createWriteContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'upgradeToAndCall', - }) + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ + */ +export const watchPwnSimpleLoanEvent = /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"ExtensionProposalMade"` */ -export const simulateITransparentUpgradeableProxy = - /*#__PURE__*/ createSimulateContract({ abi: iTransparentUpgradeableProxyAbi }) +export const watchPwnSimpleLoanExtensionProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, + eventName: 'ExtensionProposalMade', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"changeAdmin"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANClaimed"` */ -export const simulateITransparentUpgradeableProxyChangeAdmin = - /*#__PURE__*/ createSimulateContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'changeAdmin', +export const watchPwnSimpleLoanLoanClaimedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, + eventName: 'LOANClaimed', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeTo"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANCreated"` */ -export const simulateITransparentUpgradeableProxyUpgradeTo = - /*#__PURE__*/ createSimulateContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'upgradeTo', +export const watchPwnSimpleLoanLoanCreatedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, + eventName: 'LOANCreated', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `functionName` set to `"upgradeToAndCall"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANExtended"` */ -export const simulateITransparentUpgradeableProxyUpgradeToAndCall = - /*#__PURE__*/ createSimulateContract({ - abi: iTransparentUpgradeableProxyAbi, - functionName: 'upgradeToAndCall', +export const watchPwnSimpleLoanLoanExtendedEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, + eventName: 'LOANExtended', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANPaidBack"` */ -export const watchITransparentUpgradeableProxyEvent = +export const watchPwnSimpleLoanLoanPaidBackEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iTransparentUpgradeableProxyAbi, + abi: pwnSimpleLoanAbi, + eventName: 'LOANPaidBack', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"AdminChanged"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"PoolSupply"` */ -export const watchITransparentUpgradeableProxyAdminChangedEvent = +export const watchPwnSimpleLoanPoolSupplyEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iTransparentUpgradeableProxyAbi, - eventName: 'AdminChanged', + abi: pwnSimpleLoanAbi, + eventName: 'PoolSupply', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"BeaconUpgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"PoolWithdraw"` */ -export const watchITransparentUpgradeableProxyBeaconUpgradedEvent = +export const watchPwnSimpleLoanPoolWithdrawEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iTransparentUpgradeableProxyAbi, - eventName: 'BeaconUpgraded', + abi: pwnSimpleLoanAbi, + eventName: 'PoolWithdraw', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link iTransparentUpgradeableProxyAbi}__ and `eventName` set to `"Upgraded"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPull"` */ -export const watchITransparentUpgradeableProxyUpgradedEvent = +export const watchPwnSimpleLoanVaultPullEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: iTransparentUpgradeableProxyAbi, - eventName: 'Upgraded', + abi: pwnSimpleLoanAbi, + eventName: 'VaultPull', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link initializableAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPush"` */ -export const watchInitializableEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: initializableAbi, -}) +export const watchPwnSimpleLoanVaultPushEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanAbi, + eventName: 'VaultPush', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link initializableAbi}__ and `eventName` set to `"Initialized"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPushFrom"` */ -export const watchInitializableInitializedEvent = +export const watchPwnSimpleLoanVaultPushFromEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: initializableAbi, - eventName: 'Initialized', + abi: pwnSimpleLoanAbi, + eventName: 'VaultPushFrom', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ */ -export const readMultiToken = /*#__PURE__*/ createReadContract({ - abi: multiTokenAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"CATEGORY_NOT_REGISTERED"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readMultiTokenCategoryNotRegistered = +export const readPwnSimpleLoanDutchAuctionProposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: multiTokenAbi, - functionName: 'CATEGORY_NOT_REGISTERED', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"CRYPTO_KITTIES_INTERFACE_ID"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readMultiTokenCryptoKittiesInterfaceId = +export const readPwnSimpleLoanDutchAuctionProposalMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: multiTokenAbi, - functionName: 'CRYPTO_KITTIES_INTERFACE_ID', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC1155_INTERFACE_ID"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readMultiTokenErc1155InterfaceId = +export const readPwnSimpleLoanDutchAuctionProposalMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: multiTokenAbi, - functionName: 'ERC1155_INTERFACE_ID', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC20_INTERFACE_ID"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readMultiTokenErc20InterfaceId = /*#__PURE__*/ createReadContract({ - abi: multiTokenAbi, - functionName: 'ERC20_INTERFACE_ID', -}) +export const readPwnSimpleLoanDutchAuctionProposalProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'PROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenAbi}__ and `functionName` set to `"ERC721_INTERFACE_ID"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const readMultiTokenErc721InterfaceId = /*#__PURE__*/ createReadContract( - { abi: multiTokenAbi, functionName: 'ERC721_INTERFACE_ID' }, -) +export const readPwnSimpleLoanDutchAuctionProposalVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'VERSION', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"config"` */ -export const readMultiTokenCategoryRegistry = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'config', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"CATEGORY_NOT_REGISTERED"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readMultiTokenCategoryRegistryCategoryNotRegistered = +export const readPwnSimpleLoanDutchAuctionProposalDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'CATEGORY_NOT_REGISTERED', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readMultiTokenCategoryRegistryOwner = +export const readPwnSimpleLoanDutchAuctionProposalEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'owner', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"pendingOwner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const readMultiTokenCategoryRegistryPendingOwner = +export const readPwnSimpleLoanDutchAuctionProposalGetCreditAmount = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'pendingOwner', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'getCreditAmount', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registeredCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readMultiTokenCategoryRegistryRegisteredCategoryValue = +export const readPwnSimpleLoanDutchAuctionProposalGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'registeredCategoryValue', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readMultiTokenCategoryRegistrySupportsInterface = +export const readPwnSimpleLoanDutchAuctionProposalGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'supportsInterface', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"hub"` */ -export const writeMultiTokenCategoryRegistry = - /*#__PURE__*/ createWriteContract({ abi: multiTokenCategoryRegistryAbi }) +export const readPwnSimpleLoanDutchAuctionProposalHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'hub', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const writeMultiTokenCategoryRegistryAcceptOwnership = - /*#__PURE__*/ createWriteContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'acceptOwnership', +export const readPwnSimpleLoanDutchAuctionProposalProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const writeMultiTokenCategoryRegistryRegisterCategoryValue = - /*#__PURE__*/ createWriteContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'registerCategoryValue', +export const readPwnSimpleLoanDutchAuctionProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const writeMultiTokenCategoryRegistryRenounceOwnership = - /*#__PURE__*/ createWriteContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanDutchAuctionProposalUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ */ -export const writeMultiTokenCategoryRegistryTransferOwnership = +export const writePwnSimpleLoanDutchAuctionProposal = /*#__PURE__*/ createWriteContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'transferOwnership', + abi: pwnSimpleLoanDutchAuctionProposalAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writeMultiTokenCategoryRegistryUnregisterCategoryValue = +export const writePwnSimpleLoanDutchAuctionProposalAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'unregisterCategoryValue', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulateMultiTokenCategoryRegistry = - /*#__PURE__*/ createSimulateContract({ abi: multiTokenCategoryRegistryAbi }) +export const writePwnSimpleLoanDutchAuctionProposalMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulateMultiTokenCategoryRegistryAcceptOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'acceptOwnership', +export const writePwnSimpleLoanDutchAuctionProposalRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"registerCategoryValue"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ */ -export const simulateMultiTokenCategoryRegistryRegisterCategoryValue = +export const simulatePwnSimpleLoanDutchAuctionProposal = /*#__PURE__*/ createSimulateContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'registerCategoryValue', + abi: pwnSimpleLoanDutchAuctionProposalAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulateMultiTokenCategoryRegistryRenounceOwnership = +export const simulatePwnSimpleLoanDutchAuctionProposalAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'renounceOwnership', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulateMultiTokenCategoryRegistryTransferOwnership = +export const simulatePwnSimpleLoanDutchAuctionProposalMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'transferOwnership', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `functionName` set to `"unregisterCategoryValue"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulateMultiTokenCategoryRegistryUnregisterCategoryValue = +export const simulatePwnSimpleLoanDutchAuctionProposalRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: multiTokenCategoryRegistryAbi, - functionName: 'unregisterCategoryValue', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ */ -export const watchMultiTokenCategoryRegistryEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: multiTokenCategoryRegistryAbi }) +export const watchPwnSimpleLoanDutchAuctionProposalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanDutchAuctionProposalAbi, + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryRegistered"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchMultiTokenCategoryRegistryCategoryRegisteredEvent = +export const watchPwnSimpleLoanDutchAuctionProposalProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: multiTokenCategoryRegistryAbi, - eventName: 'CategoryRegistered', + abi: pwnSimpleLoanDutchAuctionProposalAbi, + eventName: 'ProposalMade', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"CategoryUnregistered"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ */ -export const watchMultiTokenCategoryRegistryCategoryUnregisteredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: multiTokenCategoryRegistryAbi, - eventName: 'CategoryUnregistered', +export const readPwnSimpleLoanDutchAuctionProposalHarness = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"OwnershipTransferStarted"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const watchMultiTokenCategoryRegistryOwnershipTransferStartedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: multiTokenCategoryRegistryAbi, - eventName: 'OwnershipTransferStarted', +export const readPwnSimpleLoanDutchAuctionProposalHarnessDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link multiTokenCategoryRegistryAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const watchMultiTokenCategoryRegistryOwnershipTransferredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: multiTokenCategoryRegistryAbi, - eventName: 'OwnershipTransferred', +export const readPwnSimpleLoanDutchAuctionProposalHarnessMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readOwnable = /*#__PURE__*/ createReadContract({ abi: ownableAbi }) +export const readPwnSimpleLoanDutchAuctionProposalHarnessMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readOwnableOwner = /*#__PURE__*/ createReadContract({ - abi: ownableAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'PROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const writeOwnable = /*#__PURE__*/ createWriteContract({ - abi: ownableAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'VERSION', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const writeOwnableRenounceOwnership = /*#__PURE__*/ createWriteContract({ - abi: ownableAbi, - functionName: 'renounceOwnership', -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'config', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const writeOwnableTransferOwnership = /*#__PURE__*/ createWriteContract({ - abi: ownableAbi, - functionName: 'transferOwnership', -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'decodeProposalData', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const simulateOwnable = /*#__PURE__*/ createSimulateContract({ - abi: ownableAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'encodeProposalData', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const simulateOwnableRenounceOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownableAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanDutchAuctionProposalHarnessExposedErc712EncodeProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const simulateOwnableTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownableAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanDutchAuctionProposalHarnessGetCreditAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'getCreditAmount', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const watchOwnableEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ownableAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'getMultiproposalHash', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const watchOwnableOwnershipTransferredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownableAbi, - eventName: 'OwnershipTransferred', +export const readPwnSimpleLoanDutchAuctionProposalHarnessGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const readOwnable2Step = /*#__PURE__*/ createReadContract({ - abi: ownable2StepAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'hub', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readOwnable2StepOwner = /*#__PURE__*/ createReadContract({ - abi: ownable2StepAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'proposalsMade', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"pendingOwner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readOwnable2StepPendingOwner = /*#__PURE__*/ createReadContract({ - abi: ownable2StepAbi, - functionName: 'pendingOwner', -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'revokedNonce', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const writeOwnable2Step = /*#__PURE__*/ createWriteContract({ - abi: ownable2StepAbi, -}) +export const readPwnSimpleLoanDutchAuctionProposalHarnessUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'utilizedCredit', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ */ -export const writeOwnable2StepAcceptOwnership = +export const writePwnSimpleLoanDutchAuctionProposalHarness = /*#__PURE__*/ createWriteContract({ - abi: ownable2StepAbi, - functionName: 'acceptOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writeOwnable2StepRenounceOwnership = +export const writePwnSimpleLoanDutchAuctionProposalHarnessAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: ownable2StepAbi, - functionName: 'renounceOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writeOwnable2StepTransferOwnership = +export const writePwnSimpleLoanDutchAuctionProposalHarnessMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: ownable2StepAbi, - functionName: 'transferOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulateOwnable2Step = /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepAbi, -}) +export const writePwnSimpleLoanDutchAuctionProposalHarnessRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ */ -export const simulateOwnable2StepAcceptOwnership = +export const simulatePwnSimpleLoanDutchAuctionProposalHarness = /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepAbi, - functionName: 'acceptOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulateOwnable2StepRenounceOwnership = +export const simulatePwnSimpleLoanDutchAuctionProposalHarnessAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepAbi, - functionName: 'renounceOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulateOwnable2StepTransferOwnership = +export const simulatePwnSimpleLoanDutchAuctionProposalHarnessMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepAbi, - functionName: 'transferOwnership', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ - */ -export const watchOwnable2StepEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepAbi, -}) - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ and `eventName` set to `"OwnershipTransferStarted"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchOwnable2StepOwnershipTransferStartedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepAbi, - eventName: 'OwnershipTransferStarted', +export const simulatePwnSimpleLoanDutchAuctionProposalHarnessRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ */ -export const watchOwnable2StepOwnershipTransferredEvent = +export const watchPwnSimpleLoanDutchAuctionProposalHarnessEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepAbi, - eventName: 'OwnershipTransferred', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ - */ -export const readOwnable2StepUpgradeable = /*#__PURE__*/ createReadContract({ - abi: ownable2StepUpgradeableAbi, -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"owner"` - */ -export const readOwnable2StepUpgradeableOwner = - /*#__PURE__*/ createReadContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'owner', + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"pendingOwner"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readOwnable2StepUpgradeablePendingOwner = - /*#__PURE__*/ createReadContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'pendingOwner', +export const watchPwnSimpleLoanDutchAuctionProposalHarnessProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanDutchAuctionProposalHarnessAbi, + eventName: 'ProposalMade', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ */ -export const writeOwnable2StepUpgradeable = /*#__PURE__*/ createWriteContract({ - abi: ownable2StepUpgradeableAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const writeOwnable2StepUpgradeableAcceptOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'acceptOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const writeOwnable2StepUpgradeableRenounceOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalLoanToValueDenominator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'LOAN_TO_VALUE_DENOMINATOR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` */ -export const writeOwnable2StepUpgradeableTransferOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalMaxIntermediaryDenominations = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const simulateOwnable2StepUpgradeable = - /*#__PURE__*/ createSimulateContract({ abi: ownable2StepUpgradeableAbi }) +export const readPwnSimpleLoanElasticChainlinkProposalMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const simulateOwnable2StepUpgradeableAcceptOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'acceptOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const simulateOwnable2StepUpgradeableRenounceOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const simulateOwnable2StepUpgradeableTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownable2StepUpgradeableAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'VERSION', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"WETH"` */ -export const watchOwnable2StepUpgradeableEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: ownable2StepUpgradeableAbi }) +export const readPwnSimpleLoanElasticChainlinkProposalWeth = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'WETH', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"Initialized"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` */ -export const watchOwnable2StepUpgradeableInitializedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepUpgradeableAbi, - eventName: 'Initialized', +export const readPwnSimpleLoanElasticChainlinkProposalChainlinkFeedRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'chainlinkFeedRegistry', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferStarted"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` */ -export const watchOwnable2StepUpgradeableOwnershipTransferStartedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepUpgradeableAbi, - eventName: 'OwnershipTransferStarted', +export const readPwnSimpleLoanElasticChainlinkProposalChainlinkL2SequencerUptimeFeed = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownable2StepUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"config"` */ -export const watchOwnable2StepUpgradeableOwnershipTransferredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownable2StepUpgradeableAbi, - eventName: 'OwnershipTransferred', +export const readPwnSimpleLoanElasticChainlinkProposalConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readOwnableUpgradeable = /*#__PURE__*/ createReadContract({ - abi: ownableUpgradeableAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposalDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'decodeProposalData', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readOwnableUpgradeableOwner = /*#__PURE__*/ createReadContract({ - abi: ownableUpgradeableAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanElasticChainlinkProposalEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'encodeProposalData', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getCollateralAmount"` */ -export const writeOwnableUpgradeable = /*#__PURE__*/ createWriteContract({ - abi: ownableUpgradeableAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposalGetCollateralAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'getCollateralAmount', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const writeOwnableUpgradeableRenounceOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ownableUpgradeableAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const writeOwnableUpgradeableTransferOwnership = - /*#__PURE__*/ createWriteContract({ - abi: ownableUpgradeableAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"hub"` */ -export const simulateOwnableUpgradeable = /*#__PURE__*/ createSimulateContract({ - abi: ownableUpgradeableAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposalHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'hub', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const simulateOwnableUpgradeableRenounceOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownableUpgradeableAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const simulateOwnableUpgradeableTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: ownableUpgradeableAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const watchOwnableUpgradeableEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: ownableUpgradeableAbi }) +export const readPwnSimpleLoanElasticChainlinkProposalUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'utilizedCredit', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `eventName` set to `"Initialized"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ */ -export const watchOwnableUpgradeableInitializedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownableUpgradeableAbi, - eventName: 'Initialized', +export const writePwnSimpleLoanElasticChainlinkProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link ownableUpgradeableAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchOwnableUpgradeableOwnershipTransferredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: ownableUpgradeableAbi, - eventName: 'OwnershipTransferred', +export const writePwnSimpleLoanElasticChainlinkProposalAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnConfig = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, -}) +export const writePwnSimpleLoanElasticChainlinkProposalMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"MAX_FEE"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnConfigMaxFee = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'MAX_FEE', -}) +export const writePwnSimpleLoanElasticChainlinkProposalRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"fee"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ */ -export const readPwnConfigFee = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'fee', -}) +export const simulatePwnSimpleLoanElasticChainlinkProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"feeCollector"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const readPwnConfigFeeCollector = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'feeCollector', -}) +export const simulatePwnSimpleLoanElasticChainlinkProposalAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"getPoolAdapter"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnConfigGetPoolAdapter = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'getPoolAdapter', -}) +export const simulatePwnSimpleLoanElasticChainlinkProposalMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"getStateFingerprintComputer"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnConfigGetStateFingerprintComputer = - /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'getStateFingerprintComputer', +export const simulatePwnSimpleLoanElasticChainlinkProposalRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"loanMetadataUri"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ */ -export const readPwnConfigLoanMetadataUri = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'loanMetadataUri', -}) +export const watchPwnSimpleLoanElasticChainlinkProposalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readPwnConfigOwner = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'owner', -}) +export const watchPwnSimpleLoanElasticChainlinkProposalProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticChainlinkProposalAbi, + eventName: 'ProposalMade', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"pendingOwner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ */ -export const readPwnConfigPendingOwner = /*#__PURE__*/ createReadContract({ - abi: pwnConfigAbi, - functionName: 'pendingOwner', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarness = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const writePwnConfig = /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const writePwnConfigAcceptOwnership = /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'acceptOwnership', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessLoanToValueDenominator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'LOAN_TO_VALUE_DENOMINATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"initialize"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` */ -export const writePwnConfigInitialize = /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'initialize', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessMaxIntermediaryDenominations = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerPoolAdapter"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const writePwnConfigRegisterPoolAdapter = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'registerPoolAdapter', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerStateFingerprintComputer"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const writePwnConfigRegisterStateFingerprintComputer = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'registerStateFingerprintComputer', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const writePwnConfigRenounceOwnership = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setDefaultLOANMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const writePwnConfigSetDefaultLoanMetadataUri = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'setDefaultLOANMetadataUri', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'VERSION', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFee"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"WETH"` */ -export const writePwnConfigSetFee = /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'setFee', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessWeth = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'WETH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFeeCollector"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` */ -export const writePwnConfigSetFeeCollector = /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'setFeeCollector', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessChainlinkFeedRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'chainlinkFeedRegistry', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setLOANMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` */ -export const writePwnConfigSetLoanMetadataUri = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'setLOANMetadataUri', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessChainlinkL2SequencerUptimeFeed = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const writePwnConfigTransferOwnership = - /*#__PURE__*/ createWriteContract({ - abi: pwnConfigAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'config', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const simulatePwnConfig = /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'decodeProposalData', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const simulatePwnConfigAcceptOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'acceptOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'encodeProposalData', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"initialize"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const simulatePwnConfigInitialize = /*#__PURE__*/ createSimulateContract( - { abi: pwnConfigAbi, functionName: 'initialize' }, -) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessExposedErc712EncodeProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerPoolAdapter"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getCollateralAmount"` */ -export const simulatePwnConfigRegisterPoolAdapter = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'registerPoolAdapter', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetCollateralAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'getCollateralAmount', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"registerStateFingerprintComputer"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const simulatePwnConfigRegisterStateFingerprintComputer = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'registerStateFingerprintComputer', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const simulatePwnConfigRenounceOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setDefaultLOANMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const simulatePwnConfigSetDefaultLoanMetadataUri = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'setDefaultLOANMetadataUri', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'hub', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFee"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const simulatePwnConfigSetFee = /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'setFee', -}) +export const readPwnSimpleLoanElasticChainlinkProposalHarnessProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'proposalsMade', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setFeeCollector"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const simulatePwnConfigSetFeeCollector = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'setFeeCollector', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"setLOANMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const simulatePwnConfigSetLoanMetadataUri = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'setLOANMetadataUri', +export const readPwnSimpleLoanElasticChainlinkProposalHarnessUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnConfigAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ */ -export const simulatePwnConfigTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnConfigAbi, - functionName: 'transferOwnership', +export const writePwnSimpleLoanElasticChainlinkProposalHarness = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnConfigEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, -}) +export const writePwnSimpleLoanElasticChainlinkProposalHarnessAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"DefaultLOANMetadataUriUpdated"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const watchPwnConfigDefaultLoanMetadataUriUpdatedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'DefaultLOANMetadataUriUpdated', +export const writePwnSimpleLoanElasticChainlinkProposalHarnessMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"FeeCollectorUpdated"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchPwnConfigFeeCollectorUpdatedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'FeeCollectorUpdated', +export const writePwnSimpleLoanElasticChainlinkProposalHarnessRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"FeeUpdated"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ */ -export const watchPwnConfigFeeUpdatedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'FeeUpdated', +export const simulatePwnSimpleLoanElasticChainlinkProposalHarness = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"Initialized"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnConfigInitializedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'Initialized', +export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"LOANMetadataUriUpdated"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const watchPwnConfigLoanMetadataUriUpdatedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'LOANMetadataUriUpdated', +export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"OwnershipTransferStarted"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchPwnConfigOwnershipTransferStartedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'OwnershipTransferStarted', +export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnConfigAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ */ -export const watchPwnConfigOwnershipTransferredEvent = +export const watchPwnSimpleLoanElasticChainlinkProposalHarnessEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnConfigAbi, - eventName: 'OwnershipTransferred', + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readPwnHub = /*#__PURE__*/ createReadContract({ abi: pwnHubAbi }) +export const watchPwnSimpleLoanElasticChainlinkProposalHarnessProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + eventName: 'ProposalMade', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"hasTag"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ */ -export const readPwnHubHasTag = /*#__PURE__*/ createReadContract({ - abi: pwnHubAbi, - functionName: 'hasTag', -}) +export const readPwnSimpleLoanElasticProposal = + /*#__PURE__*/ createReadContract({ abi: pwnSimpleLoanElasticProposalAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"owner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR"` */ -export const readPwnHubOwner = /*#__PURE__*/ createReadContract({ - abi: pwnHubAbi, - functionName: 'owner', -}) +export const readPwnSimpleLoanElasticProposalCreditPerCollateralUnitDenominator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"pendingOwner"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnHubPendingOwner = /*#__PURE__*/ createReadContract({ - abi: pwnHubAbi, - functionName: 'pendingOwner', -}) +export const readPwnSimpleLoanElasticProposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const writePwnHub = /*#__PURE__*/ createWriteContract({ abi: pwnHubAbi }) +export const readPwnSimpleLoanElasticProposalMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const writePwnHubAcceptOwnership = /*#__PURE__*/ createWriteContract({ - abi: pwnHubAbi, - functionName: 'acceptOwnership', -}) +export const readPwnSimpleLoanElasticProposalMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const writePwnHubRenounceOwnership = /*#__PURE__*/ createWriteContract({ - abi: pwnHubAbi, - functionName: 'renounceOwnership', -}) +export const readPwnSimpleLoanElasticProposalProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'PROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTag"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const writePwnHubSetTag = /*#__PURE__*/ createWriteContract({ - abi: pwnHubAbi, - functionName: 'setTag', -}) +export const readPwnSimpleLoanElasticProposalVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'VERSION', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTags"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"config"` */ -export const writePwnHubSetTags = /*#__PURE__*/ createWriteContract({ - abi: pwnHubAbi, - functionName: 'setTags', -}) +export const readPwnSimpleLoanElasticProposalConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'config', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const writePwnHubTransferOwnership = /*#__PURE__*/ createWriteContract({ - abi: pwnHubAbi, - functionName: 'transferOwnership', -}) +export const readPwnSimpleLoanElasticProposalDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'decodeProposalData', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const simulatePwnHub = /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, -}) +export const readPwnSimpleLoanElasticProposalEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'encodeProposalData', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"acceptOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getCollateralAmount"` */ -export const simulatePwnHubAcceptOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, - functionName: 'acceptOwnership', +export const readPwnSimpleLoanElasticProposalGetCollateralAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'getCollateralAmount', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"renounceOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const simulatePwnHubRenounceOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, - functionName: 'renounceOwnership', +export const readPwnSimpleLoanElasticProposalGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTag"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const simulatePwnHubSetTag = /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, - functionName: 'setTag', -}) +export const readPwnSimpleLoanElasticProposalGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'getProposalHash', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"setTags"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"hub"` */ -export const simulatePwnHubSetTags = /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, - functionName: 'setTags', -}) +export const readPwnSimpleLoanElasticProposalHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'hub', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnHubAbi}__ and `functionName` set to `"transferOwnership"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const simulatePwnHubTransferOwnership = - /*#__PURE__*/ createSimulateContract({ - abi: pwnHubAbi, - functionName: 'transferOwnership', +export const readPwnSimpleLoanElasticProposalProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const watchPwnHubEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnHubAbi, -}) +export const readPwnSimpleLoanElasticProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'revokedNonce', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"OwnershipTransferStarted"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const watchPwnHubOwnershipTransferStartedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnHubAbi, - eventName: 'OwnershipTransferStarted', +export const readPwnSimpleLoanElasticProposalUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"OwnershipTransferred"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ */ -export const watchPwnHubOwnershipTransferredEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnHubAbi, - eventName: 'OwnershipTransferred', - }) +export const writePwnSimpleLoanElasticProposal = + /*#__PURE__*/ createWriteContract({ abi: pwnSimpleLoanElasticProposalAbi }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnHubAbi}__ and `eventName` set to `"TagSet"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnHubTagSetEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnHubAbi, - eventName: 'TagSet', -}) +export const writePwnSimpleLoanElasticProposalAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnloan = /*#__PURE__*/ createReadContract({ abi: pwnloanAbi }) +export const writePwnSimpleLoanElasticProposalMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"balanceOf"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnloanBalanceOf = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'balanceOf', -}) +export const writePwnSimpleLoanElasticProposalRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"getApproved"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ */ -export const readPwnloanGetApproved = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'getApproved', -}) +export const simulatePwnSimpleLoanElasticProposal = + /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanElasticProposalAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"getStateFingerprint"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const readPwnloanGetStateFingerprint = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'getStateFingerprint', -}) +export const simulatePwnSimpleLoanElasticProposalAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnloanHub = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'hub', -}) +export const simulatePwnSimpleLoanElasticProposalMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"isApprovedForAll"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnloanIsApprovedForAll = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'isApprovedForAll', -}) +export const simulatePwnSimpleLoanElasticProposalRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"lastLoanId"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ */ -export const readPwnloanLastLoanId = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'lastLoanId', -}) +export const watchPwnSimpleLoanElasticProposalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticProposalAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"loanContract"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readPwnloanLoanContract = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'loanContract', -}) +export const watchPwnSimpleLoanElasticProposalProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticProposalAbi, + eventName: 'ProposalMade', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"name"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ */ -export const readPwnloanName = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'name', -}) +export const readPwnSimpleLoanElasticProposalHarness = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"ownerOf"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR"` */ -export const readPwnloanOwnerOf = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'ownerOf', -}) +export const readPwnSimpleLoanElasticProposalHarnessCreditPerCollateralUnitDenominator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnloanSupportsInterface = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'supportsInterface', -}) +export const readPwnSimpleLoanElasticProposalHarnessDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"symbol"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnloanSymbol = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'symbol', -}) +export const readPwnSimpleLoanElasticProposalHarnessMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"tokenURI"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnloanTokenUri = /*#__PURE__*/ createReadContract({ - abi: pwnloanAbi, - functionName: 'tokenURI', -}) +export const readPwnSimpleLoanElasticProposalHarnessMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const writePwnloan = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, -}) +export const readPwnSimpleLoanElasticProposalHarnessProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'PROPOSAL_TYPEHASH', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const writePwnloanApprove = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'approve', -}) +export const readPwnSimpleLoanElasticProposalHarnessVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'VERSION', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"burn"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const writePwnloanBurn = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'burn', -}) +export const readPwnSimpleLoanElasticProposalHarnessConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'config', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"mint"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const writePwnloanMint = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'mint', -}) +export const readPwnSimpleLoanElasticProposalHarnessDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'decodeProposalData', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const writePwnloanSafeTransferFrom = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'safeTransferFrom', -}) +export const readPwnSimpleLoanElasticProposalHarnessEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'encodeProposalData', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const writePwnloanSetApprovalForAll = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'setApprovalForAll', -}) +export const readPwnSimpleLoanElasticProposalHarnessExposedErc712EncodeProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"getCollateralAmount"` */ -export const writePwnloanTransferFrom = /*#__PURE__*/ createWriteContract({ - abi: pwnloanAbi, - functionName: 'transferFrom', -}) +export const readPwnSimpleLoanElasticProposalHarnessGetCollateralAmount = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'getCollateralAmount', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const simulatePwnloan = /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, -}) +export const readPwnSimpleLoanElasticProposalHarnessGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'getMultiproposalHash', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"approve"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const simulatePwnloanApprove = /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, - functionName: 'approve', -}) +export const readPwnSimpleLoanElasticProposalHarnessGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'getProposalHash', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"burn"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const simulatePwnloanBurn = /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, - functionName: 'burn', -}) +export const readPwnSimpleLoanElasticProposalHarnessHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'hub', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"mint"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const simulatePwnloanMint = /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, - functionName: 'mint', -}) +export const readPwnSimpleLoanElasticProposalHarnessProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'proposalsMade', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"safeTransferFrom"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const simulatePwnloanSafeTransferFrom = - /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, - functionName: 'safeTransferFrom', +export const readPwnSimpleLoanElasticProposalHarnessRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"setApprovalForAll"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const simulatePwnloanSetApprovalForAll = - /*#__PURE__*/ createSimulateContract({ - abi: pwnloanAbi, - functionName: 'setApprovalForAll', +export const readPwnSimpleLoanElasticProposalHarnessUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnloanAbi}__ and `functionName` set to `"transferFrom"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ */ -export const simulatePwnloanTransferFrom = /*#__PURE__*/ createSimulateContract( - { abi: pwnloanAbi, functionName: 'transferFrom' }, -) +export const writePwnSimpleLoanElasticProposalHarness = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnloanEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnloanAbi, -}) +export const writePwnSimpleLoanElasticProposalHarnessAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"Approval"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const watchPwnloanApprovalEvent = /*#__PURE__*/ createWatchContractEvent( - { abi: pwnloanAbi, eventName: 'Approval' }, -) +export const writePwnSimpleLoanElasticProposalHarnessMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"ApprovalForAll"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchPwnloanApprovalForAllEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnloanAbi, - eventName: 'ApprovalForAll', +export const writePwnSimpleLoanElasticProposalHarnessRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"LOANBurned"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ */ -export const watchPwnloanLoanBurnedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnloanAbi, - eventName: 'LOANBurned', +export const simulatePwnSimpleLoanElasticProposalHarness = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"LOANMinted"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnloanLoanMintedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnloanAbi, - eventName: 'LOANMinted', +export const simulatePwnSimpleLoanElasticProposalHarnessAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnloanAbi}__ and `eventName` set to `"Transfer"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const watchPwnloanTransferEvent = /*#__PURE__*/ createWatchContractEvent( - { abi: pwnloanAbi, eventName: 'Transfer' }, -) +export const simulatePwnSimpleLoanElasticProposalHarnessMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, -}) +export const simulatePwnSimpleLoanElasticProposalHarnessRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"accessTag"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ */ -export const readPwnRevokedNonceAccessTag = /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, - functionName: 'accessTag', -}) +export const watchPwnSimpleLoanElasticProposalHarnessEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"currentNonceSpace"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readPwnRevokedNonceCurrentNonceSpace = - /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, - functionName: 'currentNonceSpace', +export const watchPwnSimpleLoanElasticProposalHarnessProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanElasticProposalHarnessAbi, + eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ */ -export const readPwnRevokedNonceHub = /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, - functionName: 'hub', +export const readPwnSimpleLoanListProposal = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"isNonceRevoked"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnRevokedNonceIsNonceRevoked = +export const readPwnSimpleLoanListProposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, - functionName: 'isNonceRevoked', + abi: pwnSimpleLoanListProposalAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"isNonceUsable"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnRevokedNonceIsNonceUsable = +export const readPwnSimpleLoanListProposalMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnRevokedNonceAbi, - functionName: 'isNonceUsable', + abi: pwnSimpleLoanListProposalAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ - */ -export const writePwnRevokedNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnRevokedNonceAbi, -}) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const writePwnRevokedNonceRevokeNonce = - /*#__PURE__*/ createWriteContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonce', +export const readPwnSimpleLoanListProposalMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonceSpace"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const writePwnRevokedNonceRevokeNonceSpace = - /*#__PURE__*/ createWriteContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonceSpace', +export const readPwnSimpleLoanListProposalProposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonces"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const writePwnRevokedNonceRevokeNonces = - /*#__PURE__*/ createWriteContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonces', +export const readPwnSimpleLoanListProposalVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'VERSION', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"config"` */ -export const simulatePwnRevokedNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnRevokedNonceAbi, -}) +export const readPwnSimpleLoanListProposalConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'config', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const simulatePwnRevokedNonceRevokeNonce = - /*#__PURE__*/ createSimulateContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonce', +export const readPwnSimpleLoanListProposalDecodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'decodeProposalData', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonceSpace"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const simulatePwnRevokedNonceRevokeNonceSpace = - /*#__PURE__*/ createSimulateContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonceSpace', +export const readPwnSimpleLoanListProposalEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'encodeProposalData', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `functionName` set to `"revokeNonces"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const simulatePwnRevokedNonceRevokeNonces = - /*#__PURE__*/ createSimulateContract({ - abi: pwnRevokedNonceAbi, - functionName: 'revokeNonces', +export const readPwnSimpleLoanListProposalGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const watchPwnRevokedNonceEvent = /*#__PURE__*/ createWatchContractEvent( - { abi: pwnRevokedNonceAbi }, -) +export const readPwnSimpleLoanListProposalGetProposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'getProposalHash', + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `eventName` set to `"NonceRevoked"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"hub"` */ -export const watchPwnRevokedNonceNonceRevokedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnRevokedNonceAbi, - eventName: 'NonceRevoked', +export const readPwnSimpleLoanListProposalHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'hub', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnRevokedNonceAbi}__ and `eventName` set to `"NonceSpaceRevoked"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const watchPwnRevokedNonceNonceSpaceRevokedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnRevokedNonceAbi, - eventName: 'NonceSpaceRevoked', +export const readPwnSimpleLoanListProposalProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSignatureCheckerHarnessAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSignatureCheckerHarness = /*#__PURE__*/ createReadContract({ - abi: pwnSignatureCheckerHarnessAbi, -}) +export const readPwnSimpleLoanListProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'revokedNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSignatureCheckerHarnessAbi}__ and `functionName` set to `"exposed_isValidSignatureNow"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSignatureCheckerHarnessExposedIsValidSignatureNow = +export const readPwnSimpleLoanListProposalUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSignatureCheckerHarnessAbi, - functionName: 'exposed_isValidSignatureNow', + abi: pwnSimpleLoanListProposalAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ */ -export const readPwnSimpleLoan = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, -}) +export const writePwnSimpleLoanListProposal = /*#__PURE__*/ createWriteContract( + { abi: pwnSimpleLoanListProposalAbi }, +) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"ACCRUING_INTEREST_APR_DECIMALS"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const readPwnSimpleLoanAccruingInterestAprDecimals = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'ACCRUING_INTEREST_APR_DECIMALS', +export const writePwnSimpleLoanListProposalAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"ACCRUING_INTEREST_APR_DENOMINATOR"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnSimpleLoanAccruingInterestAprDenominator = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'ACCRUING_INTEREST_APR_DENOMINATOR', +export const writePwnSimpleLoanListProposalMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnSimpleLoanDomainSeparator = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'DOMAIN_SEPARATOR', +export const writePwnSimpleLoanListProposalRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"EXTENSION_PROPOSAL_TYPEHASH"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ */ -export const readPwnSimpleLoanExtensionProposalTypehash = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'EXTENSION_PROPOSAL_TYPEHASH', - }) +export const simulatePwnSimpleLoanListProposal = + /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanListProposalAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MAX_ACCRUING_INTEREST_APR"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const readPwnSimpleLoanMaxAccruingInterestApr = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'MAX_ACCRUING_INTEREST_APR', +export const simulatePwnSimpleLoanListProposalAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MAX_EXTENSION_DURATION"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const readPwnSimpleLoanMaxExtensionDuration = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'MAX_EXTENSION_DURATION', +export const simulatePwnSimpleLoanListProposalMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MINUTES_IN_YEAR"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const readPwnSimpleLoanMinutesInYear = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'MINUTES_IN_YEAR', -}) +export const simulatePwnSimpleLoanListProposalRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MIN_EXTENSION_DURATION"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ */ -export const readPwnSimpleLoanMinExtensionDuration = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'MIN_EXTENSION_DURATION', - }) +export const watchPwnSimpleLoanListProposalEvent = + /*#__PURE__*/ createWatchContractEvent({ abi: pwnSimpleLoanListProposalAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"MIN_LOAN_DURATION"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const readPwnSimpleLoanMinLoanDuration = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'MIN_LOAN_DURATION', +export const watchPwnSimpleLoanListProposalProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanListProposalAbi, + eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ */ -export const readPwnSimpleLoanVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'VERSION', -}) +export const readPwnSimpleLoanListProposalHarness = + /*#__PURE__*/ createReadContract({ abi: pwnSimpleLoanListProposalHarnessAbi }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"categoryRegistry"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanCategoryRegistry = +export const readPwnSimpleLoanListProposalHarnessDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'categoryRegistry', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'config', -}) +export const readPwnSimpleLoanListProposalHarnessMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extensionProposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanExtensionProposalsMade = +export const readPwnSimpleLoanListProposalHarnessMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'extensionProposalsMade', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getExtensionHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanGetExtensionHash = +export const readPwnSimpleLoanListProposalHarnessProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'getExtensionHash', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanGetLoan = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'getLOAN', -}) +export const readPwnSimpleLoanListProposalHarnessVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'VERSION', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getLenderSpecHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const readPwnSimpleLoanGetLenderSpecHash = +export const readPwnSimpleLoanListProposalHarnessConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'getLenderSpecHash', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"getStateFingerprint"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanGetStateFingerprint = +export const readPwnSimpleLoanListProposalHarnessDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'getStateFingerprint', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'hub', -}) +export const readPwnSimpleLoanListProposalHarnessEncodeProposalData = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'encodeProposalData', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"isValidAsset"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const readPwnSimpleLoanIsValidAsset = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'isValidAsset', -}) +export const readPwnSimpleLoanListProposalHarnessExposedErc712EncodeProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanMetadataUri"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readPwnSimpleLoanLoanMetadataUri = +export const readPwnSimpleLoanListProposalHarnessGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'loanMetadataUri', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanRepaymentAmount"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanLoanRepaymentAmount = +export const readPwnSimpleLoanListProposalHarnessGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'loanRepaymentAmount', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"loanToken"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanLoanToken = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'loanToken', -}) +export const readPwnSimpleLoanListProposalHarnessHub = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'hub', + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanOnErc1155BatchReceived = +export const readPwnSimpleLoanListProposalHarnessProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'onERC1155BatchReceived', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC1155Received"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanOnErc1155Received = +export const readPwnSimpleLoanListProposalHarnessRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'onERC1155Received', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"onERC721Received"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanOnErc721Received = +export const readPwnSimpleLoanListProposalHarnessUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'onERC721Received', + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ */ -export const readPwnSimpleLoanRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'revokedNonce', -}) +export const writePwnSimpleLoanListProposalHarness = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"supportsInterface"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const readPwnSimpleLoanSupportsInterface = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanAbi, - functionName: 'supportsInterface', +export const writePwnSimpleLoanListProposalHarnessAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoan = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, -}) +export const writePwnSimpleLoanListProposalHarnessMakeProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'makeProposal', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"claimLOAN"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanClaimLoan = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'claimLOAN', -}) +export const writePwnSimpleLoanListProposalHarnessRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"createLOAN"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ */ -export const writePwnSimpleLoanCreateLoan = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'createLOAN', -}) +export const simulatePwnSimpleLoanListProposalHarness = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extendLOAN"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanExtendLoan = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'extendLOAN', -}) +export const simulatePwnSimpleLoanListProposalHarnessAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'acceptProposal', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"makeExtensionProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanMakeExtensionProposal = - /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'makeExtensionProposal', +export const simulatePwnSimpleLoanListProposalHarnessMakeProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"repayLOAN"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanRepayLoan = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'repayLOAN', -}) +export const simulatePwnSimpleLoanListProposalHarnessRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanListProposalHarnessAbi, + functionName: 'revokeNonce', + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"tryClaimRepaidLOAN"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ */ -export const writePwnSimpleLoanTryClaimRepaidLoan = - /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanAbi, - functionName: 'tryClaimRepaidLOAN', +export const watchPwnSimpleLoanListProposalHarnessEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanListProposalHarnessAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const simulatePwnSimpleLoan = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, -}) +export const watchPwnSimpleLoanListProposalHarnessProposalMadeEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanListProposalHarnessAbi, + eventName: 'ProposalMade', + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"claimLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ */ -export const simulatePwnSimpleLoanClaimLoan = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'claimLOAN', - }) +export const readPwnSimpleLoanProposal = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, +}) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"createLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const simulatePwnSimpleLoanCreateLoan = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'createLOAN', +export const readPwnSimpleLoanProposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"extendLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const simulatePwnSimpleLoanExtendLoan = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'extendLOAN', +export const readPwnSimpleLoanProposalMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"makeExtensionProposal"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const simulatePwnSimpleLoanMakeExtensionProposal = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'makeExtensionProposal', +export const readPwnSimpleLoanProposalMultiproposalTypehash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"repayLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"config"` */ -export const simulatePwnSimpleLoanRepayLoan = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'repayLOAN', - }) +export const readPwnSimpleLoanProposalConfig = /*#__PURE__*/ createReadContract( + { abi: pwnSimpleLoanProposalAbi, functionName: 'config' }, +) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `functionName` set to `"tryClaimRepaidLOAN"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const simulatePwnSimpleLoanTryClaimRepaidLoan = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanAbi, - functionName: 'tryClaimRepaidLOAN', +export const readPwnSimpleLoanProposalGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"hub"` */ -export const watchPwnSimpleLoanEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, +export const readPwnSimpleLoanProposalHub = /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'hub', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"ExtensionProposalMade"` - */ -export const watchPwnSimpleLoanExtensionProposalMadeEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'ExtensionProposalMade', - }) - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANClaimed"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const watchPwnSimpleLoanLoanClaimedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'LOANClaimed', +export const readPwnSimpleLoanProposalProposalsMade = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANCreated"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const watchPwnSimpleLoanLoanCreatedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'LOANCreated', +export const readPwnSimpleLoanProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANExtended"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const watchPwnSimpleLoanLoanExtendedEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'LOANExtended', +export const readPwnSimpleLoanProposalUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'utilizedCredit', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"LOANPaidBack"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ */ -export const watchPwnSimpleLoanLoanPaidBackEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'LOANPaidBack', - }) +export const writePwnSimpleLoanProposal = /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanProposalAbi, +}) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"PoolSupply"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnSimpleLoanPoolSupplyEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'PoolSupply', +export const writePwnSimpleLoanProposalAcceptProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"PoolWithdraw"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchPwnSimpleLoanPoolWithdrawEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'PoolWithdraw', +export const writePwnSimpleLoanProposalRevokeNonce = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPull"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ */ -export const watchPwnSimpleLoanVaultPullEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'VaultPull', - }) +export const simulatePwnSimpleLoanProposal = + /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanProposalAbi }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPush"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const watchPwnSimpleLoanVaultPushEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'VaultPush', +export const simulatePwnSimpleLoanProposalAcceptProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'acceptProposal', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanAbi}__ and `eventName` set to `"VaultPushFrom"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const watchPwnSimpleLoanVaultPushFromEvent = - /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanAbi, - eventName: 'VaultPushFrom', +export const simulatePwnSimpleLoanProposalRevokeNonce = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanProposalAbi, + functionName: 'revokeNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ */ -export const readPwnSimpleLoanDutchAuctionProposal = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, - }) +export const readPwnSimpleLoanSimpleProposal = /*#__PURE__*/ createReadContract( + { abi: pwnSimpleLoanSimpleProposalAbi }, +) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanDutchAuctionProposalDomainSeparator = +export const readPwnSimpleLoanSimpleProposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanDutchAuctionProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanSimpleProposalMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanDutchAuctionProposalMultiproposalTypehash = +export const readPwnSimpleLoanSimpleProposalMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanDutchAuctionProposalProposalTypehash = +export const readPwnSimpleLoanSimpleProposalProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanDutchAuctionProposalVersion = +export const readPwnSimpleLoanSimpleProposalVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'VERSION', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"config"` */ -export const readPwnSimpleLoanDutchAuctionProposalConfig = +export const readPwnSimpleLoanSimpleProposalConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanDutchAuctionProposalDecodeProposalData = +export const readPwnSimpleLoanSimpleProposalDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanDutchAuctionProposalEncodeProposalData = +export const readPwnSimpleLoanSimpleProposalEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getCreditAmount"` - */ -export const readPwnSimpleLoanDutchAuctionProposalGetCreditAmount = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, - functionName: 'getCreditAmount', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readPwnSimpleLoanDutchAuctionProposalGetMultiproposalHash = +export const readPwnSimpleLoanSimpleProposalGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanDutchAuctionProposalGetProposalHash = +export const readPwnSimpleLoanSimpleProposalGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanDutchAuctionProposalHub = +export const readPwnSimpleLoanSimpleProposalHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanDutchAuctionProposalProposalsMade = +export const readPwnSimpleLoanSimpleProposalProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanDutchAuctionProposalRevokedNonce = +export const readPwnSimpleLoanSimpleProposalRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanDutchAuctionProposalUtilizedCredit = +export const readPwnSimpleLoanSimpleProposalUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ */ -export const writePwnSimpleLoanDutchAuctionProposal = - /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, - }) +export const writePwnSimpleLoanSimpleProposal = + /*#__PURE__*/ createWriteContract({ abi: pwnSimpleLoanSimpleProposalAbi }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanDutchAuctionProposalAcceptProposal = +export const writePwnSimpleLoanSimpleProposalAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanDutchAuctionProposalMakeProposal = +export const writePwnSimpleLoanSimpleProposalMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanDutchAuctionProposalRevokeNonce = +export const writePwnSimpleLoanSimpleProposalRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ */ -export const simulatePwnSimpleLoanDutchAuctionProposal = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, - }) +export const simulatePwnSimpleLoanSimpleProposal = + /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanSimpleProposalAbi }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanDutchAuctionProposalAcceptProposal = +export const simulatePwnSimpleLoanSimpleProposalAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanDutchAuctionProposalMakeProposal = +export const simulatePwnSimpleLoanSimpleProposalMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanDutchAuctionProposalRevokeNonce = +export const simulatePwnSimpleLoanSimpleProposalRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ */ -export const watchPwnSimpleLoanDutchAuctionProposalEvent = +export const watchPwnSimpleLoanSimpleProposalEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanDutchAuctionProposalAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanDutchAuctionProposalProposalMadeEvent = +export const watchPwnSimpleLoanSimpleProposalProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanDutchAuctionProposalAbi, + abi: pwnSimpleLoanSimpleProposalAbi, eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ */ -export const readPwnSimpleLoanElasticChainlinkProposal = +export const readPwnSimpleLoanSimpleProposalHarness = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanElasticChainlinkProposalDomainSeparator = +export const readPwnSimpleLoanSimpleProposalHarnessDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` - */ -export const readPwnSimpleLoanElasticChainlinkProposalLoanToValueDenominator = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'LOAN_TO_VALUE_DENOMINATOR', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` - */ -export const readPwnSimpleLoanElasticChainlinkProposalMaxIntermediaryDenominations = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanElasticChainlinkProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanSimpleProposalHarnessMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticChainlinkProposalMultiproposalTypehash = +export const readPwnSimpleLoanSimpleProposalHarnessMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticChainlinkProposalProposalTypehash = +export const readPwnSimpleLoanSimpleProposalHarnessProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanElasticChainlinkProposalVersion = +export const readPwnSimpleLoanSimpleProposalHarnessVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'VERSION', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"WETH"` - */ -export const readPwnSimpleLoanElasticChainlinkProposalWeth = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'WETH', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` - */ -export const readPwnSimpleLoanElasticChainlinkProposalChainlinkFeedRegistry = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'chainlinkFeedRegistry', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const readPwnSimpleLoanElasticChainlinkProposalConfig = +export const readPwnSimpleLoanSimpleProposalHarnessConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanElasticChainlinkProposalDecodeProposalData = +export const readPwnSimpleLoanSimpleProposalHarnessDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanElasticChainlinkProposalEncodeProposalData = +export const readPwnSimpleLoanSimpleProposalHarnessEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getCollateralAmount"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const readPwnSimpleLoanElasticChainlinkProposalGetCollateralAmount = +export const readPwnSimpleLoanSimpleProposalHarnessExposedErc712EncodeProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'getCollateralAmount', + abi: pwnSimpleLoanSimpleProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readPwnSimpleLoanElasticChainlinkProposalGetMultiproposalHash = +export const readPwnSimpleLoanSimpleProposalHarnessGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanElasticChainlinkProposalGetProposalHash = +export const readPwnSimpleLoanSimpleProposalHarnessGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHub = +export const readPwnSimpleLoanSimpleProposalHarnessHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"l2SequencerUptimeFeed"` - */ -export const readPwnSimpleLoanElasticChainlinkProposalL2SequencerUptimeFeed = - /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, - functionName: 'l2SequencerUptimeFeed', - }) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanElasticChainlinkProposalProposalsMade = +export const readPwnSimpleLoanSimpleProposalHarnessProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanElasticChainlinkProposalRevokedNonce = +export const readPwnSimpleLoanSimpleProposalHarnessRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanElasticChainlinkProposalUtilizedCredit = +export const readPwnSimpleLoanSimpleProposalHarnessUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ */ -export const writePwnSimpleLoanElasticChainlinkProposal = +export const writePwnSimpleLoanSimpleProposalHarness = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanElasticChainlinkProposalAcceptProposal = +export const writePwnSimpleLoanSimpleProposalHarnessAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanElasticChainlinkProposalMakeProposal = +export const writePwnSimpleLoanSimpleProposalHarnessMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanElasticChainlinkProposalRevokeNonce = +export const writePwnSimpleLoanSimpleProposalHarnessRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ */ -export const simulatePwnSimpleLoanElasticChainlinkProposal = +export const simulatePwnSimpleLoanSimpleProposalHarness = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalAcceptProposal = +export const simulatePwnSimpleLoanSimpleProposalHarnessAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalMakeProposal = +export const simulatePwnSimpleLoanSimpleProposalHarnessMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalRevokeNonce = +export const simulatePwnSimpleLoanSimpleProposalHarnessRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ */ -export const watchPwnSimpleLoanElasticChainlinkProposalEvent = +export const watchPwnSimpleLoanSimpleProposalHarnessEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanElasticChainlinkProposalProposalMadeEvent = +export const watchPwnSimpleLoanSimpleProposalHarnessProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticChainlinkProposalAbi, + abi: pwnSimpleLoanSimpleProposalHarnessAbi, eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ */ -export const readPwnSimpleLoanElasticChainlinkProposalHarness = +export const readPwnSimpleLoanUniswapV3LpIndividualProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessLoanToValueDenominator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalLoanToValueDenominator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'LOAN_TO_VALUE_DENOMINATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessMaxIntermediaryDenominations = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalMaxIntermediaryDenominations = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessMultiproposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessMultiproposalTypehash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessProposalTypehash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessVersion = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'VERSION', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"WETH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"WETH"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessWeth = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalWeth = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'WETH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessChainlinkFeedRegistry = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalChainlinkFeedRegistry = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'chainlinkFeedRegistry', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessConfig = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalChainlinkL2SequencerUptimeFeed = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'config', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"config"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessDecodeProposalData = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'decodeProposalData', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessEncodeProposalData = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'encodeProposalData', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessExposedErc712EncodeProposal = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'exposed_erc712EncodeProposal', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getCollateralAmount"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetCollateralAmount = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalGetCreditAmount = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'getCollateralAmount', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'getCreditAmount', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetMultiproposalHash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessGetProposalHash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessHub = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"l2SequencerUptimeFeed"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessL2SequencerUptimeFeed = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'l2SequencerUptimeFeed', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessProposalsMade = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'proposalsMade', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"uniswapNFTPositionManager"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessRevokedNonce = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalUniswapNftPositionManager = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'uniswapNFTPositionManager', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"uniswapV3Factory"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalUniswapV3Factory = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, - functionName: 'revokedNonce', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + functionName: 'uniswapV3Factory', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanElasticChainlinkProposalHarnessUtilizedCredit = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ */ -export const writePwnSimpleLoanElasticChainlinkProposalHarness = +export const writePwnSimpleLoanUniswapV3LpIndividualProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanElasticChainlinkProposalHarnessAcceptProposal = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanElasticChainlinkProposalHarnessMakeProposal = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanElasticChainlinkProposalHarnessRevokeNonce = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ */ -export const simulatePwnSimpleLoanElasticChainlinkProposalHarness = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessAcceptProposal = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessMakeProposal = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanElasticChainlinkProposalHarnessRevokeNonce = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ */ -export const watchPwnSimpleLoanElasticChainlinkProposalHarnessEvent = +export const watchPwnSimpleLoanUniswapV3LpIndividualProposalEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticChainlinkProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanElasticChainlinkProposalHarnessProposalMadeEvent = +export const watchPwnSimpleLoanUniswapV3LpIndividualProposalProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticChainlinkProposalHarnessAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalAbi, eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ */ -export const readPwnSimpleLoanElasticProposal = - /*#__PURE__*/ createReadContract({ abi: pwnSimpleLoanElasticProposalAbi }) +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarness = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanElasticProposalCreditPerCollateralUnitDenominator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, - functionName: 'CREDIT_PER_COLLATERAL_UNIT_DENOMINATOR', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const readPwnSimpleLoanElasticProposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessLoanToValueDenominator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, - functionName: 'DOMAIN_SEPARATOR', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'LOAN_TO_VALUE_DENOMINATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` */ -export const readPwnSimpleLoanElasticProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessMaxIntermediaryDenominations = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticProposalMultiproposalTypehash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanElasticProposalProposalTypehash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanElasticProposalVersion = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'VERSION', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"WETH"` */ -export const readPwnSimpleLoanElasticProposalConfig = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessWeth = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'WETH', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessChainlinkFeedRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'chainlinkFeedRegistry', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessChainlinkL2SequencerUptimeFeed = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"config"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanElasticProposalDecodeProposalData = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanElasticProposalEncodeProposalData = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getCollateralAmount"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const readPwnSimpleLoanElasticProposalGetCollateralAmount = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessExposedErc712EncodeProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, - functionName: 'getCollateralAmount', + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const readPwnSimpleLoanElasticProposalGetMultiproposalHash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessGetCreditAmount = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'getCreditAmount', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanElasticProposalGetProposalHash = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanElasticProposalHub = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanElasticProposalProposalsMade = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanElasticProposalRevokedNonce = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"uniswapNFTPositionManager"` */ -export const readPwnSimpleLoanElasticProposalUtilizedCredit = +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessUniswapNftPositionManager = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'uniswapNFTPositionManager', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"uniswapV3Factory"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessUniswapV3Factory = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + functionName: 'uniswapV3Factory', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` + */ +export const readPwnSimpleLoanUniswapV3LpIndividualProposalHarnessUtilizedCredit = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ */ -export const writePwnSimpleLoanElasticProposal = - /*#__PURE__*/ createWriteContract({ abi: pwnSimpleLoanElasticProposalAbi }) +export const writePwnSimpleLoanUniswapV3LpIndividualProposalHarness = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanElasticProposalAcceptProposal = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalHarnessAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanElasticProposalMakeProposal = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalHarnessMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanElasticProposalRevokeNonce = +export const writePwnSimpleLoanUniswapV3LpIndividualProposalHarnessRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ */ -export const simulatePwnSimpleLoanElasticProposal = - /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanElasticProposalAbi }) +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalHarness = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanElasticProposalAcceptProposal = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalHarnessAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanElasticProposalMakeProposal = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalHarnessMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanElasticProposalRevokeNonce = +export const simulatePwnSimpleLoanUniswapV3LpIndividualProposalHarnessRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ */ -export const watchPwnSimpleLoanElasticProposalEvent = +export const watchPwnSimpleLoanUniswapV3LpIndividualProposalHarnessEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanElasticProposalAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanElasticProposalProposalMadeEvent = +export const watchPwnSimpleLoanUniswapV3LpIndividualProposalHarnessProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanElasticProposalAbi, + abi: pwnSimpleLoanUniswapV3LpIndividualProposalHarnessAbi, eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ */ -export const readPwnSimpleLoanListProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, -}) +export const readPwnSimpleLoanUniswapV3LpSetProposal = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanListProposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const readPwnSimpleLoanListProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalLoanToValueDenominator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'LOAN_TO_VALUE_DENOMINATOR', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalMaxIntermediaryDenominations = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalMultiproposalDomainSeparator = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanListProposalMultiproposalTypehash = +export const readPwnSimpleLoanUniswapV3LpSetProposalMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanListProposalProposalTypehash = +export const readPwnSimpleLoanUniswapV3LpSetProposalProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"VERSION"` */ -export const readPwnSimpleLoanListProposalVersion = +export const readPwnSimpleLoanUniswapV3LpSetProposalVersion = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'VERSION', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"WETH"` */ -export const readPwnSimpleLoanListProposalConfig = +export const readPwnSimpleLoanUniswapV3LpSetProposalWeth = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'WETH', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalChainlinkFeedRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'chainlinkFeedRegistry', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalChainlinkL2SequencerUptimeFeed = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"config"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalConfig = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanListProposalDecodeProposalData = +export const readPwnSimpleLoanUniswapV3LpSetProposalDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanListProposalEncodeProposalData = +export const readPwnSimpleLoanUniswapV3LpSetProposalEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const readPwnSimpleLoanListProposalGetMultiproposalHash = +export const readPwnSimpleLoanUniswapV3LpSetProposalGetCreditAmount = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'getCreditAmount', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalGetMultiproposalHash = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanListProposalGetProposalHash = +export const readPwnSimpleLoanUniswapV3LpSetProposalGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanListProposalHub = +export const readPwnSimpleLoanUniswapV3LpSetProposalHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanListProposalProposalsMade = +export const readPwnSimpleLoanUniswapV3LpSetProposalProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"revokedNonce"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalRevokedNonce = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'revokedNonce', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"uniswapNFTPositionManager"` + */ +export const readPwnSimpleLoanUniswapV3LpSetProposalUniswapNftPositionManager = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'uniswapNFTPositionManager', + }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"uniswapV3Factory"` */ -export const readPwnSimpleLoanListProposalRevokedNonce = +export const readPwnSimpleLoanUniswapV3LpSetProposalUniswapV3Factory = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, - functionName: 'revokedNonce', + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + functionName: 'uniswapV3Factory', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanListProposalUtilizedCredit = +export const readPwnSimpleLoanUniswapV3LpSetProposalUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ */ -export const writePwnSimpleLoanListProposal = /*#__PURE__*/ createWriteContract( - { abi: pwnSimpleLoanListProposalAbi }, -) +export const writePwnSimpleLoanUniswapV3LpSetProposal = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanListProposalAcceptProposal = +export const writePwnSimpleLoanUniswapV3LpSetProposalAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanListProposalMakeProposal = +export const writePwnSimpleLoanUniswapV3LpSetProposalMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanListProposalRevokeNonce = +export const writePwnSimpleLoanUniswapV3LpSetProposalRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ */ -export const simulatePwnSimpleLoanListProposal = - /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanListProposalAbi }) +export const simulatePwnSimpleLoanUniswapV3LpSetProposal = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanListProposalAcceptProposal = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanListProposalMakeProposal = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanListProposalRevokeNonce = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ */ -export const watchPwnSimpleLoanListProposalEvent = - /*#__PURE__*/ createWatchContractEvent({ abi: pwnSimpleLoanListProposalAbi }) +export const watchPwnSimpleLoanUniswapV3LpSetProposalEvent = + /*#__PURE__*/ createWatchContractEvent({ + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, + }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanListProposalAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanListProposalProposalMadeEvent = +export const watchPwnSimpleLoanUniswapV3LpSetProposalProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanListProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalAbi, eventName: 'ProposalMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ - */ -export const readPwnSimpleLoanProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ */ -export const readPwnSimpleLoanProposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarness = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'DOMAIN_SEPARATOR', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"LOAN_TO_VALUE_DENOMINATOR"` */ -export const readPwnSimpleLoanProposalMultiproposalTypehash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessLoanToValueDenominator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'MULTIPROPOSAL_TYPEHASH', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'LOAN_TO_VALUE_DENOMINATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"config"` - */ -export const readPwnSimpleLoanProposalConfig = /*#__PURE__*/ createReadContract( - { abi: pwnSimpleLoanProposalAbi, functionName: 'config' }, -) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"MAX_INTERMEDIARY_DENOMINATIONS"` */ -export const readPwnSimpleLoanProposalGetMultiproposalHash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessMaxIntermediaryDenominations = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'getMultiproposalHash', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'MAX_INTERMEDIARY_DENOMINATIONS', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"hub"` - */ -export const readPwnSimpleLoanProposalHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'hub', -}) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` */ -export const readPwnSimpleLoanProposalProposalsMade = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessMultiproposalDomainSeparator = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'proposalsMade', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanProposalRevokedNonce = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessMultiproposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'revokedNonce', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'MULTIPROPOSAL_TYPEHASH', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` */ -export const readPwnSimpleLoanProposalUtilizedCredit = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessProposalTypehash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'utilizedCredit', - }) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ - */ -export const writePwnSimpleLoanProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanProposalAbi, -}) - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"acceptProposal"` - */ -export const writePwnSimpleLoanProposalAcceptProposal = - /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'acceptProposal', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'PROPOSAL_TYPEHASH', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"VERSION"` */ -export const writePwnSimpleLoanProposalRevokeNonce = - /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'revokeNonce', +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessVersion = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'VERSION', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ - */ -export const simulatePwnSimpleLoanProposal = - /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanProposalAbi }) - -/** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"WETH"` */ -export const simulatePwnSimpleLoanProposalAcceptProposal = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'acceptProposal', +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessWeth = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'WETH', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"chainlinkFeedRegistry"` */ -export const simulatePwnSimpleLoanProposalRevokeNonce = - /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanProposalAbi, - functionName: 'revokeNonce', +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessChainlinkFeedRegistry = + /*#__PURE__*/ createReadContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'chainlinkFeedRegistry', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ - */ -export const readPwnSimpleLoanSimpleProposal = /*#__PURE__*/ createReadContract( - { abi: pwnSimpleLoanSimpleProposalAbi }, -) - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"chainlinkL2SequencerUptimeFeed"` */ -export const readPwnSimpleLoanSimpleProposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessChainlinkL2SequencerUptimeFeed = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'DOMAIN_SEPARATOR', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'chainlinkL2SequencerUptimeFeed', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_DOMAIN_SEPARATOR"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"config"` */ -export const readPwnSimpleLoanSimpleProposalMultiproposalDomainSeparator = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessConfig = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'MULTIPROPOSAL_DOMAIN_SEPARATOR', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'config', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"MULTIPROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"decodeProposalData"` */ -export const readPwnSimpleLoanSimpleProposalMultiproposalTypehash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessDecodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'MULTIPROPOSAL_TYPEHASH', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'decodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"PROPOSAL_TYPEHASH"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"encodeProposalData"` */ -export const readPwnSimpleLoanSimpleProposalProposalTypehash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessEncodeProposalData = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'PROPOSAL_TYPEHASH', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'encodeProposalData', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"VERSION"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"exposed_erc712EncodeProposal"` */ -export const readPwnSimpleLoanSimpleProposalVersion = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessExposedErc712EncodeProposal = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'VERSION', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'exposed_erc712EncodeProposal', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"config"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"getCreditAmount"` */ -export const readPwnSimpleLoanSimpleProposalConfig = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessGetCreditAmount = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'config', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'getCreditAmount', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"decodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"getMultiproposalHash"` */ -export const readPwnSimpleLoanSimpleProposalDecodeProposalData = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessGetMultiproposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'decodeProposalData', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'getMultiproposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"encodeProposalData"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"getProposalHash"` */ -export const readPwnSimpleLoanSimpleProposalEncodeProposalData = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessGetProposalHash = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'encodeProposalData', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'getProposalHash', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"getMultiproposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"hub"` */ -export const readPwnSimpleLoanSimpleProposalGetMultiproposalHash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessHub = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'getMultiproposalHash', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'hub', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"getProposalHash"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"proposalsMade"` */ -export const readPwnSimpleLoanSimpleProposalGetProposalHash = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessProposalsMade = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'getProposalHash', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'proposalsMade', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"hub"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"revokedNonce"` */ -export const readPwnSimpleLoanSimpleProposalHub = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessRevokedNonce = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'hub', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'revokedNonce', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"proposalsMade"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"uniswapNFTPositionManager"` */ -export const readPwnSimpleLoanSimpleProposalProposalsMade = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessUniswapNftPositionManager = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'proposalsMade', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'uniswapNFTPositionManager', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokedNonce"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"uniswapV3Factory"` */ -export const readPwnSimpleLoanSimpleProposalRevokedNonce = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessUniswapV3Factory = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, - functionName: 'revokedNonce', + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + functionName: 'uniswapV3Factory', }) /** - * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"utilizedCredit"` + * Wraps __{@link readContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"utilizedCredit"` */ -export const readPwnSimpleLoanSimpleProposalUtilizedCredit = +export const readPwnSimpleLoanUniswapV3LpSetProposalHarnessUtilizedCredit = /*#__PURE__*/ createReadContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'utilizedCredit', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ */ -export const writePwnSimpleLoanSimpleProposal = - /*#__PURE__*/ createWriteContract({ abi: pwnSimpleLoanSimpleProposalAbi }) +export const writePwnSimpleLoanUniswapV3LpSetProposalHarness = + /*#__PURE__*/ createWriteContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const writePwnSimpleLoanSimpleProposalAcceptProposal = +export const writePwnSimpleLoanUniswapV3LpSetProposalHarnessAcceptProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const writePwnSimpleLoanSimpleProposalMakeProposal = +export const writePwnSimpleLoanUniswapV3LpSetProposalHarnessMakeProposal = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link writeContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const writePwnSimpleLoanSimpleProposalRevokeNonce = +export const writePwnSimpleLoanUniswapV3LpSetProposalHarnessRevokeNonce = /*#__PURE__*/ createWriteContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ */ -export const simulatePwnSimpleLoanSimpleProposal = - /*#__PURE__*/ createSimulateContract({ abi: pwnSimpleLoanSimpleProposalAbi }) +export const simulatePwnSimpleLoanUniswapV3LpSetProposalHarness = + /*#__PURE__*/ createSimulateContract({ + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, + }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"acceptProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"acceptProposal"` */ -export const simulatePwnSimpleLoanSimpleProposalAcceptProposal = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalHarnessAcceptProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'acceptProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"makeProposal"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"makeProposal"` */ -export const simulatePwnSimpleLoanSimpleProposalMakeProposal = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalHarnessMakeProposal = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'makeProposal', }) /** - * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `functionName` set to `"revokeNonce"` + * Wraps __{@link simulateContract}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `functionName` set to `"revokeNonce"` */ -export const simulatePwnSimpleLoanSimpleProposalRevokeNonce = +export const simulatePwnSimpleLoanUniswapV3LpSetProposalHarnessRevokeNonce = /*#__PURE__*/ createSimulateContract({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, functionName: 'revokeNonce', }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ */ -export const watchPwnSimpleLoanSimpleProposalEvent = +export const watchPwnSimpleLoanUniswapV3LpSetProposalHarnessEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, }) /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanSimpleProposalAbi}__ and `eventName` set to `"ProposalMade"` + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi}__ and `eventName` set to `"ProposalMade"` */ -export const watchPwnSimpleLoanSimpleProposalProposalMadeEvent = +export const watchPwnSimpleLoanUniswapV3LpSetProposalHarnessProposalMadeEvent = /*#__PURE__*/ createWatchContractEvent({ - abi: pwnSimpleLoanSimpleProposalAbi, + abi: pwnSimpleLoanUniswapV3LpSetProposalHarnessAbi, eventName: 'ProposalMade', }) @@ -20336,3 +34482,18 @@ export const watchTransparentUpgradeableProxyUpgradedEvent = abi: transparentUpgradeableProxyAbi, eventName: 'Upgraded', }) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link uniswapV3HarnessAbi}__ + */ +export const readUniswapV3Harness = /*#__PURE__*/ createReadContract({ + abi: uniswapV3HarnessAbi, +}) + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link uniswapV3HarnessAbi}__ and `functionName` set to `"getLPValue"` + */ +export const readUniswapV3HarnessGetLpValue = /*#__PURE__*/ createReadContract({ + abi: uniswapV3HarnessAbi, + functionName: 'getLPValue', +}) diff --git a/packages/v1-core/src/index.ts b/packages/v1-core/src/index.ts index 34933437..0e621291 100644 --- a/packages/v1-core/src/index.ts +++ b/packages/v1-core/src/index.ts @@ -13,6 +13,8 @@ export * from "./factories/create-chain-link-proposal.js"; export * from "./factories/types.js"; export * from "./factories/helpers.js"; export * from "./factories/constants.js"; +export * from "./factories/create-uniswap-v3-lp-individual-proposal.js"; +export * from "./factories/create-uniswap-v3-lp-set-proposal.js"; export * from "./views/get-user-with-nonce.js"; export * from "./views/get-strategies.js"; diff --git a/packages/v1-core/src/models/proposals/chainlink-proposal.ts b/packages/v1-core/src/models/proposals/chainlink-proposal.ts index 5505b0a8..edb72a3d 100644 --- a/packages/v1-core/src/models/proposals/chainlink-proposal.ts +++ b/packages/v1-core/src/models/proposals/chainlink-proposal.ts @@ -99,7 +99,10 @@ export class ChainLinkProposal implements IOracleProposalBase { accruingInterestAPR: Number(this.accruingInterestAPR), durationOrDate: Number(this.durationOrDate), expiration: this.expiration, - allowedAcceptor: this.allowedAcceptor, + // allowedAcceptor: this.allowedAcceptor, // TODO: some type error, check later if correct + acceptorController: EMPTY_32_BYTES, + acceptorControllerData: EMPTY_32_BYTES, + proposer: this.proposer, proposerSpecHash: this.isOffer ? this.proposerSpecHash : EMPTY_32_BYTES, isOffer: this.isOffer ?? false, diff --git a/packages/v1-core/src/models/proposals/elastic-proposal.ts b/packages/v1-core/src/models/proposals/elastic-proposal.ts index ab19a59a..252186f7 100644 --- a/packages/v1-core/src/models/proposals/elastic-proposal.ts +++ b/packages/v1-core/src/models/proposals/elastic-proposal.ts @@ -56,7 +56,9 @@ export class ElasticProposal implements IElasticProposalBase { accruingInterestAPR: Number(this.accruingInterestAPR), durationOrDate: Number(this.durationOrDate), expiration: this.expiration, - allowedAcceptor: this.allowedAcceptor, + // allowedAcceptor: this.allowedAcceptor, // TODO: some type error, check later if correct + acceptorController: EMPTY_32_BYTES, // TODO: add this once V1.4 is implemented + acceptorControllerData: EMPTY_32_BYTES, // TODO: add this once V1.4 is implemented proposer: this.proposer, proposerSpecHash: this.isOffer ? this.proposerSpecHash : EMPTY_32_BYTES, isOffer: this.isOffer ?? false, diff --git a/packages/v1-core/src/models/proposals/index.ts b/packages/v1-core/src/models/proposals/index.ts index 8fa3d428..9abdcd71 100644 --- a/packages/v1-core/src/models/proposals/index.ts +++ b/packages/v1-core/src/models/proposals/index.ts @@ -1,3 +1,5 @@ export * from "./elastic-proposal.js"; export * from "./chainlink-proposal.js"; export * from "./proposal-base.js"; +export * from "./uniswap-v3-lp-individual-proposal.js"; +export * from "./uniswap-v3-lp-set-proposal.js"; diff --git a/packages/v1-core/src/models/proposals/proposal-base.ts b/packages/v1-core/src/models/proposals/proposal-base.ts index aa498694..092c97d5 100644 --- a/packages/v1-core/src/models/proposals/proposal-base.ts +++ b/packages/v1-core/src/models/proposals/proposal-base.ts @@ -17,6 +17,8 @@ export enum ProposalType { DutchAuction = "pwn_contracts.v1_3simpleloandutchauctionproposal", Simple = "pwn_contracts.v1_3simpleloansimpleproposal", ChainLink = "pwn_contracts.v1_3simpleloanelasticchainlinkproposal", + UniswapV3LpSet = "pwn_contracts.v1_4simpleloanuniswapv3lpsetproposal", + UniswapV3Individual = "pwn_contracts.v1_4simpleloanuniswapv3individualproposal", } export interface IProposalMisc { @@ -183,6 +185,40 @@ export interface IOracleProposalBase type: ProposalType.ChainLink; } +export interface IUniswapV3LpSetProposalBase extends Omit { + type: ProposalType.UniswapV3LpSet; + + /** + * List of assets that can be used in LP pair as a tokenA + */ + tokenAAllowlist: AddressString[]; + + /** + * List of assets that can be used in LP pair as a tokenB + */ + tokenBAllowlist: AddressString[]; + + /** + * UniswapV3LpSetProposal is always lending offer + */ + isOffer: true; + + // TODO: remove this after V1.4 is implemented + acceptorController: AddressString | null; + acceptorControllerData: Hex | null; +} + +export interface IUniswapV3IndividualProposalBase extends Omit { + token0Denominator: boolean; + feedIntermediaryDenominations: AddressString[]; + feedInvertFlags: boolean[]; + loanToValue: bigint; + acceptorController: AddressString; + acceptorControllerData: Hex; + collateralId: bigint; + type: ProposalType.UniswapV3Individual; +} + interface IBaseFixedProposal { /** * Amount of tokens used as a collateral, in case of ERC721 should be 0. diff --git a/packages/v1-core/src/models/proposals/uniswap-v3-lp-individual-proposal.ts b/packages/v1-core/src/models/proposals/uniswap-v3-lp-individual-proposal.ts new file mode 100644 index 00000000..1c10d90e --- /dev/null +++ b/packages/v1-core/src/models/proposals/uniswap-v3-lp-individual-proposal.ts @@ -0,0 +1,132 @@ +import { AddressString, Hex, MultiTokenCategory, V1_4_CHAIN_TO_ADDRESSES_MAP } from "@pwndao/sdk-core"; +import { SupportedChain } from "@pwndao/sdk-core"; +import { IUniswapV3IndividualProposalBase, ProposalType } from "./proposal-base.js"; +import { V1_4SimpleLoanUniswapV3IndividualProposalStruct } from "../../structs.js"; + +export class UniswapV3IndividualProposal implements IUniswapV3IndividualProposalBase { + type = ProposalType.UniswapV3Individual as const; + proposalContract = V1_4_CHAIN_TO_ADDRESSES_MAP[SupportedChain.Sepolia].pwnSimpleLoanUniswapV3IndividualProposal; // TODO: later change to CHAIN_TO_ADDRESSES_MAP and dynamic chain id + collateralCategory = MultiTokenCategory.UNISWAP_V3_LP; + + static ERC712_TYPES = { + Proposal: [ + { name: "collateralId", type: "uint256" }, + { name: "token0Denominator", type: "bool" }, + { name: "creditAddress", type: "address" }, + { name: "feedIntermediaryDenominations", type: "address[]" }, + { name: "feedInvertFlags", type: "bool[]" }, + { name: "loanToValue", type: "uint256" }, + { name: "minCreditAmount", type: "uint256" }, + { name: "availableCreditLimit", type: "uint256" }, + { name: "utilizedCreditId", type: "bytes32" }, + { name: "fixedInterestAmount", type: "uint256" }, + { name: "accruingInterestAPR", type: "uint24" }, + { name: "durationOrDate", type: "uint32" }, + { name: "expiration", type: "uint40" }, + { name: "acceptorController", type: "address" }, + { name: "acceptorControllerData", type: "bytes" }, + { name: "proposer", type: "address" }, + { name: "proposerSpecHash", type: "bytes32" }, + { name: "isOffer", type: "bool" }, + { name: "refinancingLoanId", type: "uint256" }, + { name: "nonceSpace", type: "uint256" }, + { name: "nonce", type: "uint256" }, + { name: "loanContract", type: "address" } + ] + } + + constructor( + proposal: Omit, + chainId: SupportedChain, + ) { + this.chainId = chainId; + this.collateralId = proposal.collateralId; + this.token0Denominator = proposal.token0Denominator; + this.creditAddress = proposal.creditAddress; + this.feedIntermediaryDenominations = proposal.feedIntermediaryDenominations; + this.feedInvertFlags = proposal.feedInvertFlags; + this.loanToValue = proposal.loanToValue; + this.minCreditAmount = proposal.minCreditAmount; + this.availableCreditLimit = proposal.availableCreditLimit; + this.utilizedCreditId = proposal.utilizedCreditId; + this.fixedInterestAmount = proposal.fixedInterestAmount; + this.accruingInterestAPR = proposal.accruingInterestAPR; + this.durationOrDate = proposal.durationOrDate; + this.expiration = proposal.expiration; + this.acceptorController = proposal.acceptorController; + this.acceptorControllerData = proposal.acceptorControllerData; + this.proposer = proposal.proposer; + this.proposerSpecHash = proposal.proposerSpecHash; + this.isOffer = proposal.isOffer; + this.refinancingLoanId = proposal.refinancingLoanId; + this.nonceSpace = proposal.nonceSpace; + this.nonce = proposal.nonce; + this.loanContract = proposal.loanContract; + + this.collateralAddress = proposal.collateralAddress; + this.checkCollateralStateFingerprint = proposal.checkCollateralStateFingerprint; + this.collateralStateFingerprint = proposal.collateralStateFingerprint; + this.allowedAcceptor = proposal.allowedAcceptor; + this.sourceOfFunds = proposal.sourceOfFunds; + this.minCreditAmount = proposal.minCreditAmount; + this.relatedStrategyId = proposal.relatedStrategyId; + } + + createProposalStruct(): V1_4SimpleLoanUniswapV3IndividualProposalStruct { + return { + collateralId: this.collateralId, + token0Denominator: this.token0Denominator, + creditAddress: this.creditAddress, + feedIntermediaryDenominations: this.feedIntermediaryDenominations, + feedInvertFlags: this.feedInvertFlags, + loanToValue: this.loanToValue, + minCreditAmount: this.minCreditAmount, + availableCreditLimit: this.availableCreditLimit, + utilizedCreditId: this.utilizedCreditId, + fixedInterestAmount: this.fixedInterestAmount, + accruingInterestAPR: this.accruingInterestAPR, + durationOrDate: this.durationOrDate, + expiration: this.expiration, + acceptorController: this.acceptorController, + acceptorControllerData: this.acceptorControllerData, + proposer: this.proposer, + proposerSpecHash: this.proposerSpecHash, + isOffer: false, + refinancingLoanId: this.refinancingLoanId, + nonceSpace: this.nonceSpace, + nonce: this.nonce, + loanContract: this.loanContract, + } + } + + chainId: SupportedChain; + collateralId: bigint; + token0Denominator: boolean; + creditAddress: AddressString; + feedIntermediaryDenominations: AddressString[]; + feedInvertFlags: boolean[]; + loanToValue: bigint; + minCreditAmount: bigint; + availableCreditLimit: bigint; + utilizedCreditId: Hex; + fixedInterestAmount: bigint; + accruingInterestAPR: number; + durationOrDate: number; + expiration: number; + acceptorController: AddressString; + acceptorControllerData: Hex; + proposer: AddressString; + proposerSpecHash: Hex; + isOffer: boolean; + refinancingLoanId: bigint; + nonceSpace: bigint; + nonce: bigint; + loanContract: AddressString; + + collateralAddress: AddressString; + checkCollateralStateFingerprint: boolean; + collateralStateFingerprint: Hex; + allowedAcceptor: AddressString; + sourceOfFunds: AddressString | null; + relatedStrategyId?: string | undefined; +} diff --git a/packages/v1-core/src/models/proposals/uniswap-v3-lp-set-proposal.ts b/packages/v1-core/src/models/proposals/uniswap-v3-lp-set-proposal.ts new file mode 100644 index 00000000..76b6af47 --- /dev/null +++ b/packages/v1-core/src/models/proposals/uniswap-v3-lp-set-proposal.ts @@ -0,0 +1,132 @@ +import { AddressString, EMPTY_32_BYTES, Hex, MultiTokenCategory, SupportedChain, V1_4_CHAIN_TO_ADDRESSES_MAP } from "@pwndao/sdk-core"; +import { ProposalType, type IUniswapV3LpSetProposalBase } from "./proposal-base.js"; +import { V1_4SimpleLoanUniswapV3LpSetProposalStruct } from "src/structs.js"; + +export class UniswapV3LpSetProposal implements IUniswapV3LpSetProposalBase { + type = ProposalType.UniswapV3LpSet as const; + proposalContract = V1_4_CHAIN_TO_ADDRESSES_MAP[SupportedChain.Sepolia].pwnSimpleLoanUniswapV3LpSetProposal; // TODO: later change to CHAIN_TO_ADDRESSES_MAP and dynamic chain id + + static ERC712_TYPES = { + Proposal: [ + { name: "tokenAAllowlist", type: "address[]" }, + { name: "tokenBAllowlist", type: "address[]" }, + { name: "creditAddress", type: "address" }, + { name: "feedIntermediaryDenominations", type: "address[]" }, + { name: "feedInvertFlags", type: "bool[]" }, + { name: "loanToValue", type: "uint256" }, + { name: "minCreditAmount", type: "uint256" }, + { name: "availableCreditLimit", type: "uint256" }, + { name: "utilizedCreditId", type: "bytes32" }, + { name: "fixedInterestAmount", type: "uint256" }, + { name: "accruingInterestAPR", type: "uint24" }, + { name: "durationOrDate", type: "uint32" }, + { name: "expiration", type: "uint40" }, + { name: "acceptorController", type: "address" }, + { name: "acceptorControllerData", type: "bytes" }, + { name: "proposer", type: "address" }, + { name: "proposerSpecHash", type: "bytes32" }, + { name: "isOffer", type: "bool" }, + { name: "refinancingLoanId", type: "uint256" }, + { name: "nonceSpace", type: "uint256" }, + { name: "nonce", type: "uint256" }, + { name: "loanContract", type: "address" }, + ], + }; + + constructor( + proposal: Omit, + chainId: SupportedChain, + ) { + this.chainId = chainId; + this.collateralId = proposal.collateralId; + this.collateralAddress = proposal.collateralAddress; + this.checkCollateralStateFingerprint = proposal.checkCollateralStateFingerprint; + this.collateralStateFingerprint = proposal.collateralStateFingerprint; + this.collateralCategory = proposal.collateralCategory; + this.relatedStrategyId = proposal.relatedStrategyId; + this.sourceOfFunds = proposal.sourceOfFunds; + this.allowedAcceptor = proposal.allowedAcceptor; + this.tokenAAllowlist = proposal.tokenAAllowlist; + this.tokenBAllowlist = proposal.tokenBAllowlist; + this.creditAddress = proposal.creditAddress; + this.feedIntermediaryDenominations = proposal.feedIntermediaryDenominations; + this.feedInvertFlags = proposal.feedInvertFlags; + this.loanToValue = proposal.loanToValue; + this.minCreditAmount = proposal.minCreditAmount; + this.availableCreditLimit = proposal.availableCreditLimit; + this.utilizedCreditId = proposal.utilizedCreditId; + this.fixedInterestAmount = proposal.fixedInterestAmount; + this.accruingInterestAPR = proposal.accruingInterestAPR; + this.durationOrDate = proposal.durationOrDate; + this.expiration = proposal.expiration; + this.acceptorController = proposal.acceptorController; + this.acceptorControllerData = proposal.acceptorControllerData; + this.proposer = proposal.proposer; + this.proposerSpecHash = proposal.proposerSpecHash; + this.isOffer = proposal.isOffer; + this.refinancingLoanId = proposal.refinancingLoanId; + this.nonceSpace = proposal.nonceSpace; + this.nonce = proposal.nonce; + this.loanContract = proposal.loanContract; + } + + createProposalStruct(): V1_4SimpleLoanUniswapV3LpSetProposalStruct { + return { + tokenAAllowlist: this.tokenAAllowlist, + tokenBAllowlist: this.tokenBAllowlist, + creditAddress: this.creditAddress, + feedIntermediaryDenominations: this.feedIntermediaryDenominations, + feedInvertFlags: this.feedInvertFlags, + loanToValue: this.loanToValue, + minCreditAmount: this.minCreditAmount, + availableCreditLimit: this.availableCreditLimit, + utilizedCreditId: this.utilizedCreditId, + fixedInterestAmount: this.fixedInterestAmount, + accruingInterestAPR: Number(this.accruingInterestAPR), + durationOrDate: Number(this.durationOrDate), + expiration: this.expiration, + acceptorController: this.acceptorController ?? EMPTY_32_BYTES, + acceptorControllerData: this.acceptorControllerData ?? EMPTY_32_BYTES, + proposer: this.proposer, + proposerSpecHash: this.proposerSpecHash, + isOffer: true, + refinancingLoanId: 0n, + nonceSpace: this.nonceSpace, + nonce: this.nonce, + loanContract: this.loanContract + } + } + + collateralId: bigint; + collateralAddress: AddressString; + checkCollateralStateFingerprint: boolean; + collateralStateFingerprint: Hex; + collateralCategory: MultiTokenCategory; + sourceOfFunds: AddressString | null; + allowedAcceptor: AddressString; + chainId: SupportedChain; + relatedStrategyId?: string | undefined; + + tokenAAllowlist: AddressString[]; + tokenBAllowlist: AddressString[]; + creditAddress: AddressString; + feedIntermediaryDenominations: AddressString[]; + feedInvertFlags: boolean[]; + loanToValue: bigint; + minCreditAmount: bigint; + availableCreditLimit: bigint; + utilizedCreditId: Hex; + fixedInterestAmount: bigint; + accruingInterestAPR: number; + durationOrDate: number; + expiration: number; + acceptorController: AddressString | null; + acceptorControllerData: Hex | null; + proposer: AddressString; + proposerSpecHash: Hex; + isOffer: true; + refinancingLoanId: bigint; + nonceSpace: bigint; + nonce: bigint; + loanContract: AddressString; +} \ No newline at end of file diff --git a/packages/v1-core/src/models/strategies/types.ts b/packages/v1-core/src/models/strategies/types.ts index 60df271f..d8db4994 100644 --- a/packages/v1-core/src/models/strategies/types.ts +++ b/packages/v1-core/src/models/strategies/types.ts @@ -9,12 +9,15 @@ import type { import type { CreateElasticProposalParams } from "../../factories/create-elastic-proposal.js"; import type { ChainLinkProposal } from "../proposals/chainlink-proposal.js"; import type { ElasticProposal } from "../proposals/elastic-proposal.js"; +import type { UniswapV3LpSetProposal } from "../proposals/uniswap-v3-lp-set-proposal.js"; import type { IElasticProposalBase, IOracleProposalBase, + IUniswapV3IndividualProposalBase, + IUniswapV3LpSetProposalBase, } from "../proposals/proposal-base.js"; import type { ProposalType } from "../proposals/proposal-base.js"; - +import type { UniswapV3IndividualProposal } from "../proposals/uniswap-v3-lp-individual-proposal.js" export interface StrategyTerm { creditAssets: ERC20TokenLike[]; collateralAssets: Token[]; @@ -22,6 +25,10 @@ export interface StrategyTerm { ltv: Record; durationDays: number; expirationDays: number; + + // V1.4 + acceptorController?: string; + acceptorControllerData?: string; /** * The minimum credit amount percentage for a proposal to be created * With 1e4 precision @@ -32,7 +39,7 @@ export interface StrategyTerm { } export interface IProposalStrategy< - T extends IElasticProposalBase | IOracleProposalBase, + T extends IElasticProposalBase | IOracleProposalBase | IUniswapV3LpSetProposalBase | IUniswapV3IndividualProposalBase, > { term: StrategyTerm; getProposalsParams( @@ -78,7 +85,7 @@ export type Strategy = { }; }; -export type Proposal = ElasticProposal | ChainLinkProposal; +export type Proposal = ElasticProposal | ChainLinkProposal | UniswapV3LpSetProposal | UniswapV3IndividualProposal; export type ProposalWithHash = Proposal & { hash: Hex; diff --git a/packages/v1-core/src/structs.ts b/packages/v1-core/src/structs.ts index b76b277a..b4e2be95 100644 --- a/packages/v1-core/src/structs.ts +++ b/packages/v1-core/src/structs.ts @@ -6,6 +6,8 @@ import type { pwnSimpleLoanElasticProposalAbi, pwnSimpleLoanListProposalAbi, pwnSimpleLoanSimpleProposalAbi, + pwnSimpleLoanUniswapV3LpSetProposalAbi, + pwnSimpleLoanUniswapV3LpIndividualProposalAbi, } from "./generated.js"; // V1.3 @@ -50,3 +52,19 @@ export type V1_3SimpleLoanElasticChainlinkProposalStruct = AbiParameterToPrimitiveType< _V1_3SimpleLoanElasticChainlinkProposalEncodeFn["inputs"][0] >; + +type _V1_4SimpleLoanUniswapV3LpSetProposalEncodeFn = ExtractAbiFunction< + typeof pwnSimpleLoanUniswapV3LpSetProposalAbi, + "encodeProposalData" +>; +export type V1_4SimpleLoanUniswapV3LpSetProposalStruct = AbiParameterToPrimitiveType< + _V1_4SimpleLoanUniswapV3LpSetProposalEncodeFn["inputs"][0] +>; + +type _V1_4SimpleLoanUniswapV3IndividualProposalEncodeFn = ExtractAbiFunction< + typeof pwnSimpleLoanUniswapV3LpIndividualProposalAbi, + "encodeProposalData" +>; +export type V1_4SimpleLoanUniswapV3IndividualProposalStruct = AbiParameterToPrimitiveType< + _V1_4SimpleLoanUniswapV3IndividualProposalEncodeFn["inputs"][0] +>; \ No newline at end of file diff --git a/packages/v1-core/src/utils/utils.ts b/packages/v1-core/src/utils/utils.ts index 2615fcb3..9a534eb9 100644 --- a/packages/v1-core/src/utils/utils.ts +++ b/packages/v1-core/src/utils/utils.ts @@ -9,8 +9,12 @@ import type { ElasticProposal } from "../models/proposals/elastic-proposal.js"; import type { IElasticProposalBase, IOracleProposalBase, + IUniswapV3IndividualProposalBase, + IUniswapV3LpSetProposalBase, } from "../models/proposals/proposal-base.js"; import type { ProposalWithSignature } from "../models/strategies/types.js"; +import type { UniswapV3LpSetProposal } from "../models/proposals/uniswap-v3-lp-set-proposal.js"; +import type { UniswapV3IndividualProposal } from "../models/proposals/uniswap-v3-lp-individual-proposal.js"; /** * Converts common proposal fields to backend format @@ -108,13 +112,62 @@ export const encodeChainLinkProposalForBackend = ( } as V13CreateSimpleLoanChainlinkProposalRequestSchemaRequest; }; +/** + * Encodes a UniswapV3LpSetProposal for the backend + * @param proposal UniswapV3LpSetProposal instance + * @returns Backend-formatted uniswap v3 lp set proposal data + */ +export const encodeUniswapV3LpSetProposalForBackend = ( + proposal: UniswapV3LpSetProposal, +): CreateProposalRequestSchemaRequest => { + const baseData = getBaseBackendProposalData( + proposal as ProposalWithSignature, + ); + + return { + ...baseData, + token_a_allowlist: proposal.tokenAAllowlist, + token_b_allowlist: proposal.tokenBAllowlist, + acceptor_controller: proposal.acceptorController, + acceptor_controller_data: proposal.acceptorControllerData, + is_offer: true, + // biome-ignore lint/suspicious/noExplicitAny: Dont have type yet + } as any; // TODO: add types from backend +}; + +/** + * Encodes a UniswapV3LpIndividualProposal for the backend + * @param proposal UniswapV3LpIndividualProposal instance + * @returns Backend-formatted uniswap v3 lp individual proposal data + */ +export const encodeUniswapV3LpIndividualProposalForBackend = ( + proposal: UniswapV3IndividualProposal, +): CreateProposalRequestSchemaRequest => { + const baseData = getBaseBackendProposalData( + proposal as ProposalWithSignature, + ); + + return { + ...baseData, + token_0_denominator: proposal.token0Denominator, + feed_intermediary_denominations: proposal.feedIntermediaryDenominations, + feed_invert_flags: proposal.feedInvertFlags, + loan_to_value: Number(proposal.loanToValue.toString()), + is_offer: false, + collateral_id: String(proposal.collateralId), + acceptor_controller: proposal.acceptorController, + acceptor_controller_data: proposal.acceptorControllerData, + // biome-ignore lint/suspicious/noExplicitAny: Dont have type yet + } as any; // TODO: add types from backend +}; + /** * Detects the proposal type and encodes it accordingly for the backend * @param proposal Any proposal instance * @returns Backend-formatted proposal data */ export const encodeProposalForBackend = ( - proposal: IElasticProposalBase | IOracleProposalBase, + proposal: IElasticProposalBase | IOracleProposalBase | IUniswapV3LpSetProposalBase | IUniswapV3IndividualProposalBase, ): CreateProposalRequestSchemaRequest => { // Detect the proposal type if ( @@ -128,6 +181,14 @@ export const encodeProposalForBackend = ( return encodeElasticProposalForBackend(proposal as ElasticProposal); } + if ("tokenAAllowlist" in proposal && "tokenBAllowlist" in proposal) { + return encodeUniswapV3LpSetProposalForBackend(proposal as UniswapV3LpSetProposal); + } + + if ("token0Denominator" in proposal && "collateralId" in proposal) { + return encodeUniswapV3LpIndividualProposalForBackend(proposal as UniswapV3IndividualProposal); + } + // If no specific type is detected, use the base encoder return getBaseBackendProposalData( proposal as unknown as ProposalWithSignature, diff --git a/packages/v1-core/wagmi.config.ts b/packages/v1-core/wagmi.config.ts index 69da884f..688ee473 100644 --- a/packages/v1-core/wagmi.config.ts +++ b/packages/v1-core/wagmi.config.ts @@ -2,13 +2,13 @@ import { defineConfig } from "@wagmi/cli"; import { foundry } from "@wagmi/cli/plugins"; import { actions } from "@wagmi/cli/plugins"; // eslint-disable-next-line @nx/enforce-module-boundaries -import deployments from "../../contracts/solidity/deployments/latest.json"; +import deployments from "../../contracts/solidity/deployments/protocol/v1.4.json"; export default defineConfig({ out: "src/generated.ts", plugins: [ foundry({ - deployments: deployments.chains, + deployments: deployments, project: "../../contracts/solidity", }), actions(),