Each code block includes a built-in copy button. Click the copy icon in the top-right corner to copy the full ABI to your clipboard.
MultiliquidSwap
Primary swap orchestrator. Handles all swap operations between RWAs and stablecoins, fee tier configuration, and asset registration.MultiliquidSwap ABI
MultiliquidSwap ABI
MultiliquidSwap.json
Copy
Ask AI
[
{
"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": "DEPRECATED_MAPPING",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "blacklistedByRWA",
"type": "bool",
"internalType": "bool"
},
{
"name": "blacklistedByStablecoin",
"type": "bool",
"internalType": "bool"
}
],
"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": "blacklisted",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapIntoRWA",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stableAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "rwaAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapIntoRWAExactOut",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "exactRWAOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "stablecoinRequired",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapIntoStablecoin",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaAmt",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "stableAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapIntoStablecoinExactOut",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "exactStablecoinOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "rwaRequired",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapRWAToRWA",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "exactOut",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [
{
"name": "outputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.RWAToRWAReturnParams",
"components": [
{
"name": "rwaInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateSwapStablecoinToStablecoin",
"inputs": [
{
"name": "exactOut",
"type": "bool",
"internalType": "bool"
},
{
"name": "useDelegateForStablecoinOut",
"type": "bool",
"internalType": "bool"
},
{
"name": "stablecoinInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "outputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.StablecoinToStablecoinReturnParams",
"components": [
{
"name": "stablecoinInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "acceptanceFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"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": "feeTiers",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "maxVolume",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "fee",
"type": "uint128",
"internalType": "uint128"
}
],
"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": "multiliquidVault",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"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": "proxiableUUID",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"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": "setBlacklisted",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "_blacklisted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMultiliquidFees",
"inputs": [
{
"name": "_feeTiers",
"type": "tuple[]",
"internalType": "struct MultiliquidSwap.FeeTier[]",
"components": [
{
"name": "maxVolume",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "fee",
"type": "uint128",
"internalType": "uint128"
}
]
}
],
"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": "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": "setStablecoinAcceptanceForSwap",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_assetAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_accepted",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinGuardrailBand",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "band",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinGuardrailEnabled",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "enabled",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStablecoinPriceAdapter",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"internalType": "address"
}
],
"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": "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": "swapIntoRWA",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapIntoRWAInputs",
"components": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapIntoRWAExactOut",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapIntoRWAInputs",
"components": [
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapIntoStablecoin",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapIntoStablecoinInputs",
"components": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapIntoStablecoinExactOut",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapIntoStablecoinInputs",
"components": [
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapRWAToRWA",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapRWAToRWAInputs",
"components": [
{
"name": "exactOut",
"type": "bool",
"internalType": "bool"
},
{
"name": "stablecoinID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapStablecoinToStablecoin",
"inputs": [
{
"name": "inputs",
"type": "tuple",
"internalType": "struct IMultiliquidSwap.SwapStablecoinToStablecoinInputs",
"components": [
{
"name": "exactOut",
"type": "bool",
"internalType": "bool"
},
{
"name": "useDelegateForStablecoinOut",
"type": "bool",
"internalType": "bool"
},
{
"name": "stablecoinInID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinOutID",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "stablecoinOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [],
"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": "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": "MultiliquidFeeSet",
"inputs": [
{
"name": "fee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MultiliquidFeeTiersSet",
"inputs": [
{
"name": "feeTiers",
"type": "tuple[]",
"indexed": false,
"internalType": "struct MultiliquidSwap.FeeTier[]",
"components": [
{
"name": "maxVolume",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "fee",
"type": "uint128",
"internalType": "uint128"
}
]
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"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": "RWAToRWASwap",
"inputs": [
{
"name": "rwaInID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rwaOutID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "rwaInAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "rwaInMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "rwaOutMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"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": "RwaWhitelistAdapterSet",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "adapter",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "StablecoinGuardrailBandSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "band",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinGuardrailEnabledSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "enabled",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinPriceAdapterSet",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "StablecoinToStablecoinSwap",
"inputs": [
{
"name": "stablecoinInID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinOutID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "stablecoinInAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "acceptanceFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinInMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "stablecoinOutMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapIntoRWA",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rwaAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapIntoRWAExactOut",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rwaAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapIntoStablecoin",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "stablecoinAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "rwaAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwapIntoStablecoinExactOut",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "stablecoinAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "rwaAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeAmt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "stablecoinMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
},
{
"name": "rwaMetadata",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "UpdateRWAUSDValue",
"inputs": [
{
"name": "rwaID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "priceAdapter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "UpdateStablecoinUSDValue",
"inputs": [
{
"name": "stablecoinID",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"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": "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": "IdenticalRWAs",
"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": "InvalidAdmin",
"inputs": []
},
{
"type": "error",
"name": "InvalidAssetAddress",
"inputs": []
},
{
"type": "error",
"name": "InvalidBpsFee",
"inputs": []
},
{
"type": "error",
"name": "InvalidDelegate",
"inputs": []
},
{
"type": "error",
"name": "InvalidFeeTiers",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "InvalidRate",
"inputs": []
},
{
"type": "error",
"name": "NotInitializing",
"inputs": []
},
{
"type": "error",
"name": "NotRWADelegate",
"inputs": []
},
{
"type": "error",
"name": "NotStablecoinDelegate",
"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": "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"
}
]
}
]
LiquidTreasury
Institutional treasury token with modular bridge support, role-based access control, whitelist/blacklist enforcement, and EIP-2612 permit support.LiquidTreasury ABI
LiquidTreasury ABI
LiquidTreasury.json
Copy
Ask AI
[
{
"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": "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": []
}
]
TreasuryYieldDelegate
Yield delegate for LiquidTreasury. Manages stablecoin deployment, redemption, RWA exchange operations, and issuer admin controls.TreasuryYieldDelegate ABI
TreasuryYieldDelegate ABI
TreasuryYieldDelegate.json
Copy
Ask AI
[
{
"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"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "accrueInterestPaged",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "maxDays",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "daysAccrued",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "isComplete",
"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 IStablecoinDelegateV2.DeployStablecoinParams",
"components": [
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "userAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "metadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeRWAs",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegateV2.ExchangeRWAsParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeStablecoins",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegateV2.ExchangeStablecoinsParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "acceptanceFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "stablecoinInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "stablecoinOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"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": "yieldScaledAmount",
"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": "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 IStablecoinDelegateV2.ReceiveStablecoinParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "totalAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "metadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"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": "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": "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": "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": "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": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [],
"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": "Unpaused",
"inputs": [],
"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": "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": "InvalidInitialization",
"inputs": []
},
{
"type": "error",
"name": "InvalidInitializationParams",
"inputs": []
},
{
"type": "error",
"name": "InvalidIssuerAdmin",
"inputs": []
},
{
"type": "error",
"name": "InvalidRate",
"inputs": []
},
{
"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": "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": []
}
]
UniformLabsDelegate
USDC-based Stablecoin delegate operated by Uniform Labs. Handles minting/burning, RWA whitelisting, discount rates, and redemption fee configuration.UniformLabsDelegate ABI
UniformLabsDelegate ABI
UniformLabsDelegate.json
Copy
Ask AI
[
{
"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": "balanceSheetCustodyAddress",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "deployStablecoin",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegateV2.DeployStablecoinParams",
"components": [
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "userAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "metadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeRWAs",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegateV2.ExchangeRWAsParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "rwaOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "exchangeStablecoins",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct IStablecoinDelegateV2.ExchangeStablecoinsParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "acceptanceFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinInAddress",
"type": "address",
"internalType": "address"
},
{
"name": "stablecoinInAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinOutAddress",
"type": "address",
"internalType": "address"
},
{
"name": "stablecoinOutAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "stablecoinInMetadata",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "stablecoinOutMetadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"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": "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 IStablecoinDelegateV2.ReceiveStablecoinParams",
"components": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "totalAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vault",
"type": "address",
"internalType": "address"
},
{
"name": "protocolFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "redemptionFeeAmt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rwaAddress",
"type": "address",
"internalType": "address"
},
{
"name": "rwaAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "metadata",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"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": "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": "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": "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": "Paused",
"inputs": [],
"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": "StablecoinCustodyAddressSet",
"inputs": [
{
"name": "stablecoinCustodyAddress",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StablecoinDeposited",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"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": "Unpaused",
"inputs": [],
"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": "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": "InvalidRate",
"inputs": []
},
{
"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": []
}
]
Usage
Load an ABI in your integration code by importing the JSON file directly:ethers.js
Copy
Ask AI
import { ethers } from "ethers";
import MultiliquidSwapABI from "./abis/MultiliquidSwap.json";
const provider = new ethers.JsonRpcProvider(RPC_URL);
const signer = await provider.getSigner();
const multiliquidSwap = new ethers.Contract(
MULTILIQUID_SWAP_ADDRESS,
MultiliquidSwapABI,
signer
);
viem
Copy
Ask AI
import { getContract } from "viem";
import MultiliquidSwapABI from "./abis/MultiliquidSwap.json";
const contract = getContract({
address: MULTILIQUID_SWAP_ADDRESS,
abi: MultiliquidSwapABI,
client: walletClient,
});
For contract addresses and Asset IDs, see the Deployments page.