UNPKG

@settlemint/solidity-diamond-bond

Version:

Smart contract set to build an enterprise bond usecase in SettleMint

1 lines 35.2 kB
{"abi":[{"type":"function","name":"contractOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enforceIsContractOwner","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"setContractOwner","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60808060405234601557610d0c908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80631f931c1c14610173578063a34d42b8146100eb578063ce606ee0146100a45763d167091414610045575f80fd5b346100a0575f3660031901126100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546001600160a01b03163381900361008a57005b63ff4127cb60e01b5f523360045260245260445ffd5b5f80fd5b346100a0575f3660031901126100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546040516001600160a01b039091168152602090f35b346100a05760203660031901126100a0576004356001600160a01b038116908190036100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346100a05760603660031901126100a05760043567ffffffffffffffff81116100a057366023820112156100a05780600401356101b76101b282610a60565b610a3a565b9160208383815201906024829360051b820101903682116100a05760248101925b82841061092457856024356001600160a01b0381169087908281036100a0576044359067ffffffffffffffff82116100a057366023830112156100a05781600401356102266101b282610a78565b9281845236602483830101116100a05785845f6020858b9660248b970183860137830101525f935b80518510156108165760406102638683610a94565b510151926001600160a01b036102798784610a94565b515116948451156108035760206102908885610a94565b51015160038110156107ef57806104995750851561047a5761ffff5f516020610cb75f395f51905f525416936103066102c96060610a3a565b602481527f4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20602082015263636f646560e01b604082015288610c57565b5f945b8651861015610463576001600160e01b03196103258789610a94565b51165f8181525f516020610c975f395f51905f5260205260409020546001600160a01b0316610451576103b7610359610a1a565b8a815261ffff9390931660208085018281525f8581525f516020610c975f395f51905f5290925260409091209451855491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909355565b5f516020610cb75f395f51905f5254906801000000000000000082101561043d576103f782600161041494015f516020610cb75f395f51905f5255610ae0565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff81146104295760019586019501610309565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b63ebbf5d0760e01b5f5260045260245ffd5b5094509450946001919692505b019391909461024e565b6040516302b8da0760e21b8152806104958760048301610b38565b0390fd5b959795600181036105f1575087156105d6579294926104fc6104bb6060610a3a565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015289610c57565b6001600160a01b038816955f5b86518110156105c6576001600160e01b03196105258289610a94565b51165f8181525f516020610c975f395f51905f5260205260409020546001600160a01b03163081146105b3578b81146105a0571561058e575f9081525f516020610c975f395f51905f526020526040902080546001600160a01b03191689179055600101610509565b637479f93960e01b5f5260045260245ffd5b50631ac6ce8d60e11b5f5260045260245ffd5b50632901806d60e11b5f5260045260245ffd5b5094509450946001919650610470565b60405163cd98a96f60e01b8152806104958760048301610b38565b94959492939192909190600281036107d957505f516020610cb75f395f51905f525497806107c757505f5b86518110156107b7576001600160e01b03196106388289610a94565b511690815f525f516020610c975f395f51905f5260205260405f209961065c610a1a565b9a549a60018060a01b038c1680825261ffff602083019d60a01c168d52156107a457516001600160a01b03163014610791578015610429575f1901998a61ffff8251160361071d575b505f516020610cb75f395f51905f5254918215610709576001925f19016106cb81610ae0565b63ffffffff82549160031b1b191690555f516020610cb75f395f51905f52555f525f516020610c975f395f51905f526020525f60408120550161061c565b634e487b7160e01b5f52603160045260245ffd5b61078b9061ffff61072d8d610ae0565b90549060031b1c60e01b91610748836103f784845116610ae0565b516001600160e01b03199092165f9081525f516020610c975f395f51905f5260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8a6106a5565b82630df5fd6160e31b5f5260045260245ffd5b83637a08a22d60e01b5f5260045260245ffd5b5093929650935093600190610470565b63d091bc8160e01b5f5260045260245ffd5b60ff90633ff4d20f60e11b5f521660045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b8563e767f91f60e01b5f5260045260245ffd5b8591926040519160608301906060845251809152608083019060808160051b85010196915f905b82821061088e5761088c88887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806108848f8c6020840152828103604084015286610abc565b0390a1610b7b565b005b858903607f19018152835180516001600160a01b03168a5260208101519499939492939192606083019160038210156107ef57604060809160209384870152015193606060408201528451809452019201905f905b808210610901575050506020806001929a019201920190929161083d565b82516001600160e01b0319168452602093840193909201916001909101906108e3565b833567ffffffffffffffff81116100a0578201606060231982360301126100a057604051906060820182811067ffffffffffffffff82111761043d5760405260248101356001600160a01b03811681036100a0578252604481013560038110156100a0576020830152606481013567ffffffffffffffff81116100a057602491010136601f820112156100a05780356109bf6101b282610a60565b9160208084848152019260051b820101903682116100a057602001915b8183106109f95750505060408201528152602093840193016101d8565b82356001600160e01b0319811681036100a0578152602092830192016109dc565b604051906040820182811067ffffffffffffffff82111761043d57604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761043d57604052565b67ffffffffffffffff811161043d5760051b60200190565b67ffffffffffffffff811161043d57601f01601f191660200190565b8051821015610aa85760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b905f516020610cb75f395f51905f5254821015610aa8575f516020610cb75f395f51905f525f52600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b60206040818301928281528451809452019201905f5b818110610b5b5750505090565b82516001600160e01b031916845260209384019390920191600101610b4e565b6001600160a01b03811691908215610c52575f8091610bde610b9d6060610a3a565b602881527f4c69624469616d6f6e644375743a205f696e6974206164647265737320686173602082015267206e6f20636f646560c01b604082015282610c57565b83519060208501905af4913d15610c4a573d92610bfd6101b285610a78565b9384523d5f602086013e5b15610c1257505050565b825115610c2157825160208401fd5b61049560405192839263192105d760e01b84526004840152604060248401526044830190610abc565b606092610c08565b505050565b803b15610c62575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610495906044830190610abc56fec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131cc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131da264697066735822122075d7b997bde3fbcfa1c60bc78b948865b01d6833d10802b83d7c82eead5db6ee64736f6c634300081e0033","sourceMap":"143:580:1:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80631f931c1c14610173578063a34d42b8146100eb578063ce606ee0146100a45763d167091414610045575f80fd5b346100a0575f3660031901126100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546001600160a01b03163381900361008a57005b63ff4127cb60e01b5f523360045260245260445ffd5b5f80fd5b346100a0575f3660031901126100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546040516001600160a01b039091168152602090f35b346100a05760203660031901126100a0576004356001600160a01b038116908190036100a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346100a05760603660031901126100a05760043567ffffffffffffffff81116100a057366023820112156100a05780600401356101b76101b282610a60565b610a3a565b9160208383815201906024829360051b820101903682116100a05760248101925b82841061092457856024356001600160a01b0381169087908281036100a0576044359067ffffffffffffffff82116100a057366023830112156100a05781600401356102266101b282610a78565b9281845236602483830101116100a05785845f6020858b9660248b970183860137830101525f935b80518510156108165760406102638683610a94565b510151926001600160a01b036102798784610a94565b515116948451156108035760206102908885610a94565b51015160038110156107ef57806104995750851561047a5761ffff5f516020610cb75f395f51905f525416936103066102c96060610a3a565b602481527f4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20602082015263636f646560e01b604082015288610c57565b5f945b8651861015610463576001600160e01b03196103258789610a94565b51165f8181525f516020610c975f395f51905f5260205260409020546001600160a01b0316610451576103b7610359610a1a565b8a815261ffff9390931660208085018281525f8581525f516020610c975f395f51905f5290925260409091209451855491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909355565b5f516020610cb75f395f51905f5254906801000000000000000082101561043d576103f782600161041494015f516020610cb75f395f51905f5255610ae0565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff81146104295760019586019501610309565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b63ebbf5d0760e01b5f5260045260245ffd5b5094509450946001919692505b019391909461024e565b6040516302b8da0760e21b8152806104958760048301610b38565b0390fd5b959795600181036105f1575087156105d6579294926104fc6104bb6060610a3a565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015289610c57565b6001600160a01b038816955f5b86518110156105c6576001600160e01b03196105258289610a94565b51165f8181525f516020610c975f395f51905f5260205260409020546001600160a01b03163081146105b3578b81146105a0571561058e575f9081525f516020610c975f395f51905f526020526040902080546001600160a01b03191689179055600101610509565b637479f93960e01b5f5260045260245ffd5b50631ac6ce8d60e11b5f5260045260245ffd5b50632901806d60e11b5f5260045260245ffd5b5094509450946001919650610470565b60405163cd98a96f60e01b8152806104958760048301610b38565b94959492939192909190600281036107d957505f516020610cb75f395f51905f525497806107c757505f5b86518110156107b7576001600160e01b03196106388289610a94565b511690815f525f516020610c975f395f51905f5260205260405f209961065c610a1a565b9a549a60018060a01b038c1680825261ffff602083019d60a01c168d52156107a457516001600160a01b03163014610791578015610429575f1901998a61ffff8251160361071d575b505f516020610cb75f395f51905f5254918215610709576001925f19016106cb81610ae0565b63ffffffff82549160031b1b191690555f516020610cb75f395f51905f52555f525f516020610c975f395f51905f526020525f60408120550161061c565b634e487b7160e01b5f52603160045260245ffd5b61078b9061ffff61072d8d610ae0565b90549060031b1c60e01b91610748836103f784845116610ae0565b516001600160e01b03199092165f9081525f516020610c975f395f51905f5260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8a6106a5565b82630df5fd6160e31b5f5260045260245ffd5b83637a08a22d60e01b5f5260045260245ffd5b5093929650935093600190610470565b63d091bc8160e01b5f5260045260245ffd5b60ff90633ff4d20f60e11b5f521660045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b8563e767f91f60e01b5f5260045260245ffd5b8591926040519160608301906060845251809152608083019060808160051b85010196915f905b82821061088e5761088c88887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806108848f8c6020840152828103604084015286610abc565b0390a1610b7b565b005b858903607f19018152835180516001600160a01b03168a5260208101519499939492939192606083019160038210156107ef57604060809160209384870152015193606060408201528451809452019201905f905b808210610901575050506020806001929a019201920190929161083d565b82516001600160e01b0319168452602093840193909201916001909101906108e3565b833567ffffffffffffffff81116100a0578201606060231982360301126100a057604051906060820182811067ffffffffffffffff82111761043d5760405260248101356001600160a01b03811681036100a0578252604481013560038110156100a0576020830152606481013567ffffffffffffffff81116100a057602491010136601f820112156100a05780356109bf6101b282610a60565b9160208084848152019260051b820101903682116100a057602001915b8183106109f95750505060408201528152602093840193016101d8565b82356001600160e01b0319811681036100a0578152602092830192016109dc565b604051906040820182811067ffffffffffffffff82111761043d57604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761043d57604052565b67ffffffffffffffff811161043d5760051b60200190565b67ffffffffffffffff811161043d57601f01601f191660200190565b8051821015610aa85760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b905f516020610cb75f395f51905f5254821015610aa8575f516020610cb75f395f51905f525f52600382901c7fc0d727610ea16241eff4447d08bb1b4595f7d2ec4515282437a13b7d0df4b922019160021b601c1690565b60206040818301928281528451809452019201905f5b818110610b5b5750505090565b82516001600160e01b031916845260209384019390920191600101610b4e565b6001600160a01b03811691908215610c52575f8091610bde610b9d6060610a3a565b602881527f4c69624469616d6f6e644375743a205f696e6974206164647265737320686173602082015267206e6f20636f646560c01b604082015282610c57565b83519060208501905af4913d15610c4a573d92610bfd6101b285610a78565b9384523d5f602086013e5b15610c1257505050565b825115610c2157825160208401fd5b61049560405192839263192105d760e01b84526004840152604060248401526044830190610abc565b606092610c08565b505050565b803b15610c62575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610495906044830190610abc56fec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131cc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131da264697066735822122075d7b997bde3fbcfa1c60bc78b948865b01d6833d10802b83d7c82eead5db6ee64736f6c634300081e0033","sourceMap":"143:580:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;143:580:1;;;;2946:30:17;143:580:1;-1:-1:-1;;;;;143:580:1;2932:10:17;:44;;;2928:142;;143:580:1;2928:142:17;2999:60;;;143:580:1;2999:60:17;2932:10;143:580:1;;;;;;2999:60:17;143:580:1;;;;;;;;;;-1:-1:-1;;143:580:1;;;;2827:30:17;143:580:1;;;-1:-1:-1;;;;;143:580:1;;;;;;;;;;;;;;-1:-1:-1;;143:580:1;;;;;;-1:-1:-1;;;;;143:580:1;;;;;;;;2600:16:17;143:580:1;;-1:-1:-1;;;;;;143:580:1;;;;;;;-1:-1:-1;;;;;143:580:1;2669:46:17;-1:-1:-1;;2669:46:17;143:580:1;;;;;;;-1:-1:-1;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3341:948:17;3399:12;143:580:1;;3366:31:17;;;;;143:580:1;3463:23:17;;;;:::i;:::-;;:41;;;-1:-1:-1;;;;;3541:23:17;;;;:::i;:::-;;143:580:1;;;;;3595:29:17;3591:122;;143:580:1;3762:23:17;;;;:::i;:::-;;:30;143:580:1;;;;;;;3810:37:17;;;4509:27;;;4505:116;;143:580:1;-1:-1:-1;;;;;;;;;;;143:580:1;;;4744:77:17;143:580:1;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;143:580:1;;;;4744:77:17;;:::i;:::-;143:580:1;4831:594:17;4902:15;143:580:1;;4859:41:17;;;;;-1:-1:-1;;;;;;4951:33:17;;;;:::i;:::-;143:580:1;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;-1:-1:-1;;;;;143:580:1;5095:128:17;;143:580:1;;;:::i;:::-;;;;;;;;;;5283:61:17;;;143:580:1;;;-1:-1:-1;143:580:1;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;;;;;;;-1:-1:-1;;;;;;143:580:1;;;-1:-1:-1;;;;;143:580:1;;;;;;;;;;-1:-1:-1;;;143:580:1;;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4836:21:17;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;5095:128:17;5155:53;;;143:580:1;5155:53:17;143:580:1;;;;5155:53:17;4859:41;;;;;;;143:580:1;4859:41:17;;;;3806:473;143:580:1;3346:18:17;;;;;;4505:116;143:580:1;;-1:-1:-1;;;4559:51:17;;143:580:1;4559:51:17;143:580:1;;4559:51:17;;;:::i;:::-;;;;3806:473;143:580:1;;;;3937:41:17;;143:580:1;;5599:27:17;;;5595:131;;143:580:1;;;5735:81:17;143:580:1;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;143:580:1;;;;5735:81:17;;:::i;:::-;-1:-1:-1;;;;;143:580:1;;;;5897:15:17;143:580:1;;5854:41:17;;;;;-1:-1:-1;;;;;;5946:33:17;;;;:::i;:::-;143:580:1;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;-1:-1:-1;;;;;143:580:1;6228:4:17;6201:32;;6197:118;;6332:32;;;6328:144;;6489:29;6485:123;;143:580:1;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;-1:-1:-1;;;;;;143:580:1;;;;;;;5831:21:17;;6485:123;6545:48;;;143:580:1;6545:48:17;143:580:1;;;;6545:48:17;6328:144;6391:66;;;;143:580:1;6391:66:17;143:580:1;;;;6391:66:17;6197:118;6260:40;;;;143:580:1;6260:40:17;143:580:1;;;;6260:40:17;5854:41;;;;;;;143:580:1;5854:41:17;;;3806:473;;5595:131;143:580:1;;-1:-1:-1;;;5649:66:17;;143:580:1;5649:66:17;143:580:1;;5649:66:17;;;:::i;3933:346::-;143:580:1;;;;;;;;;;4082:30:17;4072:40;;4082:30;;143:580:1;-1:-1:-1;;;;;;;;;;;143:580:1;6972:27:17;;6968:115;;7097:21;143:580:1;7163:15:17;143:580:1;;7120:41:17;;;;;-1:-1:-1;;;;;;7212:33:17;;;;:::i;:::-;143:580:1;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;7413:61:17;7409:153;;143:580:1;-1:-1:-1;;;;;143:580:1;7732:4:17;7673:64;7669:149;;143:580:1;;;;;;;;;;;;;7915:68:17;7911:411;;7163:15;143:580:1;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;;-1:-1:-1;;143:580:1;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;;7097:21:17;;143:580:1;;;;;;;;;;;;7911:411:17;8168:139;8025:27;143:580:1;8025:27:17;;;:::i;:::-;143:580:1;;;;;;;;;8070:80:17;143:580:1;8070:65:17;143:580:1;;;;8070:65:17;:::i;:80::-;143:580:1;-1:-1:-1;;;;;;143:580:1;;;;;;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;;-1:-1:-1;;;;143:580:1;;;;;;;-1:-1:-1;;;143:580:1;;;;;8168:139:17;7911:411;;;7669:149;7764:39;;;;143:580:1;7764:39:17;143:580:1;;;;7764:39:17;7409:153;7501:46;;;;143:580:1;7501:46:17;143:580:1;;;;7501:46:17;7120:41;;;;;;;;;143:580:1;7120:41:17;3806:473;;6968:115;7022:50;;;143:580:1;7022:50:17;143:580:1;;;;7022:50:17;4068:211;143:580:1;;4226:38:17;;;143:580:1;4226:38:17;143:580:1;;;;;4226:38:17;143:580:1;;;;;;;;;;;;3591:122:17;3651:47;;;;143:580:1;3651:47:17;143:580:1;;;;3651:47:17;3366:31;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4382:9:17;143:580:1;;4303:41:17;143:580:1;;;;;;;;;;;;;;;;;;:::i;:::-;4303:41:17;;;4382:9;:::i;:::-;143:580:1;;;;;-1:-1:-1;;143:580:1;;;;;;;-1:-1:-1;;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;143:580:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;143:580:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;143:580:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;143:580:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;143:580:1;;;;;;;;-1:-1:-1;;143:580:1;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;143:580:1;;;;;;-1:-1:-1;;;;;;;;;;;;143:580:1;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;143:580:1;;;;;;;;;;;;;;;;8477:734:17;-1:-1:-1;;;;;143:580:1;;;8477:734:17;8569:19;;8565:56;;8586:1;143:580:1;;8630:73:17;143:580:1;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;143:580:1;;;;8630:73:17;;:::i;:::-;8750:29;;;143:580:1;8750:29:17;;;;;;143:580:1;;;;;;;;;;:::i;:::-;;;;;8586:1:17;143:580:1;;;;;8793:8:17;8789:416;;8477:734;;;:::o;8789:416::-;143:580:1;;8821:16:17;:12;;8943:144;;143:580:1;8943:144:17;;;8817:378;143:580:1;;;9132:48:17;;;;;;;;;;;143:580:1;;;;;;;;;;;:::i;:::-;;;;;8565:56:17;8604:7;;;:::o;9217:320::-;9351:71;;9435:17;9431:100;;9217:320;;:::o;9431:100::-;143:580:1;;;-1:-1:-1;;;9475:45:17;;-1:-1:-1;;;;;143:580:1;;;9475:45:17;;;143:580:1;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"contractOwner()":"ce606ee0","diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c","enforceIsContractOwner()":"d1670914","setContractOwner(address)":"a34d42b8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"contractOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enforceIsContractOwner\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"setContractOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DiamondTestContract.sol\":\"DiamondTestContract\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@prb/math/=node_modules/@prb/math/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/DiamondTestContract.sol\":{\"keccak256\":\"0x458334615fdefe82776d9b6789cd34b53ea86025f89acb6ac73a9a199863ac45\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://bfa8b3c63875236b813dd7d045289c26f94d49de02a965259156a78de54d8a02\",\"dweb:/ipfs/QmPi9d3dBLzke1c1pUXYiyNegbsFyWX4YMs5eD8WJXyY3P\"]},\"contracts/interfaces/IDiamond.sol\":{\"keccak256\":\"0xe64a3e7835e76770dde0a4ebd76518adf3625bad068d7f1ebf67226c8b9f45bb\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://ae31e558bc047906d9405946934b997f2422e89f90a7c401d14e6bed3288a7b3\",\"dweb:/ipfs/QmRz2yxg5EU7bQfKjV5v2BoBioSg4b3jS3B2Q26HUinjNH\"]},\"contracts/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xd5ceb83ab242c9121c7aaea777284a3f9a197fcf233c2f87a05894d3849a34c8\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://fc6be88f47cd1f40e4c37b9bff8028836baf85c04862c810c92644030474da2a\",\"dweb:/ipfs/QmRnNhYSUH3REeBJRgkNuEDPnFF34Dosae5BJaP7ZCCDBT\"]},\"contracts/libraries/LibDiamond.sol\":{\"keccak256\":\"0x3b1fb5d1225ab0ccf5ebb7b46ff0cf7b1e66157ade88e9b5282c1774c6ebcb42\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://265d5b848f2f4216931cabd38544cedf47c00003867ac8d5088d475bde6fa5f3\",\"dweb:/ipfs/QmSZTbb6BnCWJSfm3YtkoEJGHyhWSi3nwia7PjwsussBmM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"uint8","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"},{"inputs":[],"stateMutability":"view","type":"function","name":"enforceIsContractOwner"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setContractOwner"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@prb/math/=node_modules/@prb/math/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/DiamondTestContract.sol":"DiamondTestContract"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/DiamondTestContract.sol":{"keccak256":"0x458334615fdefe82776d9b6789cd34b53ea86025f89acb6ac73a9a199863ac45","urls":["bzz-raw://bfa8b3c63875236b813dd7d045289c26f94d49de02a965259156a78de54d8a02","dweb:/ipfs/QmPi9d3dBLzke1c1pUXYiyNegbsFyWX4YMs5eD8WJXyY3P"],"license":"FSL-1.1-MIT"},"contracts/interfaces/IDiamond.sol":{"keccak256":"0xe64a3e7835e76770dde0a4ebd76518adf3625bad068d7f1ebf67226c8b9f45bb","urls":["bzz-raw://ae31e558bc047906d9405946934b997f2422e89f90a7c401d14e6bed3288a7b3","dweb:/ipfs/QmRz2yxg5EU7bQfKjV5v2BoBioSg4b3jS3B2Q26HUinjNH"],"license":"FSL-1.1-MIT"},"contracts/interfaces/IDiamondCut.sol":{"keccak256":"0xd5ceb83ab242c9121c7aaea777284a3f9a197fcf233c2f87a05894d3849a34c8","urls":["bzz-raw://fc6be88f47cd1f40e4c37b9bff8028836baf85c04862c810c92644030474da2a","dweb:/ipfs/QmRnNhYSUH3REeBJRgkNuEDPnFF34Dosae5BJaP7ZCCDBT"],"license":"FSL-1.1-MIT"},"contracts/libraries/LibDiamond.sol":{"keccak256":"0x3b1fb5d1225ab0ccf5ebb7b46ff0cf7b1e66157ade88e9b5282c1774c6ebcb42","urls":["bzz-raw://265d5b848f2f4216931cabd38544cedf47c00003867ac8d5088d475bde6fa5f3","dweb:/ipfs/QmSZTbb6BnCWJSfm3YtkoEJGHyhWSi3nwia7PjwsussBmM"],"license":"FSL-1.1-MIT"}},"version":1},"id":1}