UNPKG

@gooddollar/goodprotocol

Version:
1,716 lines (1,715 loc) 177 kB
{ "_format": "hh-sol-artifact-1", "contractName": "SuperGoodDollar", "sourceName": "contracts/token/superfluid/SuperGoodDollar.sol", "abi": [ { "inputs": [ { "internalType": "contract ISuperfluid", "name": "_host", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "SF_TOKEN_AGREEMENT_ALREADY_EXISTS", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_AGREEMENT_DOES_NOT_EXIST", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_BURN_INSUFFICIENT_BALANCE", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_MOVE_INSUFFICIENT_BALANCE", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_ONLY_HOST", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_ONLY_LISTED_AGREEMENT", "type": "error" }, { "inputs": [], "name": "SUPER_GOODDOLLAR_PAUSED", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_APPROVE_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_APPROVE_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_BURN_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_CALLER_IS_NOT_OPERATOR_FOR_HOLDER", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_INFLATIONARY_DEFLATIONARY_NOT_SUPPORTED", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_MINT_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NFT_PROXY_ALREADY_SET", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NOT_ERC777_TOKENS_RECIPIENT", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NO_UNDERLYING_TOKEN", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_GOV_OWNER", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_HOST", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_SELF", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_TRANSFER_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_TRANSFER_TO_TOKEN_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_TRANSFER_TO_ZERO_ADDRESS", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "AgreementCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "penaltyAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "rewardAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "AgreementLiquidated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "liquidatorAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "penaltyAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "bondAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "bailoutAmount", "type": "uint256" } ], "name": "AgreementLiquidatedBy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "liquidatorAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "targetAccount", "type": "address" }, { "indexed": false, "internalType": "address", "name": "rewardAmountReceiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "indexed": false, "internalType": "int256", "name": "targetAccountBalanceDelta", "type": "int256" }, { "indexed": false, "internalType": "bytes", "name": "liquidationTypeData", "type": "bytes" } ], "name": "AgreementLiquidatedV2", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "slotId", "type": "uint256" } ], "name": "AgreementStateUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "AgreementTerminated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "AgreementUpdated", "type": "event" }, { "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenHolder", "type": "address" } ], "name": "AuthorizedOperator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "bailoutAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "bailoutAmount", "type": "uint256" } ], "name": "Bailout", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Burned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "uuid", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "codeAddress", "type": "address" } ], "name": "CodeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IConstantInflowNFT", "name": "constantInflowNFT", "type": "address" } ], "name": "ConstantInflowNFTCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IConstantOutflowNFT", "name": "constantOutflowNFT", "type": "address" } ], "name": "ConstantOutflowNFTCreated", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Minted", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenHolder", "type": "address" } ], "name": "RevokedOperator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Sent", "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" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "Transfer", "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": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "senderPays", "type": "bool" } ], "name": "TransferFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "CONSTANT_INFLOW_NFT", "outputs": [ { "internalType": "contract IConstantInflowNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CONSTANT_OUTFLOW_NFT", "outputs": [ { "internalType": "contract IConstantOutflowNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minter", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pauser", "type": "address" } ], "name": "addPauser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": "operator", "type": "address" } ], "name": "authorizeOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "castrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "createAgreement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "feeRecipient", "type": "address" }, { "internalType": "address", "name": "gatewayFeeRecipient", "type": "address" }, { "internalType": "address", "name": "baseFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "refund", "type": "uint256" }, { "internalType": "uint256", "name": "tipTxFee", "type": "uint256" }, { "internalType": "uint256", "name": "gatewayFee", "type": "uint256" }, { "internalType": "uint256", "name": "baseTxFee", "type": "uint256" } ], "name": "creditGasFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "debitGasFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "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": "defaultOperators", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableHostOperations", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "enableHostOperations", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "formula", "outputs": [ { "internalType": "contract IFeesFormula", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountActiveAgreements", "outputs": [ { "internalType": "contract ISuperAgreement[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "agreementClass", "type": "address" }, { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "uint256", "name": "dataLength", "type": "uint256" } ], "name": "getAgreementData", "outputs": [ { "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "agreementClass", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "slotId", "type": "uint256" }, { "internalType": "uint256", "name": "dataLength", "type": "uint256" } ], "name": "getAgreementStateSlot", "outputs": [ { "internalType": "bytes32[]", "name": "slotData", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCodeAddress", "outputs": [ { "internalType": "address", "name": "codeAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "getFees", "outputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "bool", "name": "senderPays", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getFees", "outputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "bool", "name": "senderPays", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getHost", "outputs": [ { "internalType": "address", "name": "host", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getUnderlyingToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "granularity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "identity", "outputs": [ { "internalType": "contract IIdentity", "name": "", "type": "address" } ], "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": "contract IERC20", "name": "underlyingToken", "type": "address" }, { "internalType": "uint8", "name": "underlyingDecimals", "type": "uint8" }, { "internalType": "string", "name": "n", "type": "string" }, { "internalType": "string", "name": "s", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "n", "type": "string" }, { "internalType": "string", "name": "s", "type": "string" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "contract IFeesFormula", "name": "_formula", "type": "address" }, { "internalType": "contract IIdentity", "name": "_identity", "type": "address" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "contract IConstantOutflowNFT", "name": "_outflowNFT", "type": "address" }, { "internalType": "contract IConstantInflowNFT", "name": "_inflowNFT", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "isAccountCritical", "outputs": [ { "internalType": "bool", "name": "isCritical", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAccountCriticalNow", "outputs": [ { "internalType": "bool", "name": "isCritical", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" },