[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "OnlyIssuerOrOwner", "type": "error" }, { "inputs": [], "name": "TokenCapped", "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": false, "internalType": "uint256", "name": "atSupply", "type": "uint256" } ], "name": "Capped", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": 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" }, { "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": "amount", "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": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "capped", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "hash", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "components": [ { "internalType": "uint256", "name": "ipnftId", "type": "uint256" }, { "internalType": "address", "name": "originalOwner", "type": "address" }, { "internalType": "string", "name": "agreementCid", "type": "string" } ], "internalType": "struct Metadata", "name": "metadata_", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "issue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "issuer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "metadata", "outputs": [ { "components": [ { "internalType": "uint256", "name": "ipnftId", "type": "uint256" }, { "internalType": "address", "name": "originalOwner", "type": "address" }, { "internalType": "string", "name": "agreementCid", "type": "string" } ], "internalType": "struct Metadata", "name": "", "type": "tuple" } ], "stateMutability": "view", "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalIssued", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "amount", "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": "amount", "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": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611ed0806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636ddbb9eb116100de57806395d89b4111610097578063dd62ed3e11610071578063dd62ed3e14610360578063eac989f814610373578063f2fde38b1461037b578063f5be31931461038e57600080fd5b806395d89b4114610332578063a457c2d71461033a578063a9059cbb1461034d57600080fd5b80636ddbb9eb146102b757806370a08231146102ca578063715018a6146102f357806379cc6790146102fb578063867904b41461030e5780638da5cb5b1461032157600080fd5b8063313ce56711610130578063313ce56714610256578063355274ea14610265578063392f37e91461026f578063395093511461028457806342966c68146102975780635eb101c3146102aa57600080fd5b806306fdde0314610178578063095ea7b31461019657806309bd5a60146101b957806318160ddd146102165780631d1438481461021e57806323b872dd14610243575b600080fd5b610180610397565b60405161018d91906115d8565b60405180910390f35b6101a96101a4366004611600565b610429565b604051901515815260200161018d565b61020860cc5460cb5460405160609290921b6bffffffffffffffffffffffff1916602083015260348201526000906054016040516020818303038152906040528051906020012060001c905090565b60405190815260200161018d565b603554610208565b60cc546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b6101a961025136600461162c565b610443565b6040516012815260200161018d565b61026d610467565b005b610277610500565b60405161018d919061166d565b6101a9610292366004611600565b6105d9565b61026d6102a53660046116ac565b6105fb565b60ca546101a99060ff1681565b61026d6102c536600461170e565b610608565b6102086102d83660046117a9565b6001600160a01b031660009081526033602052604090205490565b61026d6107a5565b61026d610309366004611600565b6107b9565b61026d61031c366004611600565b6107d2565b6097546001600160a01b031661022b565b610180610865565b6101a9610348366004611600565b610874565b6101a961035b366004611600565b6108ef565b61020861036e3660046117c6565b6108fd565b610180610928565b61026d6103893660046117a9565b6109e3565b61020860c95481565b6060603680546103a6906117ff565b80601f01602080910402602001604051908101604052809291908181526020018280546103d2906117ff565b801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b5050505050905090565b600033610437818585610a59565b60019150505b92915050565b600033610451858285610b7e565b61045c858585610bf8565b506001949350505050565b60cc546001600160a01b0316336001600160a01b03161415801561049657506097546001600160a01b03163314155b156104b4576040516318c283a360e11b815260040160405180910390fd5b60ca805460ff1916600117905560c9546040517f2912fc7045d52982dbe8b628b488de4b715d9b2d2d76c7c5d4c84f6cce528e5a916104f69190815260200190565b60405180910390a1565b604080516060808201835260008083526020830152918101919091526040805160608101825260cb8054825260cc546001600160a01b0316602083015260cd80549293919291840191610552906117ff565b80601f016020809104026020016040519081016040528092919081815260200182805461057e906117ff565b80156105cb5780601f106105a0576101008083540402835291602001916105cb565b820191906000526020600020905b8154815290600101906020018083116105ae57829003601f168201915b505050505081525050905090565b6000336104378185856105ec83836108fd565b6105f6919061184f565b610a59565b6106053382610da3565b50565b600054610100900460ff16158080156106285750600054600160ff909116105b806106425750303b158015610642575060005460ff166001145b6106aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156106cd576000805461ff0019166101001790555b6106d5610ed4565b61074886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881529250889150879081908401838280828437600092019190915250610f0392505050565b8160cb61075582826118be565b5050801561079d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6107ad610f34565b6107b76000610f8e565b565b6107c4823383610b7e565b6107ce8282610da3565b5050565b60cc546001600160a01b0316336001600160a01b03161415801561080157506097546001600160a01b03163314155b1561081f576040516318c283a360e11b815260040160405180910390fd5b60ca5460ff1615610843576040516302b6470560e51b815260040160405180910390fd5b8060c96000828254610855919061184f565b909155506107ce90508282610fe0565b6060603780546103a6906117ff565b6000338161088282866108fd565b9050838110156108e25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a1565b61045c8286868403610a59565b600033610437818585610bf8565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6060600061093a60cb600001546110a1565b60cc54909150600090829060cd9061095a906001600160a01b0316611134565b61096330611134565b61096e60c9546110a1565b604051602001610982959493929190611a03565b60405160208183030381529060405290506109bd82826040516020016109a9929190611b7d565b60405160208183030381529060405261114a565b6040516020016109cd9190611ca4565b6040516020818303038152906040529250505090565b6109eb610f34565b6001600160a01b038116610a505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a1565b61060581610f8e565b6001600160a01b038316610abb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a1565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a1565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610b8a84846108fd565b90506000198114610bf25781811015610be55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106a1565b610bf28484848403610a59565b50505050565b6001600160a01b038316610c5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a1565b6001600160a01b038216610cbe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a1565b6001600160a01b03831660009081526033602052604090205481811015610d365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a1565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d969086815260200190565b60405180910390a3610bf2565b6001600160a01b038216610e035760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106a1565b6001600160a01b03821660009081526033602052604090205481811015610e775760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106a1565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610b71565b505050565b600054610100900460ff16610efb5760405162461bcd60e51b81526004016106a190611ce9565b6107b761129d565b600054610100900460ff16610f2a5760405162461bcd60e51b81526004016106a190611ce9565b6107ce82826112cd565b6097546001600160a01b031633146107b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a1565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166110365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106a1565b8060356000828254611048919061184f565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b606060006110ae8361130d565b600101905060008167ffffffffffffffff8111156110ce576110ce611862565b6040519080825280601f01601f1916602001820160405280156110f8576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461110257509392505050565b606061043d6001600160a01b03831660146113e5565b6060815160000361116957505060408051602081019091526000815290565b6000604051806060016040528060408152602001611e5b6040913990506000600384516002611198919061184f565b6111a29190611d34565b6111ad906004611d56565b67ffffffffffffffff8111156111c5576111c5611862565b6040519080825280601f01601f1916602001820160405280156111ef576020820181803683370190505b509050600182016020820185865187015b8082101561125b576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845350600183019250611200565b5050600386510660018114611277576002811461128a57611292565b603d6001830353603d6002830353611292565b603d60018303535b509195945050505050565b600054610100900460ff166112c45760405162461bcd60e51b81526004016106a190611ce9565b6107b733610f8e565b600054610100900460ff166112f45760405162461bcd60e51b81526004016106a190611ce9565b60366113008382611d6d565b506037610ecf8282611d6d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061134c5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611378576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061139657662386f26fc10000830492506010015b6305f5e10083106113ae576305f5e100830492506008015b61271083106113c257612710830492506004015b606483106113d4576064830492506002015b600a831061043d5760010192915050565b606060006113f4836002611d56565b6113ff90600261184f565b67ffffffffffffffff81111561141757611417611862565b6040519080825280601f01601f191660200182016040528015611441576020820181803683370190505b509050600360fc1b8160008151811061145c5761145c611e2d565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061148b5761148b611e2d565b60200101906001600160f81b031916908160001a90535060006114af846002611d56565b6114ba90600161184f565b90505b6001811115611532576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106114ee576114ee611e2d565b1a60f81b82828151811061150457611504611e2d565b60200101906001600160f81b031916908160001a90535060049490941c9361152b81611e43565b90506114bd565b5083156115815760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106a1565b9392505050565b60005b838110156115a357818101518382015260200161158b565b50506000910152565b600081518084526115c4816020860160208601611588565b601f01601f19169290920160200192915050565b60208152600061158160208301846115ac565b6001600160a01b038116811461060557600080fd5b6000806040838503121561161357600080fd5b823561161e816115eb565b946020939093013593505050565b60008060006060848603121561164157600080fd5b833561164c816115eb565b9250602084013561165c816115eb565b929592945050506040919091013590565b602081528151602082015260018060a01b036020830151166040820152600060408301516060808401526116a460808401826115ac565b949350505050565b6000602082840312156116be57600080fd5b5035919050565b60008083601f8401126116d757600080fd5b50813567ffffffffffffffff8111156116ef57600080fd5b60208301915083602082850101111561170757600080fd5b9250929050565b60008060008060006060868803121561172657600080fd5b853567ffffffffffffffff8082111561173e57600080fd5b61174a89838a016116c5565b9097509550602088013591508082111561176357600080fd5b61176f89838a016116c5565b9095509350604088013591508082111561178857600080fd5b5086016060818903121561179b57600080fd5b809150509295509295909350565b6000602082840312156117bb57600080fd5b8135611581816115eb565b600080604083850312156117d957600080fd5b82356117e4816115eb565b915060208301356117f4816115eb565b809150509250929050565b600181811c9082168061181357607f821691505b60208210810361183357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043d5761043d611839565b634e487b7160e01b600052604160045260246000fd5b601f821115610ecf57600081815260208120601f850160051c8101602086101561189f5750805b601f850160051c820191505b8181101561079d578281556001016118ab565b8135815560018082016020808501356118d6816115eb565b82546001600160a01b0319166001600160a01b0391909116179091556002830190604085013536869003601e1901811261190f57600080fd5b8501803567ffffffffffffffff81111561192857600080fd5b803603838301131561193957600080fd5b61194d8161194786546117ff565b86611878565b6000601f821160018114611983576000831561196b57508382018501355b600019600385901b1c1916600184901b1786556119dc565b600086815260209020601f19841690835b828110156119b357868501880135825593870193908901908701611994565b50848210156119d25760001960f88660031b161c198785880101351681555b50508683881b0186555b505050505050505050565b600081516119f9818560208601611588565b9290920192915050565b6e2270726f70657274696573223a207b60881b81526b01134b837333a2fb4b2111d160a51b600f82015285516000906020611a4482601b8601838c01611588565b81840191507f2c2261677265656d656e745f636f6e74656e74223a2022697066733a2f2f0000601b830152603960008954611a7e816117ff565b60018281168015611a965760018114611aaf57611adf565b60ff198416888701528215158302880186019450611adf565b8d6000528660002060005b84811015611ad55781548a8201890152908301908801611aba565b5050858389010194505b50505050611b04817411161137b934b3b4b730b62fb7bbb732b9111d101160591b9052565b611b11601582018a6119e7565b9350505050611b37817411161132b93199182fb1b7b73a3930b1ba111d101160591b9052565b611b4460158201866119e7565b6c11161139bab838363c911d101160991b81529050611b66600d8201856119e7565b61227d60f01b815260020198975050505050505050565b7f7b226e616d65223a2022495020546f6b656e73206f662049504e465420230000815260008351611bb581601e850160208801611588565b7f222c226465736372697074696f6e223a2022495020546f6b656e732c20646572601e918401918201527f697665642066726f6d2049502d4e4654732c20617265204552432d323020746f603e8201527f6b656e7320676f7665726e696e6720495020706f6f6c732e222c22646563696d605e8201527f616c73223a2031382c2265787465726e616c5f75726c223a202268747470733a607e8201527f2f2f6d6f6c6563756c652e746f222c22696d616765223a2022222c0000000000609e8201528351611c8a8160b9840160208801611588565b607d60f81b60b9929091019182015260ba01949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251611cdc81601d850160208701611588565b91909101601d0192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082611d5157634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761043d5761043d611839565b815167ffffffffffffffff811115611d8757611d87611862565b611d9b81611d9584546117ff565b84611878565b602080601f831160018114611dd05760008415611db85750858301515b600019600386901b1c1916600185901b17855561079d565b600085815260208120601f198616915b82811015611dff57888601518255948401946001909101908401611de0565b5085821015611e1d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611e5257611e52611839565b50600019019056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212200435be2b2553218d49f2e4590eebae32416c78e3751f78e0982507dfc6d0d41c64736f6c63430008120033