@settlemint/solidity-diamond-bond
Version:
Smart contract set to build an enterprise bond usecase in SettleMint
170 lines (164 loc) • 14.4 kB
TypeScript
// 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": "0x608080604052346015576109ae908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146100745780634b503f0b1461006f57806352ef6b2c1461006a5780637a0ed62714610065578063adfca15e146100605763cdffacc61461005b575f80fd5b6106c1565b610603565b6103e6565b610227565b610135565b346100cb57602060ff6100bf610089366100cf565b63ffffffff60e01b165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e60205260405f2090565b54166040519015158152f35b5f80fd5b60209060031901126100cb576004356001600160e01b0319811681036100cb5790565b60206040818301928281528451809452019201905f5b8181106101155750505090565b82516001600160e01b031916845260209384019390920191600101610108565b346100cb575f3660031901126100cb5761014f60c0610730565b600581526020810160a03682378151156101e057637a0ed62760e01b90528051600110156101e0576366ffd66360e11b60408201526101dc906101a0610194826107b4565b6356fe50af60e11b9052565b6101b86101ac826107c4565b6314bbdacb60e21b9052565b6101d06101c4826107d4565b6301ffc9a760e01b9052565b604051918291826100f2565b0390f35b6107a0565b60206040818301928281528451809452019201905f5b8181106102085750505090565b82516001600160a01b03168452602093840193909201916001016101fb565b346100cb575f3660031901126100cb575f5160206109595f395f51905f525461024f81610773565b5f5f925b80841061026b57818352604051806101dc85826101e5565b9061029d61029061028b61027e87610805565b90549060031b1c60e01b90565b6106e6565b546001600160a01b031690565b5f6001600160a01b038216815b8481106102f4575b50506102ea57816102db6102e0926102cc600195886107f1565b6001600160a01b039091169052565b610871565b935b019290610253565b50926001906102e2565b61031d610311610304838a6107f1565b516001600160a01b031690565b6001600160a01b031690565b821461032b576001016102aa565b50505060015f806102b2565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061036957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106103c3575050506020806001929701930193019193929061035a565b82516001600160e01b0319168452602093840193909201916001909101906103a4565b346100cb575f3660031901126100cb575f5160206109595f395f51905f525461040e81610884565b61041782610773565b915f905f905b8082106104765750505f5b81811061044057818352604051806101dc8582610337565b8061046061045a610453600194886107f1565b5160ff1690565b60ff1690565b602061046c83876107f1565b5101515201610428565b909161048461027e84610805565b610490610290826106e6565b5f806001600160a01b0383165b858210610539575b505061052e5791610512610525926104d36001956104c3858b6107f1565b516001600160a01b039091169052565b6104dc86610773565b60206104e8858b6107f1565b51015261050260206104fa858b6107f1565b5101516107e4565b6001600160e01b03199091169052565b6102db61051f82896107f1565b60019052565b925b019061041d565b505091600190610527565b80610563610311610555858d989c9d9e97969e9b999a9b6107f1565b51516001600160a01b031690565b1461057e576001809a0191929950979692979594939561049d565b505096806105d360ff806105cc610453858e6105c78a9f9e9a9c610502819d9f9e6105ae6105fa9d6020926107f1565b5101516105c161045a61045388886107f1565b906107f1565b6107f1565b16106108e8565b6105f26105eb6105e6610453848d6107f1565b610947565b918a6107f1565b9060ff169052565b60015f806104a5565b346100cb5760203660031901126100cb576004356001600160a01b038116908190036100cb575f5160206109595f395f51905f52545f61064282610773565b915f5b81811061065d57828452604051806101dc86826100f2565b61066681610805565b905460039190911b1c60e01b6001600160a01b03610683826106e6565b54168614610695575b50600101610645565b836106ba916106a760019496886107f1565b6001600160e01b03199091169052610871565b929061068c565b346100cb5760206001600160a01b036106dc61028b366100cf565b5416604051908152f35b63ffffffff60e01b165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205260405f2090565b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761075657604052565b61071c565b67ffffffffffffffff81116107565760051b60200190565b906107856107808361075b565b610730565b8281528092610796601f199161075b565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051600210156101e05760600190565b8051600310156101e05760800190565b8051600410156101e05760a00190565b8051156101e05760200190565b80518210156101e05760209160051b010190565b905f5160206109595f395f51905f52548210156101e0575f5160206109595f395f51905f525f52600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b634e487b7160e01b5f52601160045260245ffd5b5f19811461087f5760010190565b61085d565b906108916107808361075b565b82815280926108a2601f199161075b565b015f5b8181106108b157505050565b60405190604082019180831067ffffffffffffffff841117610756576020926040525f8152606083820152828286010152016108a5565b156108ef57565b60405162461bcd60e51b815260206004820152602a60248201527f616d6f756e74206f662066756e6374696f6e2068617320746f206265206c657360448201526973207468616e2032353560b01b6064820152608490fd5b60ff1660ff811461087f576001019056fec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131da2646970667358221220cf55e6353b0bf0dad6ce6c9795c54ea3f49fd850739840c966c4c3c42c4905ff64736f6c634300081e0033",
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146100745780634b503f0b1461006f57806352ef6b2c1461006a5780637a0ed62714610065578063adfca15e146100605763cdffacc61461005b575f80fd5b6106c1565b610603565b6103e6565b610227565b610135565b346100cb57602060ff6100bf610089366100cf565b63ffffffff60e01b165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e60205260405f2090565b54166040519015158152f35b5f80fd5b60209060031901126100cb576004356001600160e01b0319811681036100cb5790565b60206040818301928281528451809452019201905f5b8181106101155750505090565b82516001600160e01b031916845260209384019390920191600101610108565b346100cb575f3660031901126100cb5761014f60c0610730565b600581526020810160a03682378151156101e057637a0ed62760e01b90528051600110156101e0576366ffd66360e11b60408201526101dc906101a0610194826107b4565b6356fe50af60e11b9052565b6101b86101ac826107c4565b6314bbdacb60e21b9052565b6101d06101c4826107d4565b6301ffc9a760e01b9052565b604051918291826100f2565b0390f35b6107a0565b60206040818301928281528451809452019201905f5b8181106102085750505090565b82516001600160a01b03168452602093840193909201916001016101fb565b346100cb575f3660031901126100cb575f5160206109595f395f51905f525461024f81610773565b5f5f925b80841061026b57818352604051806101dc85826101e5565b9061029d61029061028b61027e87610805565b90549060031b1c60e01b90565b6106e6565b546001600160a01b031690565b5f6001600160a01b038216815b8481106102f4575b50506102ea57816102db6102e0926102cc600195886107f1565b6001600160a01b039091169052565b610871565b935b019290610253565b50926001906102e2565b61031d610311610304838a6107f1565b516001600160a01b031690565b6001600160a01b031690565b821461032b576001016102aa565b50505060015f806102b2565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061036957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106103c3575050506020806001929701930193019193929061035a565b82516001600160e01b0319168452602093840193909201916001909101906103a4565b346100cb575f3660031901126100cb575f5160206109595f395f51905f525461040e81610884565b61041782610773565b915f905f905b8082106104765750505f5b81811061044057818352604051806101dc8582610337565b8061046061045a610453600194886107f1565b5160ff1690565b60ff1690565b602061046c83876107f1565b5101515201610428565b909161048461027e84610805565b610490610290826106e6565b5f806001600160a01b0383165b858210610539575b505061052e5791610512610525926104d36001956104c3858b6107f1565b516001600160a01b039091169052565b6104dc86610773565b60206104e8858b6107f1565b51015261050260206104fa858b6107f1565b5101516107e4565b6001600160e01b03199091169052565b6102db61051f82896107f1565b60019052565b925b019061041d565b505091600190610527565b80610563610311610555858d989c9d9e97969e9b999a9b6107f1565b51516001600160a01b031690565b1461057e576001809a0191929950979692979594939561049d565b505096806105d360ff806105cc610453858e6105c78a9f9e9a9c610502819d9f9e6105ae6105fa9d6020926107f1565b5101516105c161045a61045388886107f1565b906107f1565b6107f1565b16106108e8565b6105f26105eb6105e6610453848d6107f1565b610947565b918a6107f1565b9060ff169052565b60015f806104a5565b346100cb5760203660031901126100cb576004356001600160a01b038116908190036100cb575f5160206109595f395f51905f52545f61064282610773565b915f5b81811061065d57828452604051806101dc86826100f2565b61066681610805565b905460039190911b1c60e01b6001600160a01b03610683826106e6565b54168614610695575b50600101610645565b836106ba916106a760019496886107f1565b6001600160e01b03199091169052610871565b929061068c565b346100cb5760206001600160a01b036106dc61028b366100cf565b5416604051908152f35b63ffffffff60e01b165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205260405f2090565b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761075657604052565b61071c565b67ffffffffffffffff81116107565760051b60200190565b906107856107808361075b565b610730565b8281528092610796601f199161075b565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051600210156101e05760600190565b8051600310156101e05760800190565b8051600410156101e05760a00190565b8051156101e05760200190565b80518210156101e05760209160051b010190565b905f5160206109595f395f51905f52548210156101e0575f5160206109595f395f51905f525f52600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b634e487b7160e01b5f52601160045260245ffd5b5f19811461087f5760010190565b61085d565b906108916107808361075b565b82815280926108a2601f199161075b565b015f5b8181106108b157505050565b60405190604082019180831067ffffffffffffffff841117610756576020926040525f8152606083820152828286010152016108a5565b156108ef57565b60405162461bcd60e51b815260206004820152602a60248201527f616d6f756e74206f662066756e6374696f6e2068617320746f206265206c657360448201526973207468616e2032353560b01b6064820152608490fd5b60ff1660ff811461087f576001019056fec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131da2646970667358221220cf55e6353b0bf0dad6ce6c9795c54ea3f49fd850739840c966c4c3c42c4905ff64736f6c634300081e0033",
"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"]>>;
}