Multiliquid/src/prod. Use them with viem, ethers.js, or another EVM library to encode calls, decode results, and parse events.
Each JSON block has a copy button in its top-right corner. The embedded ABIs
are the complete Foundry artifact ABIs, including inherited functions, events,
and custom errors.
Production Interface
- All route families use
quoteSwap(user, input)andswap(user, receiver, inputs, permit). - Delegated execution includes standing
swapInputAllowances, EIP-712nonces, andDOMAIN_SEPARATOR(). - Requested and internally derived legs emit the unified
Swapevent. - Treasury yield accrual uses
accrueInterest(user, maxDays, maxRecords).
MultiliquidSwap
Primary production swap orchestrator. This ABI contains the singular route-taggedquoteSwap and batched swap entrypoints, delegated allowances, EIP-712 nonce/domain reads, asset configuration, protocol administration, and the unified Swap event.
MultiliquidSwap ABI
MultiliquidSwap ABI
MultiliquidSwap.json
[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "BLACKLISTER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "DOMAIN_SEPARATOR",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "EXTERNAL_PAUSER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "OPERATOR_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "UPGRADE_INTERFACE_VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "adjustSwapInputAllowance",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "assetInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "increase",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "autoLiquidityStablecoinIDs",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "blacklisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "configureStablecoinGuardrail",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"internalType": "address"
},
{
"name": "band",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "enabled",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "discountRates",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMember",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMemberCount",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMembers",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "grantRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "admin",
"type": "address",
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "issuerPaidProtocolFeeRates",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "multiliquidVault",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "nonces",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "protocolFeeExempt",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "proxiableUUID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "quoteSwap",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapInputs",
"components": [
{
"name": "routeId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "assetOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinDelegateID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "assetInAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAmt",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "outputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapResolved",
"components": [
{
"name": "tokenInAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenOutAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "issuerFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "spreadFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "redemptionFees",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "renounceRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "revokeRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "rwaInfo",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
},
{
"name": "additionalRiskControls",
"type": "bool",
"internalType": "bool"
},
{
"name": "decimals",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "delegate",
"type": "address",
"internalType": "address"
},
{
"name": "assetAddress",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "rwaPriceAdapters",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "rwaWhitelistAdapters",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "setAutoLiquidityStablecoinID",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setBlacklisted",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "_blacklisted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setIssuerPaidProtocolFeeRate",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMaxSwapLegs",
"inputs": [
{
"name": "newMaxSwapLegs",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMultiliquidVault",
"inputs": [
{
"name": "vault",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setProtocolFeeExempt",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "exempt",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWAAcceptance",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_delegate",
"type": "address",
"internalType": "address"
},
{
"name": "_assetAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWADiscountRate",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWARedemptionFee",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRwaPriceAdapter",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRwaWhitelistAdapter",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "adapter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setSpreadProtocolTakeRate",
"inputs": [
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinAcceptance",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_delegate",
"type": "address",
"internalType": "address"
},
{
"name": "_assetAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_accepted",
"type": "bool",
"internalType": "bool"
},
{
"name": "_yieldBearing",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinAcceptanceFee",
"inputs": [
{
"name": "stablecoinOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinRedemptionFee",
"inputs": [
{
"name": "stablecoinOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinUSDValue",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "spreadProtocolTakeRate",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinAcceptanceFees",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinGuardrailBands",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinGuardrailEnabled",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinInfo",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
},
{
"name": "yieldBearing",
"type": "bool",
"internalType": "bool"
},
{
"name": "decimals",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "delegate",
"type": "address",
"internalType": "address"
},
{
"name": "assetAddress",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinPriceAdapters",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinRedemptionFees",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinUSDValue",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "swap",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "inputs",
"type": "tuple[]",
"internalType": "struct IMultiliquidSwap.SwapInputs[]",
"components": [
{
"name": "routeId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "assetOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinDelegateID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "assetInAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAmt",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "permit",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.ApprovalPermit",
"components": [
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapInputAllowances",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "unpause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "upgradeToAndCall",
"inputs": [
{
"name": "newImplementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "event",
"name": "AutoLiquidityStablecoinIDSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "DiscountRateSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"type": "event",
"name": "IssuerPaidProtocolFeeRateSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "oldRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MultiliquidVaultSet",
"inputs": [
{
"name": "oldVault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newVault",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ProtocolFeeExemptSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "exempt",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAAcceptanceSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "delegate",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "assetAddress",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "decimals",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RedemptionFeeSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleAdminChanged",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RwaPriceAdapterSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RwaWhitelistAdapterSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "adapter",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SpreadProtocolTakeRateSet",
"inputs": [
{
"name": "oldRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinAcceptanceFeeSet",
"inputs": [
{
"name": "stablecoinOutID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinIn",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinAcceptanceSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "delegate",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "assetAddress",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "decimals",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "yieldBearing",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinPriceGuardrailSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "band",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinRedemptionFeeSet",
"inputs": [
{
"name": "stablecoinOutID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinIn",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinUSDValueSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Swap",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "assetInID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "assetOutID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "operator",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "routeId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinDelegateID",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "amountIn",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amountOut",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "issuerFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "spreadFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapInputAllowanceSet",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "assetInID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapInputAllowanceSpent",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "assetInID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "amountSpent",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "remainingAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Upgraded",
"inputs": [
{
"name": "implementation",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "UserBlacklistUpdated",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "blacklisted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "error",
"name": "AccessControlBadConfirmation",
"inputs": []
},
{
"type": "error",
"name": "AccessControlUnauthorizedAccount",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "AddressEmptyCode",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AssetIDAlreadyRegistered",
"inputs": [
{
"name": "assetID",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "ERC1967InvalidImplementation",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1967NonPayable",
"inputs": []
},
{
"type": "error",
"name": "EnforcedPause",
"inputs": []
},
{
"type": "error",
"name": "ExpectedPause",
"inputs": []
},
{
"type": "error",
"name": "FailedCall",
"inputs": []
},
{
"type": "error",
"name": "FailedToDeployRWA",
"inputs": []
},
{
"type": "error",
"name": "FailedToDeployStablecoin",
"inputs": []
},
{
"type": "error",
"name": "IdenticalAssets",
"inputs": []
},
{
"type": "error",
"name": "IdenticalStablecoins",
"inputs": []
},
{
"type": "error",
"name": "InsufficientRWAInput",
"inputs": []
},
{
"type": "error",
"name": "InsufficientRWAOutput",
"inputs": []
},
{
"type": "error",
"name": "InsufficientStablecoinInput",
"inputs": []
},
{
"type": "error",
"name": "InsufficientStablecoinOutput",
"inputs": []
},
{
"type": "error",
"name": "InsufficientSwapAllowance",
"inputs": []
},
{
"type": "error",
"name": "InvalidAdmin",
"inputs": []
},
{
"type": "error",
"name": "InvalidAssetAddress",
"inputs": []
},
{
"type": "error",
"name": "InvalidDelegate",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "InvalidLegCount",
"inputs": []
},
{
"type": "error",
"name": "InvalidPrice",
"inputs": []
},
{
"type": "error",
"name": "InvalidRate",
"inputs": []
},
{
"type": "error",
"name": "InvalidSignature",
"inputs": []
},
{
"type": "error",
"name": "InvalidStablecoinDelegateID",
"inputs": [
{
"name": "actual",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "expected",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "InvalidSwapAddress",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "InvalidVault",
"inputs": []
},
{
"type": "error",
"name": "NotInitializing",
"inputs": []
},
{
"type": "error",
"name": "NotStablecoinDelegate",
"inputs": []
},
{
"type": "error",
"name": "PermitExpired",
"inputs": []
},
{
"type": "error",
"name": "PriceAdapterNotSet",
"inputs": [
{
"name": "tokenID",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "RWANotAccepted",
"inputs": []
},
{
"type": "error",
"name": "RWAValidityCheckFailed",
"inputs": []
},
{
"type": "error",
"name": "ReentrancyGuardReentrantCall",
"inputs": []
},
{
"type": "error",
"name": "StablecoinGuardrailBandNotSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "StablecoinNotAccepted",
"inputs": []
},
{
"type": "error",
"name": "StablecoinPriceAdapterNotSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "StablecoinPriceOutsideBand",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "adminValue",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "oraclePrice",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "band",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "USDValueNotSet",
"inputs": [
{
"name": "tokenID",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "UUPSUnauthorizedCallContext",
"inputs": []
},
{
"type": "error",
"name": "UUPSUnsupportedProxiableUUID",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "UnsupportedDecimals",
"inputs": [
{
"name": "decimals",
"type": "uint8",
"internalType": "uint8"
}
]
},
{
"type": "error",
"name": "UnsupportedRouteId",
"inputs": [
{
"name": "routeId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "UserBlacklisted",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "UserNotWhitelisted",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
]
}
]
Treasury
Upgradeable Treasury Yield ERC-20 contract, formerly documented here asLiquidTreasury. It includes ERC-20, EIP-2612 permit, access-control, whitelist, blacklist, bridge, pause, forced-transfer, and UUPS functionality.
Treasury ABI
Treasury ABI
Treasury.json
[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "BLACKLISTER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "BRIDGE_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "DOMAIN_SEPARATOR",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "MINTER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "OPERATOR_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "PAUSER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "UPGRADE_INTERFACE_VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "WHITELISTER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "addBridge",
"inputs": [
{
"name": "bridge",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addToBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addToBlacklistBatch",
"inputs": [
{
"name": "accounts",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addToWhitelist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "allowance",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "approve",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceOf",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "blacklisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "bridgeMint",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "burn",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "burnFrom",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "decimals",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "eip712Domain",
"inputs": [],
"outputs": [
{
"name": "fields",
"type": "bytes1",
"internalType": "bytes1"
},
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "version",
"type": "string",
"internalType": "string"
},
{
"name": "chainId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "verifyingContract",
"type": "address",
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "extensions",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "forceBurn",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "forceTransfer",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMember",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMemberCount",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMembers",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "grantRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "admin_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "mint",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "name",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "nonces",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "permit",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "proxiableUUID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "removeBridge",
"inputs": [
{
"name": "bridge",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeFromBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeFromBlacklistBatch",
"inputs": [
{
"name": "accounts",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeFromWhitelist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "revokeRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "symbol",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalSupply",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transfer",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "transferFrom",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unpause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "upgradeToAndCall",
"inputs": [
{
"name": "newImplementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "whitelisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "AddedToBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "AddedToWhitelist",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Approval",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BridgeAdded",
"inputs": [
{
"name": "bridge",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BridgeBurn",
"inputs": [
{
"name": "bridge",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BridgeMint",
"inputs": [
{
"name": "bridge",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BridgeRemoved",
"inputs": [
{
"name": "bridge",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "EIP712DomainChanged",
"inputs": [],
"anonymous": false
},
{
"type": "event",
"name": "ForcedBurn",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ForcedTransfer",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RemovedFromBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RemovedFromWhitelist",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleAdminChanged",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Transfer",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Upgraded",
"inputs": [
{
"name": "implementation",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "error",
"name": "AccessControlBadConfirmation",
"inputs": []
},
{
"type": "error",
"name": "AccessControlUnauthorizedAccount",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "AccountBlacklisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AccountNotBlacklisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AccountNotWhitelisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AddressEmptyCode",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ECDSAInvalidSignature",
"inputs": []
},
{
"type": "error",
"name": "ECDSAInvalidSignatureLength",
"inputs": [
{
"name": "length",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ECDSAInvalidSignatureS",
"inputs": [
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "ERC1967InvalidImplementation",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1967NonPayable",
"inputs": []
},
{
"type": "error",
"name": "ERC20InsufficientAllowance",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ERC20InsufficientBalance",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ERC20InvalidApprover",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC20InvalidReceiver",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC20InvalidSender",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC20InvalidSpender",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC2612ExpiredSignature",
"inputs": [
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ERC2612InvalidSigner",
"inputs": [
{
"name": "signer",
"type": "address",
"internalType": "address"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "EnforcedPause",
"inputs": []
},
{
"type": "error",
"name": "ExpectedPause",
"inputs": []
},
{
"type": "error",
"name": "FailedCall",
"inputs": []
},
{
"type": "error",
"name": "InvalidAccountNonce",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "currentNonce",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "InvalidAmount",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "NotInitializing",
"inputs": []
},
{
"type": "error",
"name": "ReentrancyGuardReentrantCall",
"inputs": []
},
{
"type": "error",
"name": "UUPSUnauthorizedCallContext",
"inputs": []
},
{
"type": "error",
"name": "UUPSUnsupportedProxiableUUID",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "ZeroAddress",
"inputs": []
}
]
TreasuryDelegate
Yield-bearing stablecoin delegate used by the Treasury Yield registration. It includes delegate settlement and LP administration plus yield-rate, credit, multiplier, and bounded interest-accrual functionality.TreasuryDelegate ABI
TreasuryDelegate ABI
TreasuryDelegate.json
[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "MULTILIQUID_SWAP_CONTRACT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "OPERATOR_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "PAUSE_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "RATE_POSTER_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "UPGRADE_INTERFACE_VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "accrueInterest",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "maxDays",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxRecords",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "daysAccrued",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recordsMerged",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "dailyAccrualComplete",
"type": "bool",
"internalType": "bool"
},
{
"name": "creditsFullyMerged",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addIssuerAdmin",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addRWAColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addStablecoinColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceSheetCustodyAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "batchAccrueInterest",
"inputs": [
{
"name": "users",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "blacklist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "correctDailyRate",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "grossRate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "credits",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "dailyRates",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "deployStablecoin",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeRWAs",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeStablecoins",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "firstRateDay",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getAmountForTargetValue",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "targetValue",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinWithdrawal",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [
{
"name": "treasuryNeeded",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getCurrentDay",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getDailyRate",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "posted",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRWAColdStorageAddresses",
"inputs": [],
"outputs": [
{
"name": "addresses",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMember",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMemberCount",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMembers",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getStablecoinColdStorageAddresses",
"inputs": [],
"outputs": [
{
"name": "addresses",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getWithheldCredits",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "tuple[]",
"internalType": "struct WithheldCreditsDeque.WithheldCredits[]",
"components": [
{
"name": "tokenAddress",
"type": "address",
"internalType": "address"
},
{
"name": "credits",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "releaseTimestamp",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "earningStartTimestamp",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "isRWA",
"type": "bool",
"internalType": "bool"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getYieldAmount",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "redeemValue",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinWithdrawal",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "grantRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "multiliquidAdmin",
"type": "address",
"internalType": "address"
},
{
"name": "initialIssuerAdmin",
"type": "address",
"internalType": "address"
},
{
"name": "_multiliquidSwap",
"type": "address",
"internalType": "address"
},
{
"name": "_stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_stablecoinAddress",
"type": "address",
"internalType": "address"
},
{
"name": "initialRate",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "initialManagementFee",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "ratePoster",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "issuerAdmins",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "lastAccrualDay",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "lastRatePostingDay",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "managementFee",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "maxDailyRate",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "maxFallbackRateSeconds",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "multiliquidSwap",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "pauseMultiliquid",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "postDailyRate",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "grossRate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "proxiableUUID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "ratePosted",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "receiveStablecoin",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeIssuerAdmin",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeRWAColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeStablecoinColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "revokeRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "rwaWhitelist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "setAutoLiquidityStablecoinID",
"inputs": [
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "isBlacklisted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setManagementFee",
"inputs": [
{
"name": "fee",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMaxDailyRate",
"inputs": [
{
"name": "maxRate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMaxFallbackRateSeconds",
"inputs": [
{
"name": "maxSeconds",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWACustodyAddress",
"inputs": [
{
"name": "_balanceSheetCustodyAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWADiscountRate",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWARedemptionFee",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinAcceptanceFee",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinCustodyAddress",
"inputs": [
{
"name": "_stablecoinCustodyAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinRedemptionFee",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setUserYieldMultiplier",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "newMultiplier",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "stablecoinAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinCustodyAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinWhitelist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalWithheldCredits",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "treasury",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ITreasury"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "unpause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unpauseMultiliquid",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "upgradeToAndCall",
"inputs": [
{
"name": "newImplementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "whitelistRWA",
"inputs": [
{
"name": "rwa",
"type": "address",
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "whitelistStablecoin",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "withdrawStablecoin",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "yieldMultiplier",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "AutoLiquidityStablecoinIDSet",
"inputs": [
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BlacklistUpdated",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "blacklisted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "DailyRateCorrected",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "oldRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "corrector",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "DailyRatePosted",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "poster",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "FirstRatePosted",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"type": "event",
"name": "InterestAccrued",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "fromDay",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "toDay",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "daysAccrued",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "multiplierAfter",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "IssuerAdminAdded",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "IssuerAdminRemoved",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MainCreditsReduced",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "remainingCredits",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ManagementFeeUpdated",
"inputs": [
{
"name": "oldFee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newFee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MaxDailyRateUpdated",
"inputs": [
{
"name": "oldRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newRate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MaxFallbackRateSecondsUpdated",
"inputs": [
{
"name": "oldWindow",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newWindow",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PendingCreditsAdded",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "depositDay",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PendingCreditsMerged",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pendingAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newCredits",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAColdStorageAddressAdded",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAColdStorageAddressRemoved",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWACustodyAddressSet",
"inputs": [
{
"name": "balanceSheetCustodyAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWADiscountRateSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAWhitelist",
"inputs": [
{
"name": "rwa",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RedemptionFeeSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleAdminChanged",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinAcceptanceFeeSet",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinColdStorageAddressAdded",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinColdStorageAddressRemoved",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinCustodyAddressSet",
"inputs": [
{
"name": "stablecoinCustodyAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinRedemptionFeeSet",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinWhitelist",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinWithdrawn",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Upgraded",
"inputs": [
{
"name": "implementation",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "WithheldCreditsReduced",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "remainingWithheld",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "YieldClaimed",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "creditsRedeemed",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "yieldAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "effectiveValue",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "YieldMultiplierUpdated",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "oldMultiplier",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newMultiplier",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "admin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "error",
"name": "AccessControlBadConfirmation",
"inputs": []
},
{
"type": "error",
"name": "AccessControlUnauthorizedAccount",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "AddressBlacklisted",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AddressEmptyCode",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AddressNotAllowed",
"inputs": []
},
{
"type": "error",
"name": "CannotCorrectBeforeFirstRate",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "firstRateDay",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "CannotPostFutureRate",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "currentDay",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "CannotPostRateForUnfinishedDay",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "currentDay",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "CannotRemoveSelf",
"inputs": []
},
{
"type": "error",
"name": "ERC1967InvalidImplementation",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1967NonPayable",
"inputs": []
},
{
"type": "error",
"name": "EnforcedPause",
"inputs": []
},
{
"type": "error",
"name": "ExpectedPause",
"inputs": []
},
{
"type": "error",
"name": "FailedCall",
"inputs": []
},
{
"type": "error",
"name": "InsufficientCredits",
"inputs": [
{
"name": "requested",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "available",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "InvalidFallbackRateWindow",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitializationParams",
"inputs": []
},
{
"type": "error",
"name": "InvalidIssuerAdmin",
"inputs": []
},
{
"type": "error",
"name": "InvalidMaxDays",
"inputs": []
},
{
"type": "error",
"name": "InvalidMaxRecords",
"inputs": []
},
{
"type": "error",
"name": "InvalidMultiliquidSwap",
"inputs": []
},
{
"type": "error",
"name": "InvalidRate",
"inputs": []
},
{
"type": "error",
"name": "InvalidStablecoinAsset",
"inputs": [
{
"name": "asset",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "InvalidStablecoinExchange",
"inputs": [
{
"name": "assetIn",
"type": "address",
"internalType": "address"
},
{
"name": "assetOut",
"type": "address",
"internalType": "address"
},
{
"name": "issuerStablecoin",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "InvalidTargetValues",
"inputs": [
{
"name": "feeTarget",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feePlusRedemptionTarget",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "totalTarget",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "InvalidYieldMultiplier",
"inputs": [
{
"name": "multiplier",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ManagementFeeTooHigh",
"inputs": [
{
"name": "fee",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "MustPostSequentially",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expectedDay",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "NotInitializing",
"inputs": []
},
{
"type": "error",
"name": "NotIssuerAdmin",
"inputs": []
},
{
"type": "error",
"name": "OutOfBounds",
"inputs": []
},
{
"type": "error",
"name": "QueueEmpty",
"inputs": []
},
{
"type": "error",
"name": "QueueFull",
"inputs": []
},
{
"type": "error",
"name": "RWANotWhitelisted",
"inputs": []
},
{
"type": "error",
"name": "RateAlreadyPosted",
"inputs": [
{
"name": "dayNumber",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "RateTooHigh",
"inputs": [
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxRate",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ReentrancyGuardReentrantCall",
"inputs": []
},
{
"type": "error",
"name": "SafeERC20FailedOperation",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "SetRWACustodyAddress",
"inputs": []
},
{
"type": "error",
"name": "SetStablecoinCustodyAddress",
"inputs": []
},
{
"type": "error",
"name": "StablecoinNotWhitelisted",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "UUPSUnauthorizedCallContext",
"inputs": []
},
{
"type": "error",
"name": "UUPSUnsupportedProxiableUUID",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "ZeroAddressNotAllowed",
"inputs": []
}
]
UniformLabsDelegateV2
Production balance-sheet stablecoin delegate implementation. Its inherited ABI includes custody and whitelist reads, LP-admin configuration, settlement entrypoints, pause controls, and UUPS administration.UniformLabsDelegateV2 ABI
UniformLabsDelegateV2 ABI
UniformLabsDelegateV2.json
[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "MULTILIQUID_SWAP_CONTRACT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "PAUSE_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "UPGRADE_INTERFACE_VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "addIssuerAdmin",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addRWAColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addStablecoinColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceSheetCustodyAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "blacklist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "deployStablecoin",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeRWAs",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeStablecoins",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getRWAColdStorageAddresses",
"inputs": [],
"outputs": [
{
"name": "addresses",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMember",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMemberCount",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMembers",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getStablecoinColdStorageAddresses",
"inputs": [],
"outputs": [
{
"name": "addresses",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "grantRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "multiliquidAdmin",
"type": "address",
"internalType": "address"
},
{
"name": "initialIssuerAdmin",
"type": "address",
"internalType": "address"
},
{
"name": "_multiliquidSwap",
"type": "address",
"internalType": "address"
},
{
"name": "_stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_stablecoinAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "issuerAdmins",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "multiliquidSwap",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "pauseMultiliquid",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "proxiableUUID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "receiveStablecoin",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegate.DelegateParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "lpFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "assetOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "assetOutAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeIssuerAdmin",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeRWAColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeStablecoinColdStorageAddress",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "revokeRole",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "rwaWhitelist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "setAutoLiquidityStablecoinID",
"inputs": [
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setBlacklist",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "isBlacklisted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWACustodyAddress",
"inputs": [
{
"name": "_balanceSheetCustodyAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWADiscountRate",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setRWARedemptionFee",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinAcceptanceFee",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinCustodyAddress",
"inputs": [
{
"name": "_stablecoinCustodyAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinRedemptionFee",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "stablecoinAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinCustodyAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stablecoinWhitelist",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "unpause",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unpauseMultiliquid",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "upgradeToAndCall",
"inputs": [
{
"name": "newImplementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "whitelistRWA",
"inputs": [
{
"name": "rwa",
"type": "address",
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "whitelistStablecoin",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "withdrawStablecoin",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "AutoLiquidityStablecoinIDSet",
"inputs": [
{
"name": "autoLiquidityStablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BlacklistUpdated",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "blacklisted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"type": "event",
"name": "IssuerAdminAdded",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "IssuerAdminRemoved",
"inputs": [
{
"name": "issuerAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAColdStorageAddressAdded",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAColdStorageAddressRemoved",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWACustodyAddressSet",
"inputs": [
{
"name": "balanceSheetCustodyAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWADiscountRateSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RWAWhitelist",
"inputs": [
{
"name": "rwa",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RedemptionFeeSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleAdminChanged",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinAcceptanceFeeSet",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinColdStorageAddressAdded",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinColdStorageAddressRemoved",
"inputs": [
{
"name": "coldStorageAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinCustodyAddressSet",
"inputs": [
{
"name": "stablecoinCustodyAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinRedemptionFeeSet",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rate",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinWhitelist",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "accepted",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinWithdrawn",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Upgraded",
"inputs": [
{
"name": "implementation",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "error",
"name": "AccessControlBadConfirmation",
"inputs": []
},
{
"type": "error",
"name": "AccessControlUnauthorizedAccount",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "AddressBlacklisted",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AddressEmptyCode",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "AddressNotAllowed",
"inputs": []
},
{
"type": "error",
"name": "CannotRemoveSelf",
"inputs": []
},
{
"type": "error",
"name": "ERC1967InvalidImplementation",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1967NonPayable",
"inputs": []
},
{
"type": "error",
"name": "EnforcedPause",
"inputs": []
},
{
"type": "error",
"name": "ExpectedPause",
"inputs": []
},
{
"type": "error",
"name": "FailedCall",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitializationParams",
"inputs": []
},
{
"type": "error",
"name": "InvalidIssuerAdmin",
"inputs": []
},
{
"type": "error",
"name": "InvalidMultiliquidSwap",
"inputs": []
},
{
"type": "error",
"name": "InvalidRate",
"inputs": []
},
{
"type": "error",
"name": "InvalidStablecoinAsset",
"inputs": [
{
"name": "asset",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "InvalidStablecoinExchange",
"inputs": [
{
"name": "assetIn",
"type": "address",
"internalType": "address"
},
{
"name": "assetOut",
"type": "address",
"internalType": "address"
},
{
"name": "issuerStablecoin",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "NotInitializing",
"inputs": []
},
{
"type": "error",
"name": "NotIssuerAdmin",
"inputs": []
},
{
"type": "error",
"name": "RWANotWhitelisted",
"inputs": []
},
{
"type": "error",
"name": "ReentrancyGuardReentrantCall",
"inputs": []
},
{
"type": "error",
"name": "SafeERC20FailedOperation",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "SetRWACustodyAddress",
"inputs": []
},
{
"type": "error",
"name": "SetStablecoinCustodyAddress",
"inputs": []
},
{
"type": "error",
"name": "StablecoinNotWhitelisted",
"inputs": [
{
"name": "stablecoin",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "UUPSUnauthorizedCallContext",
"inputs": []
},
{
"type": "error",
"name": "UUPSUnsupportedProxiableUUID",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "ZeroAddressNotAllowed",
"inputs": []
}
]
IPriceAdapter
Common read interface implemented by Multiliquid RWA and stablecoin price adapters.IPriceAdapter ABI
IPriceAdapter ABI
IPriceAdapter.json
[
{
"type": "function",
"name": "getPrice",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
}
]
IWhitelistAdapter
Common compliance interface used to validate an asset transfer from one address to another for a specified amount.IWhitelistAdapter ABI
IWhitelistAdapter ABI
IWhitelistAdapter.json
[
{
"type": "function",
"name": "isWhitelisted",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "whitelisted",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
}
]
SDK ABI Exports
The v0.2.0 TypeScript SDK exposes const-asserted ABIs optimized for integration:| Export | Surface |
|---|---|
multiliquidSwapAbi | Swap, quote, authorization, protocol reads, events, and errors |
stablecoinDelegateBaseAbi | Delegate discovery and LP-administration methods |
balanceSheetDelegateAbi | Balance-sheet delegate settlement methods |
yieldBearingDelegateAbi | Yield calculations and accrual methods |
treasuryDelegateAbi | Treasury credit, rate, and yield-accounting reads |
priceAdapterAbi | Standard getPrice() interface |
whitelistAdapterAbi | Standard isWhitelisted(from, to, amount) interface |
erc20Abi | ERC-20 metadata, balances, allowances, approvals, and transfers |
import {
multiliquidSwapAbi,
priceAdapterAbi,
stablecoinDelegateBaseAbi,
treasuryDelegateAbi,
whitelistAdapterAbi,
} from "@uniformlabs/multiliquid-evm-sdk";
viem Example
import {
multiliquidSwapAbi,
type SwapInputs,
} from "@uniformlabs/multiliquid-evm-sdk";
const quote = await publicClient.readContract({
address: multiliquidSwapAddress,
abi: multiliquidSwapAbi,
functionName: "quoteSwap",
args: [userAddress, input satisfies SwapInputs],
});