{ "_format": "hh-sol-artifact-1", "contractName": "IReserveSystem", "sourceName": "contracts/reserve/IReserveSystem.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sourceAsset", "type": "address" }, { "indexed": true, "internalType": "address", "name": "targetAsset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "sourceAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "targetAmount", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "conversionId", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "fees", "type": "uint256" } ], "name": "ConversionExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "PriceFeedUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "redemptionId", "type": "bytes32" } ], "name": "RedemptionExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "depositor", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "reserveId", "type": "bytes32" } ], "name": "ReserveDeposited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "reserveId", "type": "bytes32" } ], "name": "ReserveWithdrawn", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "sourceAsset", "type": "address" }, { "internalType": "address", "name": "targetAsset", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "calculateConversion", "outputs": [ { "internalType": "uint256", "name": "targetAmount", "type": "uint256" }, { "internalType": "uint256", "name": "fees", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sourceAsset", "type": "address" }, { "internalType": "address", "name": "targetAsset", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "convertAssets", "outputs": [ { "internalType": "bytes32", "name": "conversionId", "type": "bytes32" }, { "internalType": "uint256", "name": "targetAmount", "type": "uint256" }, { "internalType": "uint256", "name": "fees", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "depositReserve", "outputs": [ { "internalType": "bytes32", "name": "reserveId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sourceAsset", "type": "address" }, { "internalType": "address", "name": "targetAsset", "type": "address" } ], "name": "getConversionPrice", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "getReserveBalance", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "reserveId", "type": "bytes32" } ], "name": "getReserveById", "outputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "bytes32", "name": "redemptionId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "updatePriceFeed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "withdrawReserve", "outputs": [ { "internalType": "bytes32", "name": "reserveId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "linkReferences": {}, "deployedLinkReferences": {} }