UNPKG

@settlemint/solidity-diamond-bond

Version:

Smart contract set to build an enterprise bond usecase in SettleMint

170 lines (164 loc) 18.9 kB
// This file was autogenerated by hardhat-viem, do not edit it. // prettier-ignore // tslint:disable // eslint-disable import type { Address } from "viem"; import type { GetContractReturnType } from "@nomicfoundation/hardhat-viem/types"; import "@nomicfoundation/hardhat-viem/types"; export interface DiamondLoupeFacet$Type { "_format": "hh-sol-artifact-1", "contractName": "DiamondLoupeFacet", "sourceName": "contracts/facets/DiamondLoupeFacet.sol", "abi": [ { "inputs": [ { "internalType": "bytes4", "name": "_functionSelector", "type": "bytes4" } ], "name": "facetAddress", "outputs": [ { "internalType": "address", "name": "facetAddress_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facetAddresses", "outputs": [ { "internalType": "address[]", "name": "facetAddresses_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_facet", "type": "address" } ], "name": "facetFunctionSelectors", "outputs": [ { "internalType": "bytes4[]", "name": "_facetFunctionSelectors", "type": "bytes4[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facets", "outputs": [ { "components": [ { "internalType": "address", "name": "facetAddress", "type": "address" }, { "internalType": "bytes4[]", "name": "functionSelectors", "type": "bytes4[]" } ], "internalType": "struct IDiamondLoupe.Facet[]", "name": "facets_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSelectors", "outputs": [ { "internalType": "bytes4[]", "name": "", "type": "bytes4[]" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60808060405234601557610e0f908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100775780634b503f0b1461007257806352ef6b2c1461006d5780637a0ed62714610068578063adfca15e146100635763cdffacc61461005e57600080fd5b610a4e565b6108e3565b610607565b61033f565b6101a3565b346100e957602060ff6100dd61008c366100ee565b7fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e602052604060002090565b54166040519015158152f35b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126100e9576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036100e95790565b602060408183019282815284518094520192019060005b81811061016b5750505090565b82517fffffffff000000000000000000000000000000000000000000000000000000001684526020938401939092019160010161015e565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9576101dc60c0610aaf565b600581526020810160a03682378151156102ea577f7a0ed6270000000000000000000000000000000000000000000000000000000090528051600110156102ea577fcdffacc60000000000000000000000000000000000000000000000000000000060408201526102e69061027861025382610b89565b7fadfca15e000000000000000000000000000000000000000000000000000000009052565b6102a961028482610b99565b7f52ef6b2c000000000000000000000000000000000000000000000000000000009052565b6102da6102b582610ba9565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009052565b60405191829182610147565b0390f35b610b5a565b602060408183019282815284518094520192019060005b8181106103135750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101610306565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d5461039981610b10565b600080925b8084106103b657818352604051806102e685826102ef565b906104416104276103d66103c987610bda565b90549060031b1c60e01b90565b7fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b5473ffffffffffffffffffffffffffffffffffffffff1690565b600073ffffffffffffffffffffffffffffffffffffffff8216815b8481106104b2575b50506104a8578161049961049e9261047e60019588610bc6565b9073ffffffffffffffffffffffffffffffffffffffff169052565b610c88565b935b01929061039e565b50926001906104a0565b6104f56104dc6104c2838a610bc6565b5173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b82146105035760010161045c565b50505060013880610464565b602081016020825282518091526040820190602060408260051b8501019401916000905b82821061054257505050505090565b9091929395947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087820301825284516020606081604085019373ffffffffffffffffffffffffffffffffffffffff81511686520151936040838201528451809452019201906000905b8082106105cd5750505060208060019296019201920190929195939495610533565b9091926020806001927fffffffff0000000000000000000000000000000000000000000000000000000087511681520194019201906105ab565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d5461066181610cba565b61066a82610b10565b916000906000905b8082106106cc57505060005b81811061069657818352604051806102e6858261050f565b806106b66106b06106a960019488610bc6565b5160ff1690565b60ff1690565b60206106c28387610bc6565b510151520161067e565b90916106da6103c984610bda565b610732610427827fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b60008073ffffffffffffffffffffffffffffffffffffffff83165b85821061080c575b505061080157916107e56107f89261078f600195610773858b610bc6565b519073ffffffffffffffffffffffffffffffffffffffff169052565b61079886610b10565b60206107a4858b610bc6565b5101526107be60206107b6858b610bc6565b510151610bb9565b907fffffffff00000000000000000000000000000000000000000000000000000000169052565b6104996107f28289610bc6565b60019052565b925b0190610672565b5050916001906107fa565b806108436104dc610828858d989c9d9e97969e9b999a9b610bc6565b515173ffffffffffffffffffffffffffffffffffffffff1690565b1461085e576001809a0191929950979692979594939561074d565b505096806108b360ff806108ac6106a9858e6108a78a9f9e9a9c6107be819d9f9e61088e6108da9d602092610bc6565b5101516108a16106b06106a98888610bc6565b90610bc6565b610bc6565b1610610d3d565b6108d26108cb6108c66106a9848d610bc6565b610dc8565b918a610bc6565b9060ff169052565b60013880610755565b346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e95760043573ffffffffffffffffffffffffffffffffffffffff81168091036100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d54600061096082610b10565b9160005b81811061097c57828452604051806102e68682610147565b61098581610bda565b90549060031b1c60e01b73ffffffffffffffffffffffffffffffffffffffff6109f9827fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b54168614610a0b575b50600101610964565b83610a47917fffffffff00000000000000000000000000000000000000000000000000000000610a3e6001959789610bc6565b91169052610c88565b9290610a02565b346100e957602073ffffffffffffffffffffffffffffffffffffffff610a766103d6366100ee565b5416604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff821117610af357604052565b610a80565b67ffffffffffffffff8111610af35760051b60200190565b90610b22610b1d83610af8565b610aaf565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610b508294610af8565b0190602036910137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600210156102ea5760600190565b8051600310156102ea5760800190565b8051600410156102ea5760a00190565b8051156102ea5760200190565b80518210156102ea5760209160051b010190565b907fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d548210156102ea577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d600052600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cb55760010190565b610c59565b90610cc7610b1d83610af8565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610cf58294610af8565b0160005b818110610d0557505050565b60405190604082019180831067ffffffffffffffff841117610af3576020926040526000815260608382015282828601015201610cf9565b15610d4457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f616d6f756e74206f662066756e6374696f6e2068617320746f206265206c657360448201527f73207468616e20323535000000000000000000000000000000000000000000006064820152fd5b60ff1660ff8114610cb5576001019056fea2646970667358221220b89fe035314fab68337cab7e25e0f6de1391b776496aa4fddae8269373c005ad64736f6c634300081b0033", "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100775780634b503f0b1461007257806352ef6b2c1461006d5780637a0ed62714610068578063adfca15e146100635763cdffacc61461005e57600080fd5b610a4e565b6108e3565b610607565b61033f565b6101a3565b346100e957602060ff6100dd61008c366100ee565b7fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e602052604060002090565b54166040519015158152f35b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126100e9576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036100e95790565b602060408183019282815284518094520192019060005b81811061016b5750505090565b82517fffffffff000000000000000000000000000000000000000000000000000000001684526020938401939092019160010161015e565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9576101dc60c0610aaf565b600581526020810160a03682378151156102ea577f7a0ed6270000000000000000000000000000000000000000000000000000000090528051600110156102ea577fcdffacc60000000000000000000000000000000000000000000000000000000060408201526102e69061027861025382610b89565b7fadfca15e000000000000000000000000000000000000000000000000000000009052565b6102a961028482610b99565b7f52ef6b2c000000000000000000000000000000000000000000000000000000009052565b6102da6102b582610ba9565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009052565b60405191829182610147565b0390f35b610b5a565b602060408183019282815284518094520192019060005b8181106103135750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101610306565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d5461039981610b10565b600080925b8084106103b657818352604051806102e685826102ef565b906104416104276103d66103c987610bda565b90549060031b1c60e01b90565b7fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b5473ffffffffffffffffffffffffffffffffffffffff1690565b600073ffffffffffffffffffffffffffffffffffffffff8216815b8481106104b2575b50506104a8578161049961049e9261047e60019588610bc6565b9073ffffffffffffffffffffffffffffffffffffffff169052565b610c88565b935b01929061039e565b50926001906104a0565b6104f56104dc6104c2838a610bc6565b5173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b82146105035760010161045c565b50505060013880610464565b602081016020825282518091526040820190602060408260051b8501019401916000905b82821061054257505050505090565b9091929395947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087820301825284516020606081604085019373ffffffffffffffffffffffffffffffffffffffff81511686520151936040838201528451809452019201906000905b8082106105cd5750505060208060019296019201920190929195939495610533565b9091926020806001927fffffffff0000000000000000000000000000000000000000000000000000000087511681520194019201906105ab565b346100e95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d5461066181610cba565b61066a82610b10565b916000906000905b8082106106cc57505060005b81811061069657818352604051806102e6858261050f565b806106b66106b06106a960019488610bc6565b5160ff1690565b60ff1690565b60206106c28387610bc6565b510151520161067e565b90916106da6103c984610bda565b610732610427827fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b60008073ffffffffffffffffffffffffffffffffffffffff83165b85821061080c575b505061080157916107e56107f89261078f600195610773858b610bc6565b519073ffffffffffffffffffffffffffffffffffffffff169052565b61079886610b10565b60206107a4858b610bc6565b5101526107be60206107b6858b610bc6565b510151610bb9565b907fffffffff00000000000000000000000000000000000000000000000000000000169052565b6104996107f28289610bc6565b60019052565b925b0190610672565b5050916001906107fa565b806108436104dc610828858d989c9d9e97969e9b999a9b610bc6565b515173ffffffffffffffffffffffffffffffffffffffff1690565b1461085e576001809a0191929950979692979594939561074d565b505096806108b360ff806108ac6106a9858e6108a78a9f9e9a9c6107be819d9f9e61088e6108da9d602092610bc6565b5101516108a16106b06106a98888610bc6565b90610bc6565b610bc6565b1610610d3d565b6108d26108cb6108c66106a9848d610bc6565b610dc8565b918a610bc6565b9060ff169052565b60013880610755565b346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e95760043573ffffffffffffffffffffffffffffffffffffffff81168091036100e9577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d54600061096082610b10565b9160005b81811061097c57828452604051806102e68682610147565b61098581610bda565b90549060031b1c60e01b73ffffffffffffffffffffffffffffffffffffffff6109f9827fffffffff00000000000000000000000000000000000000000000000000000000166000527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604060002090565b54168614610a0b575b50600101610964565b83610a47917fffffffff00000000000000000000000000000000000000000000000000000000610a3e6001959789610bc6565b91169052610c88565b9290610a02565b346100e957602073ffffffffffffffffffffffffffffffffffffffff610a766103d6366100ee565b5416604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff821117610af357604052565b610a80565b67ffffffffffffffff8111610af35760051b60200190565b90610b22610b1d83610af8565b610aaf565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610b508294610af8565b0190602036910137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600210156102ea5760600190565b8051600310156102ea5760800190565b8051600410156102ea5760a00190565b8051156102ea5760200190565b80518210156102ea5760209160051b010190565b907fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d548210156102ea577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d600052600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cb55760010190565b610c59565b90610cc7610b1d83610af8565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610cf58294610af8565b0160005b818110610d0557505050565b60405190604082019180831067ffffffffffffffff841117610af3576020926040526000815260608382015282828601015201610cf9565b15610d4457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f616d6f756e74206f662066756e6374696f6e2068617320746f206265206c657360448201527f73207468616e20323535000000000000000000000000000000000000000000006064820152fd5b60ff1660ff8114610cb5576001019056fea2646970667358221220b89fe035314fab68337cab7e25e0f6de1391b776496aa4fddae8269373c005ad64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} } declare module "@nomicfoundation/hardhat-viem/types" { export function deployContract( contractName: "DiamondLoupeFacet", constructorArgs?: [], config?: DeployContractConfig ): Promise<GetContractReturnType<DiamondLoupeFacet$Type["abi"]>>; export function deployContract( contractName: "contracts/facets/DiamondLoupeFacet.sol:DiamondLoupeFacet", constructorArgs?: [], config?: DeployContractConfig ): Promise<GetContractReturnType<DiamondLoupeFacet$Type["abi"]>>; export function sendDeploymentTransaction( contractName: "DiamondLoupeFacet", constructorArgs?: [], config?: SendDeploymentTransactionConfig ): Promise<{ contract: GetContractReturnType<DiamondLoupeFacet$Type["abi"]>; deploymentTransaction: GetTransactionReturnType; }>; export function sendDeploymentTransaction( contractName: "contracts/facets/DiamondLoupeFacet.sol:DiamondLoupeFacet", constructorArgs?: [], config?: SendDeploymentTransactionConfig ): Promise<{ contract: GetContractReturnType<DiamondLoupeFacet$Type["abi"]>; deploymentTransaction: GetTransactionReturnType; }>; export function getContractAt( contractName: "DiamondLoupeFacet", address: Address, config?: GetContractAtConfig ): Promise<GetContractReturnType<DiamondLoupeFacet$Type["abi"]>>; export function getContractAt( contractName: "contracts/facets/DiamondLoupeFacet.sol:DiamondLoupeFacet", address: Address, config?: GetContractAtConfig ): Promise<GetContractReturnType<DiamondLoupeFacet$Type["abi"]>>; }