UNPKG

@settlemint/solidity-diamond-bond

Version:

Smart contract set to build an enterprise bond usecase in SettleMint

522 lines (521 loc) 23.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "GenericToken", "sourceName": "contracts/GenericToken.sol", "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523461041857610eed803803806100198161041c565b9283398101906040818303126104185780516001600160401b0381116104185782610045918301610441565b60208201519092906001600160401b038111610418576100659201610441565b81516001600160401b03811161032b57600354600181811c9116801561040e575b602082101461030d57601f81116103ab575b50602092601f821160011461034a57928192935f9261033f575b50508160011b915f199060031b1c1916176003555b80516001600160401b03811161032b57600454600181811c91168015610321575b602082101461030d57601f81116102aa575b50602091601f821160011461024a579181925f9261023f575b50508160011b915f199060031b1c1916176004555b331561022c5760058054610100600160a81b0319811633600881811b610100600160a81b03169290921790935560ff929082901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a31661021d5760025469d3c21bcecceda1000000810180911161020957600255335f525f60205260405f2069d3c21bcecceda1000000815401905560405169d3c21bcecceda100000081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610a5a90816104938239f35b634e487b7160e01b5f52601160045260245ffd5b63d93c066560e01b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b015190505f80610113565b601f1982169260045f52805f20915f5b8581106102925750836001951061027a575b505050811b01600455610128565b01515f1960f88460031b161c191690555f808061026c565b9192602060018192868501518155019401920161025a565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610303575b601f0160051c01905b8181106102f857506100fa565b5f81556001016102eb565b90915081906102e2565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e8565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b2565b601f1982169360035f52805f20915f5b868110610393575083600195961061037b575b505050811b016003556100c7565b01515f1960f88460031b161c191690555f808061036d565b9192602060018192868501518155019401920161035a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610404575b601f0160051c01905b8181106103f95750610098565b5f81556001016103ec565b90915081906103e3565b90607f1690610086565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761032b57604052565b81601f82011215610418578051906001600160401b03821161032b57610470601f8301601f191660200161041c565b928284526020838301011161041857815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146106d957508063095ea7b31461063157806318160ddd1461061457806323b872dd146105dc578063313ce567146105c15780633f4ba83a1461055b57806340c10f19146104a757806342966c681461048a5780635c975abb1461046857806370a0823114610431578063715018a6146103d257806379cc6790146103a05780638456cb59146103475780638da5cb5b1461031b57806395d89b4114610200578063a9059cbb146101cf578063dd62ed3e1461017f5763f2fde38b146100e2575f80fd5b3461017b57602036600319011261017b576100fb6107d2565b610103610953565b6001600160a01b0381169081156101685760058054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b3461017b57604036600319011261017b576101986107d2565b6101a06107e8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461017b57604036600319011261017b576101f56101eb6107d2565b60243590336108a1565b602060405160018152f35b3461017b575f36600319011261017b576040515f6004548060011c90600181168015610311575b6020831081146102fd578285529081156102e1575060011461028c575b50819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102cb57506020915082010182610244565b60018160209254838588010152019101906102b6565b90506020925060ff191682840152151560051b82010182610244565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610227565b3461017b575f36600319011261017b5760055460405160089190911c6001600160a01b03168152602090f35b3461017b575f36600319011261017b5761035f610953565b61036761097d565b600160ff1960055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017b57604036600319011261017b576103d06103bc6107d2565b602435906103cb8233836107fe565b610998565b005b3461017b575f36600319011261017b576103ea610953565b60058054610100600160a81b031981169091555f9060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017b57602036600319011261017b576001600160a01b036104526107d2565b165f525f602052602060405f2054604051908152f35b3461017b575f36600319011261017b57602060ff600554166040519015158152f35b3461017b57602036600319011261017b576103d060043533610998565b3461017b57604036600319011261017b576104c06107d2565b602435906104cc61097d565b6001600160a01b0316908115610548576104e461097d565b600254908082018092116105345760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b57610573610953565b60055460ff8116156105b25760ff19166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017b575f36600319011261017b57602060405160128152f35b3461017b57606036600319011261017b576101f56105f86107d2565b6106006107e8565b6044359161060f8333836107fe565b6108a1565b3461017b575f36600319011261017b576020600254604051908152f35b3461017b57604036600319011261017b5761064a6107d2565b6024359033156106c6576001600160a01b03169081156106b357335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b575f6003548060011c9060018116801561079e575b6020831081146102fd578285529081156102e157506001146107495750819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061078857506020915082010182610244565b6001816020925483858801015201910190610773565b91607f16916106fd565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017b57565b602435906001600160a01b038216820361017b57565b6001600160a01b039081165f818152600160209081526040808320948616835293905291909120549291905f198410610838575b50505050565b82841061087e5780156106c6576001600160a01b038216156106b3575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f808080610832565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610940576001600160a01b0316918215610548576108c961097d565b815f525f60205260405f205481811061092757817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b60055460081c6001600160a01b0316330361096a57565b63118cdaa760e01b5f523360045260245ffd5b60ff6005541661098957565b63d93c066560e01b5f5260045ffd5b9091906001600160a01b03168015610940576109b261097d565b805f525f60205260405f2054838110610a0a576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffdfea26469706673582212206c84eb2c8ca5381a7b44a7489c7b06c1fe95317c97786249105f3e1ee0c87a5d64736f6c634300081e0033", "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146106d957508063095ea7b31461063157806318160ddd1461061457806323b872dd146105dc578063313ce567146105c15780633f4ba83a1461055b57806340c10f19146104a757806342966c681461048a5780635c975abb1461046857806370a0823114610431578063715018a6146103d257806379cc6790146103a05780638456cb59146103475780638da5cb5b1461031b57806395d89b4114610200578063a9059cbb146101cf578063dd62ed3e1461017f5763f2fde38b146100e2575f80fd5b3461017b57602036600319011261017b576100fb6107d2565b610103610953565b6001600160a01b0381169081156101685760058054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b3461017b57604036600319011261017b576101986107d2565b6101a06107e8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461017b57604036600319011261017b576101f56101eb6107d2565b60243590336108a1565b602060405160018152f35b3461017b575f36600319011261017b576040515f6004548060011c90600181168015610311575b6020831081146102fd578285529081156102e1575060011461028c575b50819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102cb57506020915082010182610244565b60018160209254838588010152019101906102b6565b90506020925060ff191682840152151560051b82010182610244565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610227565b3461017b575f36600319011261017b5760055460405160089190911c6001600160a01b03168152602090f35b3461017b575f36600319011261017b5761035f610953565b61036761097d565b600160ff1960055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017b57604036600319011261017b576103d06103bc6107d2565b602435906103cb8233836107fe565b610998565b005b3461017b575f36600319011261017b576103ea610953565b60058054610100600160a81b031981169091555f9060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017b57602036600319011261017b576001600160a01b036104526107d2565b165f525f602052602060405f2054604051908152f35b3461017b575f36600319011261017b57602060ff600554166040519015158152f35b3461017b57602036600319011261017b576103d060043533610998565b3461017b57604036600319011261017b576104c06107d2565b602435906104cc61097d565b6001600160a01b0316908115610548576104e461097d565b600254908082018092116105345760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b57610573610953565b60055460ff8116156105b25760ff19166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017b575f36600319011261017b57602060405160128152f35b3461017b57606036600319011261017b576101f56105f86107d2565b6106006107e8565b6044359161060f8333836107fe565b6108a1565b3461017b575f36600319011261017b576020600254604051908152f35b3461017b57604036600319011261017b5761064a6107d2565b6024359033156106c6576001600160a01b03169081156106b357335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b575f6003548060011c9060018116801561079e575b6020831081146102fd578285529081156102e157506001146107495750819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061078857506020915082010182610244565b6001816020925483858801015201910190610773565b91607f16916106fd565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017b57565b602435906001600160a01b038216820361017b57565b6001600160a01b039081165f818152600160209081526040808320948616835293905291909120549291905f198410610838575b50505050565b82841061087e5780156106c6576001600160a01b038216156106b3575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f808080610832565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610940576001600160a01b0316918215610548576108c961097d565b815f525f60205260405f205481811061092757817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b60055460081c6001600160a01b0316330361096a57565b63118cdaa760e01b5f523360045260245ffd5b60ff6005541661098957565b63d93c066560e01b5f5260045ffd5b9091906001600160a01b03168015610940576109b261097d565b805f525f60205260405f2054838110610a0a576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffdfea26469706673582212206c84eb2c8ca5381a7b44a7489c7b06c1fe95317c97786249105f3e1ee0c87a5d64736f6c634300081e0033", "linkReferences": {}, "deployedLinkReferences": {} }