@soma-finance/core-contracts
Version:
SOMA Finance core contracts
1,779 lines (1,778 loc) • 93.7 kB
JavaScript
"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",