UNPKG

@soma-finance/core-contracts

Version:

SOMA Finance core contracts

1,779 lines (1,778 loc) 93.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SomaStarter__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ const ethers_1 = require("ethers"); const _erc165InterfaceId = "0x0e8d6050"; const _erc1820InterfaceId = "0xd230c0e58d800da16d984ed1d40c19b440ddee0945aa6caf8c62533fb554e720"; const _abi = [ { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "address_", type: "address", }, { indexed: true, internalType: "uint256", name: "limitIndex", type: "uint256", }, ], name: "AccountLimitChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "FeeWithdrawn", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "mantissa", type: "uint256", }, ], name: "ImmediatelyUnlockingPartUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8", }, ], name: "Initialized", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "startsAt", type: "uint256", }, { indexed: false, internalType: "uint256", name: "unlockingPart", type: "uint256", }, ], name: "IntervalCreated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "IntervalPoolUnlocking", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "IssuanceIncreased", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "LinearPoolUnlocking", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "timestamp", type: "uint256", }, ], name: "LinearUnlockingEndingTimestampUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "uint256", name: "limitIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newLimit", type: "uint256", }, ], name: "PaymentLimitChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "uint256", name: "limitIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "limit", type: "uint256", }, ], name: "PaymentLimitCreated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "unlockedAmount", type: "uint256", }, { indexed: false, internalType: "uint256", name: "collectedFee", type: "uint256", }, ], name: "PaymentUnlocked", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "PaymentsWithdrawn", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "enum SomaStarter.Type", name: "type_", type: "uint8", }, { indexed: true, internalType: "contract IERC20", name: "paymentToken", type: "address", }, { indexed: true, internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { indexed: false, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { indexed: false, internalType: "uint256", name: "startsAt", type: "uint256", }, { indexed: false, internalType: "uint256", name: "endsAt", type: "uint256", }, { indexed: false, internalType: "uint256", name: "fee", type: "uint256", }, { indexed: false, internalType: "uint256", name: "rate", type: "uint256", }, { indexed: false, internalType: "uint256", name: "paymentLimit", type: "uint256", }, ], name: "PoolCreated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "newOwner", type: "address", }, ], name: "PoolOwnerChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "nominatedOwner", type: "address", }, ], name: "PoolOwnerNominated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "bytes32", name: "newRequiredPrivileges", type: "bytes32", }, ], name: "PoolPrivilegesChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: true, internalType: "address", name: "caller", type: "address", }, { indexed: false, internalType: "uint256", name: "requestedPaymentAmount", type: "uint256", }, { indexed: false, internalType: "uint256", name: "paymentAmount", type: "uint256", }, { indexed: false, internalType: "uint256", name: "issuanceAmount", type: "uint256", }, ], name: "Swap", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "TokensRecovered", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Unpaused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "poolIndex", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "UnsoldWithdrawn", type: "event", }, { inputs: [], name: "GLOBAL_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_WHITELIST_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_WHITELIST_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "SOMA", outputs: [ { internalType: "contract ISOMA", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "TOKEN_RECOVERY_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "acceptPoolOwnership", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "uint256", name: "limitIndex", type: "uint256", }, { internalType: "uint256", name: "newLimit", type: "uint256", }, ], name: "changeLimit", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "collectFee", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address", }, ], name: "collectedFees", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, { internalType: "uint256", name: "paymentLimit", type: "uint256", }, { internalType: "bytes32", name: "requiredPrivileges", type: "bytes32", }, { internalType: "address", name: "owner_", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "immediatelyUnlockingPart", type: "tuple", }, { components: [ { internalType: "uint256", name: "startsAt", type: "uint256", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "unlockingPart", type: "tuple", }, ], internalType: "struct SomaStarter.Interval[]", name: "intervals", type: "tuple[]", }, ], name: "createIntervalPool", outputs: [ { internalType: "bool", name: "success", type: "bool", }, { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, { internalType: "uint256", name: "paymentLimit", type: "uint256", }, { internalType: "bytes32", name: "requiredPrivileges", type: "bytes32", }, { internalType: "address", name: "owner_", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "immediatelyUnlockingPart", type: "tuple", }, { internalType: "uint256", name: "linearUnlockingEndsAt", type: "uint256", }, ], name: "createLinearPool", outputs: [ { internalType: "bool", name: "success", type: "bool", }, { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "uint256", name: "limit", type: "uint256", }, ], name: "createPaymentLimit", outputs: [ { internalType: "uint256", name: "limitIndex", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, { internalType: "uint256", name: "paymentLimit", type: "uint256", }, { internalType: "bytes32", name: "requiredPrivileges", type: "bytes32", }, { internalType: "address", name: "owner_", type: "address", }, ], name: "createSimplePool", outputs: [ { internalType: "bool", name: "success", type: "bool", }, { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], stateMutability: "nonpayable", 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: "address", name: "account", type: "address", }, ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "increaseIssuance", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "address", name: "address_", type: "address", }, ], name: "intervalPoolAccount", outputs: [ { components: [ { internalType: "uint256", name: "limitIndex", type: "uint256", }, { internalType: "uint256", name: "paymentSum", type: "uint256", }, ], internalType: "struct SomaStarter.AccountState", name: "state", type: "tuple", }, { components: [ { internalType: "uint256", name: "issuanceAmount", type: "uint256", }, { internalType: "uint256", name: "withdrawnIssuanceAmount", type: "uint256", }, ], internalType: "struct SomaStarter.ComplexAccountState", name: "complex", type: "tuple", }, { internalType: "uint256", name: "unlockedIntervalsCount", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "intervalPoolProps", outputs: [ { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "immediatelyUnlockingPart", type: "tuple", }, { components: [ { internalType: "uint256", name: "startsAt", type: "uint256", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "unlockingPart", type: "tuple", }, ], internalType: "struct SomaStarter.Interval[]", name: "intervals", type: "tuple[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "address", name: "address_", type: "address", }, ], name: "linearPoolAccount", outputs: [ { components: [ { internalType: "uint256", name: "limitIndex", type: "uint256", }, { internalType: "uint256", name: "paymentSum", type: "uint256", }, ], internalType: "struct SomaStarter.AccountState", name: "state", type: "tuple", }, { components: [ { internalType: "uint256", name: "issuanceAmount", type: "uint256", }, { internalType: "uint256", name: "withdrawnIssuanceAmount", type: "uint256", }, ], internalType: "struct SomaStarter.ComplexAccountState", name: "complex", type: "tuple", }, { internalType: "uint256", name: "immediatelyUnlockedAmount", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "linearPoolProps", outputs: [ { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "immediatelyUnlockingPart", type: "tuple", }, { components: [ { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "uint256", name: "duration", type: "uint256", }, ], internalType: "struct SomaStarter.LinearProps", name: "linear", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes[]", name: "data", type: "bytes[]", }, ], name: "multicall", outputs: [ { internalType: "bytes[]", name: "results", type: "bytes[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "address", name: "nominatedOwner_", type: "address", }, ], name: "nominateNewPoolOwner", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "pause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "address", name: "address_", type: "address", }, ], name: "poolAccount", outputs: [ { internalType: "enum SomaStarter.Type", name: "type_", type: "uint8", }, { components: [ { internalType: "uint256", name: "limitIndex", type: "uint256", }, { internalType: "uint256", name: "paymentSum", type: "uint256", }, ], internalType: "struct SomaStarter.AccountState", name: "state", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "poolProps", outputs: [ { internalType: "enum SomaStarter.Type", name: "type_", type: "uint8", }, { components: [ { internalType: "uint256", name: "issuanceLimit", type: "uint256", }, { internalType: "uint256", name: "startsAt", type: "uint256", }, { internalType: "uint256", name: "endsAt", type: "uint256", }, { internalType: "contract IERC20", name: "paymentToken", type: "address", }, { internalType: "contract IERC20", name: "issuanceToken", type: "address", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "fee", type: "tuple", }, { components: [ { internalType: "uint256", name: "mantissa", type: "uint256", }, ], internalType: "struct AttoDecimal.Instance", name: "rate", type: "tuple", }, ], internalType: "struct SomaStarter.Props", name: "props", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, ], name: "poolState", outputs: [ { components: [ { internalType: "uint256", name: "available", type: "uint256", }, { internalType: "uint256", name: "issuance", type: "uint256", }, { internalType: "uint256", name: "lockedPayments", type: "uint256", }, { internalType: "uint256", name: "unlockedPayments", type: "uint256", }, { internalType: "address", name: "nominatedOwner", type: "address", }, { internalType: "address", name: "owner", type: "address", }, { internalType: "uint256[]", name: "paymentLimits", type: "uint256[]", }, { internalType: "bytes32", name: "requiredPrivileges", type: "bytes32", }, ], internalType: "struct SomaStarter.State", name: "state", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "poolsCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "token", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "recoverTokens", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "uint256", name: "limitIndex", type: "uint256", }, { internalType: "address[]", name: "accounts", type: "address[]", }, ], name: "setAccountsLimit", outputs: [ { internalType: "bool", name: "success", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4", }, ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "poolIndex", type: "uint256", }, { internalType: "uint256", name: "requestedPaymentAmount", type: "uint256", }, ], name: "swap", outputs: [ { internalType: "uint256", name: "paymentAmount",