@soma-finance/core-contracts
Version:
SOMA Finance core contracts
1,917 lines • 40.9 kB
JSON
[
{
"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",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "issuanceAmount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "intervalIndex",
"type": "uint256"
}
],
"name": "unlockInterval",
"outputs": [
{
"internalType": "uint256",
"name": "withdrawnIssuanceAmount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "unlockLinear",
"outputs": [
{
"internalType": "uint256",
"name": "withdrawalAmount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "newRequiredPrivileges",
"type": "bytes32"
}
],
"name": "updateRequiredPrivileges",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "withdrawFee",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "withdrawPayments",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "withdrawUnsold",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]