From 1865cc2e762c9ef12ce4d3f6d7d45446c755277e Mon Sep 17 00:00:00 2001 From: synthetix-team Date: Fri, 5 Apr 2024 13:15:17 +0000 Subject: [PATCH] [NEXT] 10-main DO NOT MERGE! --- 10-main/AllErrors.json | 184 +- 10-main/AllErrors.readable.json | 18 +- 10-main/CoreProxy.json | 311 +- 10-main/CoreProxy.readable.json | 23 +- 10-main/OracleManagerProxy.json | 14 + 10-main/OracleManagerProxy.readable.json | 1 + 10-main/SpotMarketProxy.json | 250 +- 10-main/SpotMarketProxy.readable.json | 28 +- 10-main/TrustedMulticallForwarder.json | 798 +++ .../TrustedMulticallForwarder.readable.json | 36 + 10-main/cannon.json | 5380 +++++++++-------- 10-main/extras.json | 5 +- 10-main/meta.json | 6 +- 13 files changed, 4375 insertions(+), 2679 deletions(-) create mode 100644 10-main/TrustedMulticallForwarder.json create mode 100644 10-main/TrustedMulticallForwarder.readable.json diff --git a/10-main/AllErrors.json b/10-main/AllErrors.json index 9ddbe756d2..fc023399c7 100644 --- a/10-main/AllErrors.json +++ b/10-main/AllErrors.json @@ -536,24 +536,6 @@ } ] }, - { - "type": "error", - "name": "DeniedMulticallTarget", - "inputs": [ - { - "type": "address" - } - ] - }, - { - "type": "error", - "name": "RecursiveMulticall", - "inputs": [ - { - "type": "address" - } - ] - }, { "type": "error", "name": "CapacityLocked", @@ -618,6 +600,16 @@ } ] }, + { + "type": "error", + "name": "InsufficientAccountCollateral", + "inputs": [ + { + "type": "uint256", + "name": "requestedAmount" + } + ] + }, { "type": "error", "name": "InsufficientDelegation", @@ -807,6 +799,20 @@ } ] }, + { + "type": "error", + "name": "OracleDataRequired", + "inputs": [ + { + "type": "address", + "name": "oracleContract" + }, + { + "type": "bytes", + "name": "oracleQuery" + } + ] + }, { "type": "error", "name": "OverflowInt56ToInt24", @@ -847,6 +853,102 @@ } ] }, + { + "type": "error", + "name": "AddressInsufficientBalance", + "inputs": [ + { + "type": "address", + "name": "account" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderExpiredRequest", + "inputs": [ + { + "type": "uint48", + "name": "deadline" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderInvalidSigner", + "inputs": [ + { + "type": "address", + "name": "signer" + }, + { + "type": "address", + "name": "from" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderMismatchedValue", + "inputs": [ + { + "type": "uint256", + "name": "requestedValue" + }, + { + "type": "uint256", + "name": "msgValue" + } + ] + }, + { + "type": "error", + "name": "ERC2771UntrustfulTarget", + "inputs": [ + { + "type": "address", + "name": "target" + }, + { + "type": "address", + "name": "forwarder" + } + ] + }, + { + "type": "error", + "name": "FailedInnerCall", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidAccountNonce", + "inputs": [ + { + "type": "address", + "name": "account" + }, + { + "type": "uint256", + "name": "currentNonce" + } + ] + }, + { + "type": "error", + "name": "InvalidShortString", + "inputs": [] + }, + { + "type": "error", + "name": "StringTooLong", + "inputs": [ + { + "type": "string", + "name": "str" + } + ] + }, { "type": "error", "name": "InvalidMarketOwner", @@ -1048,32 +1150,6 @@ } ] }, - { - "type": "error", - "name": "OffchainLookup", - "inputs": [ - { - "type": "address", - "name": "sender" - }, - { - "type": "string[]", - "name": "urls" - }, - { - "type": "bytes", - "name": "callData" - }, - { - "type": "bytes4", - "name": "callbackFunction" - }, - { - "type": "bytes", - "name": "extraData" - } - ] - }, { "type": "error", "name": "OutsideSettlementWindow", @@ -1094,25 +1170,21 @@ }, { "type": "error", - "name": "PriceDeviationToleranceExceeded", + "name": "SettlementStrategyNotFound", "inputs": [ { - "type": "uint256", - "name": "deviation" - }, - { - "type": "uint256", - "name": "tolerance" + "type": "uint8", + "name": "strategyType" } ] }, { "type": "error", - "name": "SettlementStrategyNotFound", + "name": "InvalidSettlementWindowDuration", "inputs": [ { - "type": "uint8", - "name": "strategyType" + "type": "uint256", + "name": "duration" } ] }, @@ -1121,8 +1193,8 @@ "name": "InvalidCollateralType", "inputs": [ { - "type": "bytes32", - "name": "message" + "type": "address", + "name": "configuredCollateralType" } ] }, diff --git a/10-main/AllErrors.readable.json b/10-main/AllErrors.readable.json index 0d96499ad1..b93613134f 100644 --- a/10-main/AllErrors.readable.json +++ b/10-main/AllErrors.readable.json @@ -52,8 +52,6 @@ "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", "error IncorrectMarketInterface(address market)", "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", "error CapacityLocked(uint256 marketId)", "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)", "error PoolAlreadyExists(uint128 poolId)", @@ -62,6 +60,7 @@ "error OverflowUint64ToInt64()", "error RewardDistributorNotFound()", "error RewardUnavailable(address distributor)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -79,12 +78,22 @@ "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", "error InvalidPrice(int256 price)", "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", "error OverflowInt56ToInt24()", "error OverflowUint256ToUint160()", "error OverflowUint56ToInt56()", "error StalenessToleranceExceeded()", "error UnprocessableNode(bytes32 nodeId)", "error UnsupportedOperation(uint8 operation)", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", "error InvalidMarketOwner()", "error InvalidSynthImplementation(uint256 synthImplementation)", "error OnlyMarketOwner(address marketOwner, address sender)", @@ -103,11 +112,10 @@ "error InvalidSettlementStrategy(uint8 strategyType)", "error InvalidVerificationResponse()", "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", - "error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)", "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", - "error PriceDeviationToleranceExceeded(uint256 deviation, uint256 tolerance)", "error SettlementStrategyNotFound(uint8 strategyType)", - "error InvalidCollateralType(bytes32 message)", + "error InvalidSettlementWindowDuration(uint256 duration)", + "error InvalidCollateralType(address configuredCollateralType)", "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", "error InvalidCollateralLeverage(uint256)", "error InvalidFeeCollectorInterface(address invalidFeeCollector)", diff --git a/10-main/CoreProxy.json b/10-main/CoreProxy.json index dfc5bd1d76..8d782c4e55 100644 --- a/10-main/CoreProxy.json +++ b/10-main/CoreProxy.json @@ -2403,6 +2403,26 @@ "type": "address", "name": "sender", "indexed": true + }, + { + "type": "int128", + "name": "creditCapacity", + "indexed": false + }, + { + "type": "int128", + "name": "netIssuance", + "indexed": false + }, + { + "type": "uint256", + "name": "depositedCollateralValue", + "indexed": false + }, + { + "type": "uint256", + "name": "reportedDebt", + "indexed": false } ] }, @@ -2430,6 +2450,26 @@ "type": "address", "name": "sender", "indexed": true + }, + { + "type": "int128", + "name": "creditCapacity", + "indexed": false + }, + { + "type": "int128", + "name": "netIssuance", + "indexed": false + }, + { + "type": "uint256", + "name": "depositedCollateralValue", + "indexed": false + }, + { + "type": "uint256", + "name": "reportedDebt", + "indexed": false } ] }, @@ -2673,6 +2713,26 @@ "type": "address", "name": "market", "indexed": true + }, + { + "type": "int128", + "name": "creditCapacity", + "indexed": false + }, + { + "type": "int128", + "name": "netIssuance", + "indexed": false + }, + { + "type": "uint256", + "name": "depositedCollateralValue", + "indexed": false + }, + { + "type": "uint256", + "name": "reportedDebt", + "indexed": false } ] }, @@ -2700,6 +2760,26 @@ "type": "address", "name": "market", "indexed": true + }, + { + "type": "int128", + "name": "creditCapacity", + "indexed": false + }, + { + "type": "int128", + "name": "netIssuance", + "indexed": false + }, + { + "type": "uint256", + "name": "depositedCollateralValue", + "indexed": false + }, + { + "type": "uint256", + "name": "reportedDebt", + "indexed": false } ] }, @@ -3145,99 +3225,6 @@ } ] }, - { - "type": "error", - "name": "DeniedMulticallTarget", - "inputs": [ - { - "type": "address" - } - ] - }, - { - "type": "error", - "name": "RecursiveMulticall", - "inputs": [ - { - "type": "address" - } - ] - }, - { - "type": "function", - "name": "getMessageSender", - "constant": true, - "stateMutability": "view", - "payable": false, - "inputs": [], - "outputs": [ - { - "type": "address" - } - ] - }, - { - "type": "function", - "name": "multicall", - "constant": false, - "payable": false, - "inputs": [ - { - "type": "bytes[]", - "name": "data" - } - ], - "outputs": [ - { - "type": "bytes[]", - "name": "results" - } - ] - }, - { - "type": "function", - "name": "multicallThrough", - "constant": false, - "stateMutability": "payable", - "payable": true, - "inputs": [ - { - "type": "address[]", - "name": "to" - }, - { - "type": "bytes[]", - "name": "data" - }, - { - "type": "uint256[]", - "name": "values" - } - ], - "outputs": [ - { - "type": "bytes[]", - "name": "results" - } - ] - }, - { - "type": "function", - "name": "setAllowlistedMulticallTarget", - "constant": false, - "payable": false, - "inputs": [ - { - "type": "address", - "name": "target" - }, - { - "type": "bool", - "name": "allowlisted" - } - ], - "outputs": [] - }, { "type": "event", "anonymous": false, @@ -3575,6 +3562,23 @@ } ] }, + { + "type": "event", + "anonymous": false, + "name": "PoolOwnershipRenounced", + "inputs": [ + { + "type": "uint128", + "name": "poolId", + "indexed": true + }, + { + "type": "address", + "name": "owner", + "indexed": true + } + ] + }, { "type": "event", "anonymous": false, @@ -3648,6 +3652,39 @@ } ] }, + { + "type": "function", + "name": "getPoolCollateralConfiguration", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "uint128", + "name": "poolId" + }, + { + "type": "address", + "name": "collateralType" + } + ], + "outputs": [ + { + "type": "tuple", + "name": "config", + "components": [ + { + "type": "uint256", + "name": "collateralLimitD18" + }, + { + "type": "uint256", + "name": "issuanceRatioD18" + } + ] + } + ] + }, { "type": "function", "name": "getPoolCollateralIssuanceRatio", @@ -3786,6 +3823,19 @@ ], "outputs": [] }, + { + "type": "function", + "name": "renouncePoolOwnership", + "constant": false, + "payable": false, + "inputs": [ + { + "type": "uint128", + "name": "poolId" + } + ], + "outputs": [] + }, { "type": "function", "name": "revokePoolNomination", @@ -4109,6 +4159,36 @@ ], "outputs": [] }, + { + "type": "function", + "name": "getAvailableRewards", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "uint128", + "name": "accountId" + }, + { + "type": "uint128", + "name": "poolId" + }, + { + "type": "address", + "name": "collateralType" + }, + { + "type": "address", + "name": "distributor" + } + ], + "outputs": [ + { + "type": "uint256" + } + ] + }, { "type": "function", "name": "getRewardRate", @@ -4304,6 +4384,37 @@ } ] }, + { + "type": "function", + "name": "getTrustedForwarder", + "constant": true, + "stateMutability": "pure", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "address" + } + ] + }, + { + "type": "function", + "name": "isTrustedForwarder", + "constant": true, + "stateMutability": "pure", + "payable": false, + "inputs": [ + { + "type": "address", + "name": "forwarder" + } + ], + "outputs": [ + { + "type": "bool" + } + ] + }, { "type": "function", "name": "setConfig", @@ -4361,6 +4472,16 @@ } ] }, + { + "type": "error", + "name": "InsufficientAccountCollateral", + "inputs": [ + { + "type": "uint256", + "name": "requestedAmount" + } + ] + }, { "type": "error", "name": "InsufficientDelegation", @@ -4536,10 +4657,6 @@ { "type": "uint256", "name": "amount" - }, - { - "type": "uint256", - "name": "value" } ] }, diff --git a/10-main/CoreProxy.readable.json b/10-main/CoreProxy.readable.json index bb8d2b589f..a2bdafffd1 100644 --- a/10-main/CoreProxy.readable.json +++ b/10-main/CoreProxy.readable.json @@ -128,8 +128,8 @@ "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)", "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)", "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -141,8 +141,8 @@ "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -166,12 +166,6 @@ "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)", "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)", "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)", "event PoolApprovedAdded(uint256 poolId)", "event PoolApprovedRemoved(uint256 poolId)", "event PreferredPoolSet(uint256 poolId)", @@ -192,11 +186,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -204,6 +200,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -221,6 +218,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -231,9 +229,12 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -241,7 +242,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", diff --git a/10-main/OracleManagerProxy.json b/10-main/OracleManagerProxy.json index 5f3e4ef18c..5704daf3d2 100644 --- a/10-main/OracleManagerProxy.json +++ b/10-main/OracleManagerProxy.json @@ -267,6 +267,20 @@ } ] }, + { + "type": "error", + "name": "OracleDataRequired", + "inputs": [ + { + "type": "address", + "name": "oracleContract" + }, + { + "type": "bytes", + "name": "oracleQuery" + } + ] + }, { "type": "error", "name": "OverflowInt256ToUint256", diff --git a/10-main/OracleManagerProxy.readable.json b/10-main/OracleManagerProxy.readable.json index fe5b7e3f9c..3b3372c58f 100644 --- a/10-main/OracleManagerProxy.readable.json +++ b/10-main/OracleManagerProxy.readable.json @@ -23,6 +23,7 @@ "error InvalidParameter(string parameter, string reason)", "error InvalidPrice(int256 price)", "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", "error OverflowInt256ToUint256()", "error OverflowInt56ToInt24()", "error OverflowUint256ToInt256()", diff --git a/10-main/SpotMarketProxy.json b/10-main/SpotMarketProxy.json index 8f552f5675..7304f29602 100644 --- a/10-main/SpotMarketProxy.json +++ b/10-main/SpotMarketProxy.json @@ -415,6 +415,11 @@ "type": "bytes32", "name": "sellFeedId", "indexed": true + }, + { + "type": "uint256", + "name": "strictStalenessTolerance", + "indexed": false } ] }, @@ -830,6 +835,10 @@ { "type": "bytes32", "name": "sellFeedId" + }, + { + "type": "uint256", + "name": "strictPriceStalenessTolerance" } ], "outputs": [] @@ -1189,6 +1198,10 @@ { "type": "uint256", "name": "usdAmount" + }, + { + "type": "uint8", + "name": "stalenessTolerance" } ], "outputs": [ @@ -1234,6 +1247,10 @@ { "type": "uint256", "name": "synthAmount" + }, + { + "type": "uint8", + "name": "stalenessTolerance" } ], "outputs": [ @@ -1279,6 +1296,10 @@ { "type": "uint256", "name": "synthAmount" + }, + { + "type": "uint8", + "name": "stalenessTolerance" } ], "outputs": [ @@ -1324,6 +1345,10 @@ { "type": "uint256", "name": "usdAmount" + }, + { + "type": "uint8", + "name": "stalenessTolerance" } ], "outputs": [ @@ -1639,7 +1664,7 @@ }, { "type": "uint256", - "name": "settlementTime" + "name": "commitmentTime" }, { "type": "uint256", @@ -1774,7 +1799,7 @@ }, { "type": "uint256", - "name": "settlementTime" + "name": "commitmentTime" }, { "type": "uint256", @@ -1835,7 +1860,7 @@ }, { "type": "uint256", - "name": "settlementTime" + "name": "commitmentTime" }, { "type": "uint256", @@ -1882,32 +1907,6 @@ } ] }, - { - "type": "error", - "name": "OffchainLookup", - "inputs": [ - { - "type": "address", - "name": "sender" - }, - { - "type": "string[]", - "name": "urls" - }, - { - "type": "bytes", - "name": "callData" - }, - { - "type": "bytes4", - "name": "callbackFunction" - }, - { - "type": "bytes", - "name": "extraData" - } - ] - }, { "type": "error", "name": "OutsideSettlementWindow", @@ -1931,20 +1930,6 @@ "name": "OverflowUint256ToUint64", "inputs": [] }, - { - "type": "error", - "name": "PriceDeviationToleranceExceeded", - "inputs": [ - { - "type": "uint256", - "name": "deviation" - }, - { - "type": "uint256", - "name": "tolerance" - } - ] - }, { "type": "error", "name": "SettlementStrategyNotFound", @@ -2020,19 +2005,6 @@ } ] }, - { - "type": "function", - "name": "PRECISION", - "constant": true, - "stateMutability": "view", - "payable": false, - "inputs": [], - "outputs": [ - { - "type": "int256" - } - ] - }, { "type": "function", "name": "settleOrder", @@ -2078,47 +2050,12 @@ ] }, { - "type": "function", - "name": "settlePythOrder", - "constant": false, - "stateMutability": "payable", - "payable": true, + "type": "error", + "name": "InvalidSettlementWindowDuration", "inputs": [ - { - "type": "bytes", - "name": "result" - }, - { - "type": "bytes", - "name": "extraData" - } - ], - "outputs": [ { "type": "uint256", - "name": "finalOrderAmount" - }, - { - "type": "tuple", - "name": "fees", - "components": [ - { - "type": "uint256", - "name": "fixedFees" - }, - { - "type": "uint256", - "name": "utilizationFees" - }, - { - "type": "int256", - "name": "skewFees" - }, - { - "type": "int256", - "name": "wrapperFees" - } - ] + "name": "duration" } ] }, @@ -2142,7 +2079,7 @@ { "type": "event", "anonymous": false, - "name": "SettlementStrategyUpdated", + "name": "SettlementStrategySet", "inputs": [ { "type": "uint128", @@ -2155,9 +2092,55 @@ "indexed": true }, { - "type": "bool", - "name": "enabled", - "indexed": false + "type": "tuple", + "name": "strategy", + "indexed": false, + "components": [ + { + "type": "uint8", + "name": "strategyType" + }, + { + "type": "uint256", + "name": "settlementDelay" + }, + { + "type": "uint256", + "name": "settlementWindowDuration" + }, + { + "type": "address", + "name": "priceVerificationContract" + }, + { + "type": "bytes32", + "name": "feedId" + }, + { + "type": "string", + "name": "url" + }, + { + "type": "uint256", + "name": "settlementReward" + }, + { + "type": "uint256", + "name": "priceDeviationTolerance" + }, + { + "type": "uint256", + "name": "minimumUsdExchangeAmount" + }, + { + "type": "uint256", + "name": "maxRoundingLoss" + }, + { + "type": "bool", + "name": "disabled" + } + ] } ] }, @@ -2298,6 +2281,73 @@ } ] }, + { + "type": "function", + "name": "setSettlementStrategy", + "constant": false, + "payable": false, + "inputs": [ + { + "type": "uint128", + "name": "marketId" + }, + { + "type": "uint256", + "name": "strategyId" + }, + { + "type": "tuple", + "name": "strategy", + "components": [ + { + "type": "uint8", + "name": "strategyType" + }, + { + "type": "uint256", + "name": "settlementDelay" + }, + { + "type": "uint256", + "name": "settlementWindowDuration" + }, + { + "type": "address", + "name": "priceVerificationContract" + }, + { + "type": "bytes32", + "name": "feedId" + }, + { + "type": "string", + "name": "url" + }, + { + "type": "uint256", + "name": "settlementReward" + }, + { + "type": "uint256", + "name": "priceDeviationTolerance" + }, + { + "type": "uint256", + "name": "minimumUsdExchangeAmount" + }, + { + "type": "uint256", + "name": "maxRoundingLoss" + }, + { + "type": "bool", + "name": "disabled" + } + ] + } + ], + "outputs": [] + }, { "type": "function", "name": "setSettlementStrategyEnabled", @@ -2342,8 +2392,8 @@ "name": "InvalidCollateralType", "inputs": [ { - "type": "bytes32", - "name": "message" + "type": "address", + "name": "configuredCollateralType" } ] }, diff --git a/10-main/SpotMarketProxy.readable.json b/10-main/SpotMarketProxy.readable.json index 1515996b18..481f80c582 100644 --- a/10-main/SpotMarketProxy.readable.json +++ b/10-main/SpotMarketProxy.readable.json @@ -31,7 +31,7 @@ "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)", "event SynthImplementationSet(address synthImplementation)", "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)", - "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId)", + "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)", "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)", "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)", "function acceptMarketOwnership(uint128 synthMarketId)", @@ -53,7 +53,7 @@ "function setSynthImplementation(address synthImplementation)", "function setSynthetix(address synthetix)", "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)", - "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId)", + "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)", "function upgradeSynthImpl(uint128 marketId)", "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", @@ -66,10 +66,10 @@ "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactIn(uint128 marketId, uint256 synthAmount) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactOut(uint128 marketId, uint256 usdAmount) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", @@ -80,30 +80,28 @@ "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)", "error InvalidSettlementStrategy(uint256 settlementStrategyId)", "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", - "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", + "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)", "function cancelOrder(uint128 marketId, uint128 asyncOrderId)", - "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", - "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", "error InvalidSettlementStrategy(uint8 strategyType)", "error InvalidVerificationResponse()", "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", - "error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)", "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", "error OverflowUint256ToUint64()", - "error PriceDeviationToleranceExceeded(uint256 deviation, uint256 tolerance)", "error SettlementStrategyNotFound(uint8 strategyType)", "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)", - "function PRECISION() view returns (int256)", "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function settlePythOrder(bytes result, bytes extraData) payable returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "error InvalidSettlementWindowDuration(uint256 duration)", "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)", - "event SettlementStrategyUpdated(uint128 indexed synthMarketId, uint256 indexed strategyId, bool enabled)", + "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)", "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)", + "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)", "error FailedTransfer(address from, address to, uint256 value)", - "error InvalidCollateralType(bytes32 message)", + "error InvalidCollateralType(address configuredCollateralType)", "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", diff --git a/10-main/TrustedMulticallForwarder.json b/10-main/TrustedMulticallForwarder.json new file mode 100644 index 0000000000..7caa24294b --- /dev/null +++ b/10-main/TrustedMulticallForwarder.json @@ -0,0 +1,798 @@ +[ + { + "type": "constructor", + "payable": false, + "inputs": [] + }, + { + "type": "error", + "name": "AddressInsufficientBalance", + "inputs": [ + { + "type": "address", + "name": "account" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderExpiredRequest", + "inputs": [ + { + "type": "uint48", + "name": "deadline" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderInvalidSigner", + "inputs": [ + { + "type": "address", + "name": "signer" + }, + { + "type": "address", + "name": "from" + } + ] + }, + { + "type": "error", + "name": "ERC2771ForwarderMismatchedValue", + "inputs": [ + { + "type": "uint256", + "name": "requestedValue" + }, + { + "type": "uint256", + "name": "msgValue" + } + ] + }, + { + "type": "error", + "name": "ERC2771UntrustfulTarget", + "inputs": [ + { + "type": "address", + "name": "target" + }, + { + "type": "address", + "name": "forwarder" + } + ] + }, + { + "type": "error", + "name": "FailedInnerCall", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidAccountNonce", + "inputs": [ + { + "type": "address", + "name": "account" + }, + { + "type": "uint256", + "name": "currentNonce" + } + ] + }, + { + "type": "error", + "name": "InvalidShortString", + "inputs": [] + }, + { + "type": "error", + "name": "StringTooLong", + "inputs": [ + { + "type": "string", + "name": "str" + } + ] + }, + { + "type": "event", + "anonymous": false, + "name": "EIP712DomainChanged", + "inputs": [] + }, + { + "type": "event", + "anonymous": false, + "name": "ExecutedForwardRequest", + "inputs": [ + { + "type": "address", + "name": "signer", + "indexed": true + }, + { + "type": "uint256", + "name": "nonce", + "indexed": false + }, + { + "type": "bool", + "name": "success", + "indexed": false + } + ] + }, + { + "type": "function", + "name": "aggregate", + "constant": false, + "payable": false, + "inputs": [ + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "uint256", + "name": "blockNumber" + }, + { + "type": "bytes[]", + "name": "returnData" + } + ] + }, + { + "type": "function", + "name": "aggregate3", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bool", + "name": "requireSuccess" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "aggregate3Value", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bool", + "name": "requireSuccess" + }, + { + "type": "uint256", + "name": "value" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "blockAndAggregate", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "uint256", + "name": "blockNumber" + }, + { + "type": "bytes32", + "name": "blockHash" + }, + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "eip712Domain", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "bytes1", + "name": "fields" + }, + { + "type": "string", + "name": "name" + }, + { + "type": "string", + "name": "version" + }, + { + "type": "uint256", + "name": "chainId" + }, + { + "type": "address", + "name": "verifyingContract" + }, + { + "type": "bytes32", + "name": "salt" + }, + { + "type": "uint256[]", + "name": "extensions" + } + ] + }, + { + "type": "function", + "name": "execute", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple", + "name": "request", + "components": [ + { + "type": "address", + "name": "from" + }, + { + "type": "address", + "name": "to" + }, + { + "type": "uint256", + "name": "value" + }, + { + "type": "uint256", + "name": "gas" + }, + { + "type": "uint48", + "name": "deadline" + }, + { + "type": "bytes", + "name": "data" + }, + { + "type": "bytes", + "name": "signature" + } + ] + } + ], + "outputs": [] + }, + { + "type": "function", + "name": "executeBatch", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple[]", + "name": "requests", + "components": [ + { + "type": "address", + "name": "from" + }, + { + "type": "address", + "name": "to" + }, + { + "type": "uint256", + "name": "value" + }, + { + "type": "uint256", + "name": "gas" + }, + { + "type": "uint48", + "name": "deadline" + }, + { + "type": "bytes", + "name": "data" + }, + { + "type": "bytes", + "name": "signature" + } + ] + } + ], + "outputs": [ + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "executeBatch", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "tuple[]", + "name": "requests", + "components": [ + { + "type": "address", + "name": "from" + }, + { + "type": "address", + "name": "to" + }, + { + "type": "uint256", + "name": "value" + }, + { + "type": "uint256", + "name": "gas" + }, + { + "type": "uint48", + "name": "deadline" + }, + { + "type": "bytes", + "name": "data" + }, + { + "type": "bytes", + "name": "signature" + } + ] + }, + { + "type": "address", + "name": "refundReceiver" + } + ], + "outputs": [] + }, + { + "type": "function", + "name": "getBasefee", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "basefee" + } + ] + }, + { + "type": "function", + "name": "getBlockHash", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "uint256", + "name": "blockNumber" + } + ], + "outputs": [ + { + "type": "bytes32", + "name": "blockHash" + } + ] + }, + { + "type": "function", + "name": "getBlockNumber", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "blockNumber" + } + ] + }, + { + "type": "function", + "name": "getChainId", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "chainid" + } + ] + }, + { + "type": "function", + "name": "getCurrentBlockCoinbase", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "address", + "name": "coinbase" + } + ] + }, + { + "type": "function", + "name": "getCurrentBlockGasLimit", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "gaslimit" + } + ] + }, + { + "type": "function", + "name": "getCurrentBlockTimestamp", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "timestamp" + } + ] + }, + { + "type": "function", + "name": "getEthBalance", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "address", + "name": "addr" + } + ], + "outputs": [ + { + "type": "uint256", + "name": "balance" + } + ] + }, + { + "type": "function", + "name": "getLastBlockHash", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "bytes32", + "name": "blockHash" + } + ] + }, + { + "type": "function", + "name": "getPrevRandao", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [], + "outputs": [ + { + "type": "uint256", + "name": "prevrandao" + } + ] + }, + { + "type": "function", + "name": "nonces", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "address", + "name": "owner" + } + ], + "outputs": [ + { + "type": "uint256" + } + ] + }, + { + "type": "function", + "name": "tryAggregate", + "constant": false, + "payable": false, + "inputs": [ + { + "type": "bool", + "name": "requireSuccess" + }, + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "tryBlockAndAggregate", + "constant": false, + "stateMutability": "payable", + "payable": true, + "inputs": [ + { + "type": "bool", + "name": "requireSuccess" + }, + { + "type": "tuple[]", + "name": "calls", + "components": [ + { + "type": "address", + "name": "target" + }, + { + "type": "bytes", + "name": "callData" + } + ] + } + ], + "outputs": [ + { + "type": "uint256", + "name": "blockNumber" + }, + { + "type": "bytes32", + "name": "blockHash" + }, + { + "type": "tuple[]", + "name": "returnData", + "components": [ + { + "type": "bool", + "name": "success" + }, + { + "type": "bytes", + "name": "returnData" + } + ] + } + ] + }, + { + "type": "function", + "name": "verify", + "constant": true, + "stateMutability": "view", + "payable": false, + "inputs": [ + { + "type": "tuple", + "name": "request", + "components": [ + { + "type": "address", + "name": "from" + }, + { + "type": "address", + "name": "to" + }, + { + "type": "uint256", + "name": "value" + }, + { + "type": "uint256", + "name": "gas" + }, + { + "type": "uint48", + "name": "deadline" + }, + { + "type": "bytes", + "name": "data" + }, + { + "type": "bytes", + "name": "signature" + } + ] + } + ], + "outputs": [ + { + "type": "bool" + } + ] + } +] \ No newline at end of file diff --git a/10-main/TrustedMulticallForwarder.readable.json b/10-main/TrustedMulticallForwarder.readable.json new file mode 100644 index 0000000000..ebe2694b58 --- /dev/null +++ b/10-main/TrustedMulticallForwarder.readable.json @@ -0,0 +1,36 @@ +[ + "constructor()", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", + "event EIP712DomainChanged()", + "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)", + "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)", + "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", + "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable", + "function getBasefee() view returns (uint256 basefee)", + "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)", + "function getBlockNumber() view returns (uint256 blockNumber)", + "function getChainId() view returns (uint256 chainid)", + "function getCurrentBlockCoinbase() view returns (address coinbase)", + "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)", + "function getCurrentBlockTimestamp() view returns (uint256 timestamp)", + "function getEthBalance(address addr) view returns (uint256 balance)", + "function getLastBlockHash() view returns (bytes32 blockHash)", + "function getPrevRandao() view returns (uint256 prevrandao)", + "function nonces(address owner) view returns (uint256)", + "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)", + "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)" +] \ No newline at end of file diff --git a/10-main/cannon.json b/10-main/cannon.json index ceaba4abc9..75735e7100 100644 --- a/10-main/cannon.json +++ b/10-main/cannon.json @@ -1,4 +1,6 @@ { + "generator": "cannon cli 2.11.24", + "timestamp": 1712322913, "def": { "setting": { "minimum_liquidity_ratio": { @@ -7,14 +9,8 @@ "account_timeout_withdraw": { "defaultValue": "86400" }, - "ccip_router": { - "defaultValue": "0x261c05167db67B2b619f9d312e0753f3721ad6E8" - }, - "ccip_token_pool": { - "defaultValue": "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8" - }, "snx_package": { - "defaultValue": "synthetix:3.3.4" + "defaultValue": "synthetix:3.3.5" }, "owner": { "defaultValue": "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" @@ -34,6 +30,9 @@ "snx_aggregator_address": { "defaultValue": "0x2FCF37343e916eAEd1f1DdaaF84458a359b53877" }, + "snx_chainlink_staleness_tolerance": { + "defaultValue": "3600" + }, "snx_address": { "defaultValue": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4" }, @@ -46,11 +45,14 @@ "pool_owner": { "defaultValue": "0x302d2451d9f47620374B54c521423Bf0403916A2" }, - "snx_pool_id": { - "defaultValue": "2" + "ccip_router": { + "defaultValue": "0x261c05167db67B2b619f9d312e0753f3721ad6E8" + }, + "ccip_token_pool": { + "defaultValue": "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8" }, "spot_market_package": { - "defaultValue": "synthetix-spot-market:3.3.4" + "defaultValue": "synthetix-spot-market:3.3.5" }, "eth_aggregator_address": { "defaultValue": "0x13e3Ee699D1909E989722E753853AE30b17e08c5" @@ -62,7 +64,7 @@ "defaultValue": "https://api.synthetix.io/pyth-mainnet/api/get_vaa_ccip?data={data}" }, "settlementReward": { - "defaultValue": "0" + "defaultValue": "1" }, "settlementMinimumUsdExchangeAmount": { "defaultValue": "0.000001" @@ -70,17 +72,20 @@ "settlementMaxRoundingLoss": { "defaultValue": "0.000001" }, + "commitmentPriceDelay": { + "defaultValue": "2" + }, "bigCapSettlementDelay": { - "defaultValue": "15" + "defaultValue": "2" }, "bigCapSettlementWindowDuration": { "defaultValue": "60" }, - "bigCapPriceWindowDuration": { - "defaultValue": "600" + "bigCapDefaultStalenessTolerance": { + "defaultValue": "3600" }, - "bigCapSettlementDeviationTolerance": { - "defaultValue": "0.05" + "bigCapStrictStalenessTolerance": { + "defaultValue": "60" }, "weth_address": { "defaultValue": "0x4200000000000000000000000000000000000006" @@ -101,7 +106,7 @@ "defaultValue": "0.0001" }, "perps_market_package": { - "defaultValue": "synthetix-perps-market:3.3.4" + "defaultValue": "synthetix-perps-market:3.3.5" }, "btc_aggregator_address": { "defaultValue": "0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593" @@ -127,10 +132,6 @@ "func": "setMinLiquidityRatio(uint256)", "args": [ "<%= settings.minimum_liquidity_ratio %>" - ], - "depends": [ - "provision.system", - "provision.system" ] }, "setAccountTimeoutWithdraw": { @@ -144,29 +145,6 @@ "args": [ "<%= formatBytes32String('accountTimeoutWithdraw') %>", "<%= hexZeroPad(hexlify(parseInt(settings.account_timeout_withdraw)), 32) %>" - ], - "depends": [ - "provision.system", - "provision.system" - ] - }, - "configureChainlinkCrossChain": { - "target": [ - "system.CoreProxy" - ], - "fromCall": { - "func": "owner" - }, - "func": "configureChainlinkCrossChain", - "args": [ - "<%= settings.ccip_router %>", - "<%= settings.ccip_token_pool %>" - ], - "depends": [ - "provision.system", - "provision.system", - "provision.system", - "provision.system" ] }, "setSupportedCrossChainNetworks": { @@ -203,15 +181,9 @@ "args": [ "<%= formatBytes32String('createPool') %>", "<%= settings.deployer %>" - ], - "depends": [ - "provision.system", - "provision.system", - "provision.system", - "provision.system" ] }, - "registerSnxOracleManager": { + "registerSnxOracleManagerNode": { "target": [ "system.oracle_manager.Proxy" ], @@ -221,18 +193,31 @@ "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.snx_aggregator_address, 0, 8]) %>", [] ], + "extra": { + "snx_oracle_id_raw": { + "event": "NodeRegistered", + "arg": 0 + } + } + }, + "registerSnxWithStaleness": { + "target": [ + "system.oracle_manager.Proxy" + ], + "func": "registerNode", + "args": [ + 7, + "<%= defaultAbiCoder.encode(['uint256'], [settings.snx_chainlink_staleness_tolerance]) %>", + [ + "<%= extras.snx_oracle_id_raw %>" + ] + ], "extra": { "snx_oracle_id": { "event": "NodeRegistered", "arg": 0 } - }, - "depends": [ - "provision.system", - "provision.system", - "provision.system", - "provision.system" - ] + } }, "configureSnxCollateral": { "target": [ @@ -252,15 +237,6 @@ "minDelegationD18": "<%= settings.snx_liquidation_reward %>", "depositingEnabled": true } - ], - "depends": [ - "invoke.registerSnxOracleManager", - "provision.system", - "invoke.registerSnxOracleManager", - "provision.system", - "invoke.registerSnxOracleManager", - "provision.system", - "invoke.registerSnxOracleManager" ] }, "createScPool": { @@ -314,59 +290,17 @@ "provision.system" ] }, - "create_snx_pool": { - "target": [ - "system.CoreProxy" - ], - "from": "<%= settings.deployer %>", - "func": "createPool", - "args": [ - "<%= settings.snx_pool_id %>", - "<%= settings.pool_owner %>" - ], - "depends": [ - "invoke.permitCreatePool", - "provision.system", - "provision.system", - "provision.system" - ] - }, - "set_snx_pool_name": { - "target": [ - "system.CoreProxy" - ], - "fromCall": { - "func": "getPoolOwner", - "args": [ - "<%= settings.snx_pool_id %>" - ] - }, - "func": "setPoolName", - "args": [ - "<%= settings.snx_pool_id %>", - "Passive SNX Pool" - ], - "depends": [ - "invoke.create_snx_pool", - "provision.system" - ] - }, - "approve_snx_pool": { + "configureChainlinkCrossChain": { "target": [ "system.CoreProxy" ], "fromCall": { "func": "owner" }, - "func": "addApprovedPool", + "func": "configureChainlinkCrossChain", "args": [ - "<%= settings.snx_pool_id %>" - ], - "depends": [ - "invoke.create_snx_pool", - "provision.system", - "provision.system", - "provision.system" + "<%= settings.ccip_router %>", + "<%= settings.ccip_token_pool %>" ] }, "allowAllTransferCrossChain": { @@ -380,12 +314,6 @@ "args": [ "<%= formatBytes32String('transferCrossChain') %>", true - ], - "depends": [ - "provision.system", - "provision.system", - "provision.system", - "provision.system" ] }, "registerEthOracleNode": { @@ -403,11 +331,7 @@ "event": "NodeRegistered", "arg": 0 } - }, - "depends": [ - "provision.system", - "provision.system" - ] + } }, "createEthSynth": { "target": [ @@ -431,13 +355,7 @@ "event": "SynthRegistered", "arg": 1 } - }, - "depends": [ - "provision.spotFactory", - "provision.spotFactory", - "provision.spotFactory", - "provision.spotFactory" - ] + } }, "setSynthPriceEth": { "target": [ @@ -454,15 +372,6 @@ "<%= extras.synth_eth_market_id %>", "<%= extras.eth_oracle_id %>", "<%= extras.eth_oracle_id %>" - ], - "depends": [ - "invoke.createEthSynth", - "invoke.registerEthOracleNode", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.registerEthOracleNode", - "invoke.registerEthOracleNode", - "invoke.createEthSynth" ] }, "setSynthAtomicFixedFeeEth": { @@ -479,12 +388,6 @@ "args": [ "<%= extras.synth_eth_market_id %>", "<%= MaxUint256 %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setSynthSettlementStrategyEth": { @@ -497,9 +400,10 @@ "<%= extras.synth_eth_market_id %>" ] }, - "func": "addSettlementStrategy", + "func": "setSettlementStrategy", "args": [ "<%= extras.synth_eth_market_id %>", + "0", { "strategyType": "1", "settlementDelay": "<%= settings.bigCapSettlementDelay %>", @@ -508,17 +412,11 @@ "feedId": "<%= settings.pythEthFeedId %>", "url": "<%= settings.pythFeedUrl %>", "settlementReward": 0, - "priceDeviationTolerance": "<%= parseEther(settings.bigCapSettlementDeviationTolerance) %>", "minimumUsdExchangeAmount": "<%= parseEther(settings.settlementMinimumUsdExchangeAmount) %>", "maxRoundingLoss": "<%= parseEther(settings.settlementMaxRoundingLoss) %>", + "priceDeviationTolerance": "<%= parseEther('1') %>", "disabled": false } - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setSynthAsyncFixedFeeEth": { @@ -535,12 +433,6 @@ "args": [ "<%= extras.synth_eth_market_id %>", "<%= parseEther(settings.synthEthAsyncFixedFee) %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setSynthMaxMarketCollateralEth": { @@ -556,11 +448,6 @@ "<%= extras.synth_eth_market_id %>", "<%= settings.weth_address %>", "<%= parseEther(settings.synthEthMaxMarketCollateral) %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.system", - "invoke.createEthSynth" ] }, "configureSynthWrapperEth": { @@ -578,18 +465,6 @@ "<%= extras.synth_eth_market_id %>", "<%= settings.weth_address %>", "<%= parseEther(settings.synthEthMaxMarketCollateral) %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setSynthSkewScaleEth": { @@ -606,12 +481,6 @@ "args": [ "<%= extras.synth_eth_market_id %>", "<%= parseEther(settings.synthEthSkewScale) %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setSynthWrapperFeesEth": { @@ -629,12 +498,6 @@ "<%= extras.synth_eth_market_id %>", "<%= parseEther(settings.synthEthWrapFee) %>", "<%= parseEther(settings.synthEthUnwrapFee) %>" - ], - "depends": [ - "invoke.createEthSynth", - "provision.spotFactory", - "invoke.createEthSynth", - "invoke.createEthSynth" ] }, "setScPoolConfig": { @@ -657,12 +520,6 @@ "maxDebtShareValueD18": "<%= parseEther('1') %>" } ] - ], - "depends": [ - "invoke.createScPool", - "invoke.createEthSynth", - "provision.system", - "invoke.createEthSynth" ] } }, @@ -678,12 +535,13 @@ }, "spotFactory": { "source": "<%= settings.spot_market_package %>", - "targetPreset": "main", + "targetPreset": "<%= settings.target_preset %>", "options": { "coreProxyOwner": "<%= settings.owner %>", "owner": "<%= settings.owner %>", "salt": "", - "synthetixPackage": "<%= settings.snx_package %>" + "synthetixPackage": "<%= settings.snx_package %>", + "synthetixPreset": "<%= settings.target_preset %>" }, "depends": [ "provision.system" @@ -691,7 +549,7 @@ } }, "name": "synthetix-omnibus", - "version": "3.3.4", + "version": "4", "description": "Includes the full synthetix system with configurations applied" }, "state": { @@ -699,383 +557,132 @@ "artifacts": { "imports": { "system": { - "url": "ipfs://QmR9K49D2FoSLsuzRzny5w3kD5xBGMJzNdvKKh8e5oFbrA", + "url": "ipfs://QmP4vA6B1iTGSLkB9JV3P52qaP92jA6FkqUMgECaFHNNxT", "tags": [ "latest" ], "preset": "main", - "imports": { - "oracle_manager": { - "url": "ipfs://QmNdpCipdFABtUMj2Jp1qsqcCAVa4jJh2UpHZC9Ce4BttG", - "tags": [ - "latest" + "contracts": { + "AccountModule": { + "address": "0x5c74c94173F05dA1720953407cbb920F3DF9f887", + "abi": [ + "error FeatureUnavailable(bytes32 which)", + "error InvalidAccountId(uint128 accountId)", + "error InvalidPermission(bytes32 permission)", + "error OnlyAccountTokenProxy(address origin)", + "error PermissionDenied(uint128 accountId, bytes32 permission, address target)", + "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)", + "error PositionOutOfBounds()", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "error ZeroAddress()", + "event AccountCreated(uint128 indexed accountId, address indexed owner)", + "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)", + "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)", + "function createAccount() returns (uint128 accountId)", + "function createAccount(uint128 requestedAccountId)", + "function getAccountLastInteraction(uint128 accountId) view returns (uint256)", + "function getAccountOwner(uint128 accountId) view returns (address)", + "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)", + "function getAccountTokenAddress() view returns (address)", + "function grantPermission(uint128 accountId, bytes32 permission, address user)", + "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)", + "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)", + "function notifyAccountTransfer(address to, uint128 accountId)", + "function renouncePermission(uint128 accountId, bytes32 permission)", + "function revokePermission(uint128 accountId, bytes32 permission, address user)" ], - "preset": "with-synthetix", - "contracts": { - "CoreModule": { - "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x628cb92e6ee8f9e9942f862c2977d07a4de4023c4176fe91195b9d0fc30d0ecb", - "sourceName": "contracts/modules/CoreModule.sol", - "contractName": "CoreModule", - "deployedOn": "contract.CoreModule" - }, - "InitialProxy": { - "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [ - "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" - ], - "linkedLibraries": {}, - "deployTxnHash": "0x6253644956174f93d8b6c55810bb63a1053dc2910322fc2e5cd400387d7c16db", - "sourceName": "contracts/Proxy.sol", - "contractName": "Proxy", - "deployedOn": "contract.InitialProxy" - }, - "NodeModule": { - "address": "0x948105487EB1E72A36b080783d5Bddc8c0B921cd", - "abi": [ - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xa247a6a250be00f79893b9b917b68706333186ede4687074321cedb6991d6a7b", - "sourceName": "contracts/modules/NodeModule.sol", - "contractName": "NodeModule", - "deployedOn": "contract.NodeModule" - }, - "OracleRouter": { - "address": "0xB93191110BCeC5f50dDe0Ff73f15B9A0285a1Ebb", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "deployedOn": "router.OracleRouter", - "deployTxnHash": "0x011bacbd4dde092ec72834a13d03e77b9e8eb5c7dba2fa514ef3b154828e7314", - "contractName": "OracleRouter", - "sourceName": "OracleRouter.sol" - }, - "Proxy": { - "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "deployTxnHash": "", - "sourceName": "", - "contractName": "", - "deployedOn": "invoke.upgrade_proxy" - } - }, - "txns": { - "upgrade_proxy": { - "hash": "0xa12aca9c6dc6d312f3f6f4a1de00d7c503bf8bd615cc694ab584c2640bd1ca08", - "events": { - "Upgraded": [ - { - "name": "Upgraded", - "args": [ - "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "0xB93191110BCeC5f50dDe0Ff73f15B9A0285a1Ebb" - ] - } - ] - }, - "deployedOn": "invoke.upgrade_proxy" - } - }, - "extras": {} - } - }, - "contracts": { - "InitialModuleBundle": { - "address": "0x828EED723cAF0A8F822249231266E38dF614923C", + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x4180608a6fd39b3a484acdd74a9fba332a3de73842728d09a21e2d9df1c80994", + "sourceName": "contracts/modules/core/AccountModule.sol", + "contractName": "AccountModule", + "deployedOn": "contract.AccountModule", + "gasUsed": 1209268, + "gasCost": "1019119134" + }, + "AccountTokenModule": { + "address": "0x720472c8ce72c2A2D711333e064ABD3E6BbEAdd3", "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", + "error AlreadyInitialized()", + "error CannotSelfApprove(address addr)", + "error IndexOverrun(uint256 requestedIndex, uint256 length)", + "error InvalidOwner(address addr)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidTransferRecipient(address addr)", + "error OverflowUint256ToUint128()", + "error TokenAlreadyMinted(uint256 id)", + "error TokenDoesNotExist(uint256 id)", "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" + "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", + "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", + "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", + "function approve(address to, uint256 tokenId)", + "function balanceOf(address holder) view returns (uint256 balance)", + "function burn(uint256 tokenId)", + "function getApproved(uint256 tokenId) view returns (address operator)", + "function initialize(string tokenName, string tokenSymbol, string uri)", + "function isApprovedForAll(address holder, address operator) view returns (bool)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 tokenId)", + "function name() view returns (string)", + "function ownerOf(uint256 tokenId) view returns (address)", + "function safeMint(address to, uint256 tokenId, bytes data)", + "function safeTransferFrom(address from, address to, uint256 tokenId)", + "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", + "function setAllowance(uint256 tokenId, address spender)", + "function setApprovalForAll(address operator, bool approved)", + "function setBaseTokenURI(string uri)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function symbol() view returns (string)", + "function tokenByIndex(uint256 index) view returns (uint256)", + "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", + "function tokenURI(uint256 tokenId) view returns (string)", + "function totalSupply() view returns (uint256)", + "function transferFrom(address from, address to, uint256 tokenId)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "", - "sourceName": "contracts/modules/InitialModuleBundle.sol", - "contractName": "InitialModuleBundle", - "deployedOn": "contract.InitialModuleBundle" + "deployTxnHash": "0xb99d360e05fe304524d633444d8a27237920fe9fbd2aa59c9a128b8950402770", + "sourceName": "contracts/modules/account/AccountTokenModule.sol", + "contractName": "AccountTokenModule", + "deployedOn": "contract.AccountTokenModule", + "gasUsed": 1787668, + "gasCost": "1016921911" }, - "InitialCoreProxy": { - "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", + "AssociateDebtModule": { + "address": "0xe8D2A1E88c91DCd5433208d4152Cc4F399a7e91d", "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", + "error AccountNotFound(uint128 accountId)", + "error EmptyDistribution()", + "error FeatureUnavailable(bytes32 which)", + "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)", + "error MarketNotFound(uint128 marketId)", + "error NotFundedByPool(uint256 marketId, uint256 poolId)", + "error OverflowInt256ToInt128()", + "error OverflowInt256ToUint256()", + "error OverflowUint128ToInt128()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint128()", "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [ - "0x828EED723cAF0A8F822249231266E38dF614923C", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)", + "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)" ], + "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x1b7f77435db768205301ff41ec1220c522de51ecc45973c2818abba881cb0c6e", - "sourceName": "contracts/Proxy.sol", - "contractName": "Proxy", - "deployedOn": "contract.InitialCoreProxy" + "deployTxnHash": "0x11f63e8c7c0ad2e4149eb715a6cf39b215a80bc8b98d1dad31ae59a2f42cc442", + "sourceName": "contracts/modules/core/AssociateDebtModule.sol", + "contractName": "AssociateDebtModule", + "deployedOn": "contract.AssociateDebtModule", + "gasUsed": 2267106, + "gasCost": "1015058762" }, - "FeatureFlagModule": { - "address": "0x04194CD5916c77fE82dCde7B3db051D84B2d33a1", + "AssociatedSystemsModule": { + "address": "0x5067457698Fd6Fa1C6964e416b3f42713513B3dD", "abi": [ - "error Unauthorized(address addr)", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", - "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", - "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", - "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", - "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", - "function addToFeatureFlagAllowlist(bytes32 feature, address account)", - "function getDeniers(bytes32 feature) view returns (address[])", - "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", - "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", - "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", - "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", - "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", - "function setDeniers(bytes32 feature, address[] deniers)", - "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", - "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x6142ee22f6420507d634bf38e304d1c8dec703d26e8a96c6f980445b1a432c69", - "sourceName": "contracts/modules/core/FeatureFlagModule.sol", - "contractName": "FeatureFlagModule", - "deployedOn": "contract.FeatureFlagModule" - }, - "AccountModule": { - "address": "0x4d7AD1D420f5A0D53AF92E9D3346155EA2260a10", - "abi": [ - "error FeatureUnavailable(bytes32 which)", - "error InvalidAccountId(uint128 accountId)", - "error InvalidPermission(bytes32 permission)", - "error OnlyAccountTokenProxy(address origin)", - "error PermissionDenied(uint128 accountId, bytes32 permission, address target)", - "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)", - "error PositionOutOfBounds()", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "error ZeroAddress()", - "event AccountCreated(uint128 indexed accountId, address indexed owner)", - "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)", - "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)", - "function createAccount() returns (uint128 accountId)", - "function createAccount(uint128 requestedAccountId)", - "function getAccountLastInteraction(uint128 accountId) view returns (uint256)", - "function getAccountOwner(uint128 accountId) view returns (address)", - "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)", - "function getAccountTokenAddress() view returns (address)", - "function grantPermission(uint128 accountId, bytes32 permission, address user)", - "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)", - "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)", - "function notifyAccountTransfer(address to, uint128 accountId)", - "function renouncePermission(uint128 accountId, bytes32 permission)", - "function revokePermission(uint128 accountId, bytes32 permission, address user)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x8aaf794411df24f1408b4a7d250fb9a0d06585c6721de11bb713398db74e5c0d", - "sourceName": "contracts/modules/core/AccountModule.sol", - "contractName": "AccountModule", - "deployedOn": "contract.AccountModule" - }, - "AssociateDebtModule": { - "address": "0xa5d9CEA9D8d040eFdF9f7B575a7cF4854E4645B9", - "abi": [ - "error AccountNotFound(uint128 accountId)", - "error EmptyDistribution()", - "error FeatureUnavailable(bytes32 which)", - "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)", - "error MarketNotFound(uint128 marketId)", - "error NotFundedByPool(uint256 marketId, uint256 poolId)", - "error OverflowInt256ToInt128()", - "error OverflowInt256ToUint256()", - "error OverflowUint128ToInt128()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint128()", - "error Unauthorized(address addr)", - "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)", - "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x2f7bf6d40fe5df8a8c513c81f6ca25a1acfd4af02822eb2c654586f26ab3cbb2", - "sourceName": "contracts/modules/core/AssociateDebtModule.sol", - "contractName": "AssociateDebtModule", - "deployedOn": "contract.AssociateDebtModule" - }, - "AssociatedSystemsModule": { - "address": "0x8F9E23d4766f6584553F72A1a9b76ca7059483FE", - "abi": [ - "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", - "error MissingAssociatedSystem(bytes32 id)", + "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", + "error MissingAssociatedSystem(bytes32 id)", "error Unauthorized(address addr)", "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", @@ -1085,13 +692,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x5ec85d854e73847e2b8c99c2aba628553605a0434270d1add2a53958562aeb50", + "deployTxnHash": "0x7f4f38689494a7d99a746b757c3a0cb6d48388102cfad78bad9c80086ddf9c51", "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol", "contractName": "AssociatedSystemsModule", - "deployedOn": "contract.AssociatedSystemsModule" + "deployedOn": "contract.AssociatedSystemsModule", + "gasUsed": 877177, + "gasCost": "1013460916" }, "CcipReceiverModule": { - "address": "0xC4fE91F7612ffc7b8Dd15BE5A3A4C2b8169E56bd", + "address": "0x18E317A7D70d8fBf8e6E893616b52390EbBdb629", "abi": [ "error InvalidMessage()", "error NotCcipRouter(address)", @@ -1101,13 +710,38 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0xfed4262a19d9b5d52291f0d6f4e6c9301a811c32a3fd89ac85442e535b9c22ce", + "deployTxnHash": "0xac23d3202a87f6fd498e4ec86290539492f4ebbd58475ade74989b09721278fa", "sourceName": "contracts/modules/core/CcipReceiverModule.sol", "contractName": "CcipReceiverModule", - "deployedOn": "contract.CcipReceiverModule" + "deployedOn": "contract.CcipReceiverModule", + "gasUsed": 469476, + "gasCost": "1011876699" + }, + "CollateralConfigurationModule": { + "address": "0x4b6aB5F819A515382B0dEB6935D793817bB4af28", + "abi": [ + "error InvalidParameter(string parameter, string reason)", + "error OverflowInt256ToUint256()", + "error PositionOutOfBounds()", + "error Unauthorized(address addr)", + "error ValueAlreadyInSet()", + "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", + "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", + "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))", + "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])", + "function getCollateralPrice(address collateralType) view returns (uint256)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x8e81087fc0d168429b8fec189251219eb68ccff42e2bf7477b9c33d8dd41247c", + "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol", + "contractName": "CollateralConfigurationModule", + "deployedOn": "contract.CollateralConfigurationModule", + "gasUsed": 837646, + "gasCost": "1010438577" }, "CollateralModule": { - "address": "0x845e620a05074f44905661d8B3b3Ec29DDe08768", + "address": "0xCace1b78160AE76398F486c8a18044da0d66d86D", "abi": [ "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)", "error AccountNotFound(uint128 accountId)", @@ -1139,34 +773,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x8bc6f21b40afe98faa632f1ee04ff7bf7c1b3f2594458243a274c366ed5c8f30", + "deployTxnHash": "0xde73c9c9940f1a1ffcfdcdecfa9c03cc1f8c86413629e090ab4b884b2055f2f9", "sourceName": "contracts/modules/core/CollateralModule.sol", "contractName": "CollateralModule", - "deployedOn": "contract.CollateralModule" - }, - "CollateralConfigurationModule": { - "address": "0x7552B73fa041DE429B30027D869eF82788b0a57e", - "abi": [ - "error InvalidParameter(string parameter, string reason)", - "error OverflowInt256ToUint256()", - "error PositionOutOfBounds()", - "error Unauthorized(address addr)", - "error ValueAlreadyInSet()", - "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", - "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", - "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))", - "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])", - "function getCollateralPrice(address collateralType) view returns (uint256)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x4a50f5d03a21ce0d5c76c9286efc87e232572789e69defde2bd9e32a145b973d", - "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol", - "contractName": "CollateralConfigurationModule", - "deployedOn": "contract.CollateralConfigurationModule" + "deployedOn": "contract.CollateralModule", + "gasUsed": 1730020, + "gasCost": "1009206621" }, "CrossChainUSDModule": { - "address": "0x9ceddb4fD222Fff6F42Ac69004e132E57dE810Cc", + "address": "0xD5ac451B0c50B9476107823Af206eD814a2e2580", "abi": [ "error FeatureUnavailable(bytes32 which)", "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)", @@ -1176,13 +791,75 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x70be87ecd86eef47cf7f36399a920739379c8c8fa23d7493b6bf694843cc564c", + "deployTxnHash": "0x5b11a6d2d79e6735780d84f00875100687bdcc212c637e32df0b1ef6004cdf91", "sourceName": "contracts/modules/core/CrossChainUSDModule.sol", "contractName": "CrossChainUSDModule", - "deployedOn": "contract.CrossChainUSDModule" + "deployedOn": "contract.CrossChainUSDModule", + "gasUsed": 595289, + "gasCost": "1008188524" + }, + "FeatureFlagModule": { + "address": "0xF8e31cb472bc70500f08Cd84917E5A1912Ec8397", + "abi": [ + "error Unauthorized(address addr)", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", + "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", + "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", + "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", + "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", + "function addToFeatureFlagAllowlist(bytes32 feature, address account)", + "function getDeniers(bytes32 feature) view returns (address[])", + "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", + "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", + "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", + "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", + "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", + "function setDeniers(bytes32 feature, address[] deniers)", + "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", + "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0xcf01bac36a6fa89d9b319b484397fe32e5a2c78ebaafc132f9d0ac7d9dc3ce24", + "sourceName": "contracts/modules/core/FeatureFlagModule.sol", + "contractName": "FeatureFlagModule", + "deployedOn": "contract.FeatureFlagModule", + "gasUsed": 777054, + "gasCost": "1007205580" + }, + "InitialModuleBundle": { + "address": "0x828EED723cAF0A8F822249231266E38dF614923C", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "contracts/modules/InitialModuleBundle.sol", + "contractName": "InitialModuleBundle", + "deployedOn": "contract.InitialModuleBundle" }, "IssueUSDModule": { - "address": "0x53c3F071Ab1032F2c52C0F3395c308B6EC5036b5", + "address": "0xc0F115A19107322cFBf1cDBC7ea011C19EbDB4F8", "abi": [ "error CollateralDepositDisabled(address collateralType)", "error EmptyDistribution()", @@ -1208,13 +885,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x10ead221e1dd0f1cccacf15e7dd27db7ee18ad647c8e9050832e7c17b8c68382", + "deployTxnHash": "0x2b1ff0269751eef84c802b5ed10cd1af169faf4526fb150f677deab787f8a88c", "sourceName": "contracts/modules/core/IssueUSDModule.sol", "contractName": "IssueUSDModule", - "deployedOn": "contract.IssueUSDModule" + "deployedOn": "contract.IssueUSDModule", + "gasUsed": 2808871, + "gasCost": "1006351542" }, "LiquidationModule": { - "address": "0x62D560E670da20e176A5A6592A911c4502B08674", + "address": "0xc96304e3c037f81dA488ed9dEa1D8F2a48278a75", "abi": [ "error AccountNotFound(uint128 accountId)", "error CannotScaleEmptyMapping()", @@ -1241,13 +920,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x1f0c70d7c4b29f99b43d20a092ac3f261f8a94cdb145dd997380be44ce6ae32b", + "deployTxnHash": "0x5ea1ad39b61a69a3fa394c46d4f7eee88fc499ccf4c6d666f42344dbfb900a85", "sourceName": "contracts/modules/core/LiquidationModule.sol", "contractName": "LiquidationModule", - "deployedOn": "contract.LiquidationModule" + "deployedOn": "contract.LiquidationModule", + "gasUsed": 2889614, + "gasCost": "1005706272" }, "MarketCollateralModule": { - "address": "0xfdD85dC27b7ff3D35eF814292BC64baE43De1eE8", + "address": "0x34B40BA116d5Dec75548a9e9A8f15411461E8c70", "abi": [ "error CollateralNotFound()", "error FailedTransfer(address from, address to, uint256 value)", @@ -1258,8 +939,8 @@ "error OverflowUint256ToInt256()", "error PrecisionLost(uint256 tokenAmount, uint8 decimals)", "error Unauthorized(address addr)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -1270,13 +951,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x7ec3a857f51ba63fd5a96c3d4ce79c1890a51c4ac69bfe1a7fec8659e01cbd18", + "deployTxnHash": "0xd27bf18d1d78bd2c7c24f4b35d082b47ab329185d89c3fde390b5204f85e163f", "sourceName": "contracts/modules/core/MarketCollateralModule.sol", "contractName": "MarketCollateralModule", - "deployedOn": "contract.MarketCollateralModule" + "deployedOn": "contract.MarketCollateralModule", + "gasUsed": 1222509, + "gasCost": "1005130396" }, "MarketManagerModule": { - "address": "0xe55Bb97939378587ab5B7074d21639352D84d06B", + "address": "0xD0141E899a65C95a556fE2B27e5982A6DE7fDD7A", "abi": [ "error EmptyDistribution()", "error FeatureUnavailable(bytes32 which)", @@ -1292,8 +975,8 @@ "error Unauthorized(address addr)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -1320,32 +1003,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x4bada128e33afacb6e305979d28da2aa45914aa702450fc48d4e898976fa0244", + "deployTxnHash": "0x753fc23cc54816f2dbc45473910e59237fd953023040f534c518aa1a623e07e6", "sourceName": "contracts/modules/core/MarketManagerModule.sol", "contractName": "MarketManagerModule", - "deployedOn": "contract.MarketManagerModule" - }, - "MulticallModule": { - "address": "0xC4355ff53Ff1bA4A2d7105DB794D6c3510B8f4B3", - "abi": [ - "error DeniedMulticallTarget(address)", - "error InvalidParameter(string parameter, string reason)", - "error RecursiveMulticall(address)", - "error Unauthorized(address addr)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x59eee51de487501009ed6468a3b0ee4e8d3d2ae887bca4796ff4ebf1a77e9f0f", - "sourceName": "contracts/modules/core/MulticallModule.sol", - "contractName": "MulticallModule", - "deployedOn": "contract.MulticallModule" + "deployedOn": "contract.MarketManagerModule", + "gasUsed": 2756377, + "gasCost": "1004541363" }, "PoolConfigurationModule": { - "address": "0x2585754166E439eD27943EaE30b9a6Fd82bd67b2", + "address": "0x07882Ae1ecB7429a84f1D53048d35c4bB2056877", "abi": [ "error PoolNotFound(uint128 poolId)", "error Unauthorized(address addr)", @@ -1362,13 +1028,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x0fe04b000e63d1002233ae13614d404771a8c81f362006cb55f7873f8a571dad", + "deployTxnHash": "0x1feb24df7fa7822f5bc0dd3b61ae801b868e3a7b27bcca7903b911c71dacfa96", "sourceName": "contracts/modules/core/PoolConfigurationModule.sol", "contractName": "PoolConfigurationModule", - "deployedOn": "contract.PoolConfigurationModule" + "deployedOn": "contract.PoolConfigurationModule", + "gasUsed": 446271, + "gasCost": "1004078007" }, "PoolModule": { - "address": "0xa87e0bb82F725904Cb77231a0F0213dA8A004b75", + "address": "0x22753E4264FDDc6181dc7cce468904A80a363E44", "abi": [ "error CapacityLocked(uint256 marketId)", "error EmptyDistribution()", @@ -1394,11 +1062,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -1406,6 +1076,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -1415,13 +1086,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x1c5cb8d6d7da633aeea4f11c4baa7c433ee4c04bf68d3508a86c804681201efd", + "deployTxnHash": "0x4750a830af6379e76437db0a78c6122378ceebf7b89ed7c2230d875dfd387600", "sourceName": "contracts/modules/core/PoolModule.sol", "contractName": "PoolModule", - "deployedOn": "contract.PoolModule" + "deployedOn": "contract.PoolModule", + "gasUsed": 3705275, + "gasCost": "1003583422" }, "RewardsManagerModule": { - "address": "0x298CDCc0DfECe79d7337328080Cbf1742B6f7b54", + "address": "0xA7c59f010700930003b33aB25a7a0679C860f29c", "abi": [ "error AccountNotFound(uint128 accountId)", "error FeatureUnavailable(bytes32 which)", @@ -1446,6 +1119,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -1453,13 +1127,53 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x9a23abd4a10b37e5c0f24bda2525afc23d3b9a2ac4214978ca1d2a9a669b543f", + "deployTxnHash": "0x73b5142f64fc89dbb7269a263642d16e4e8b4090ea45e614316e0e03df1a536d", "sourceName": "contracts/modules/core/RewardsManagerModule.sol", "contractName": "RewardsManagerModule", - "deployedOn": "contract.RewardsManagerModule" + "deployedOn": "contract.RewardsManagerModule", + "gasUsed": 2131621, + "gasCost": "1003246141" + }, + "USDTokenModule": { + "address": "0xfaAddC93baf78e89DCf37bA67943E1bE8F37Bb8c", + "abi": [ + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidParameter(string parameter, string reason)", + "error Unauthorized(address addr)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address owner) view returns (uint256)", + "function burn(uint256 amount)", + "function burn(address target, uint256 amount)", + "function burnWithAllowance(address from, address spender, uint256 amount)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address target, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function symbol() view returns (string)", + "function totalSupply() view returns (uint256)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x771f422527acd0ef2b2ec9fb6752e7a74d24b8f3f188be870d984005fcb93b3d", + "sourceName": "contracts/modules/usd/USDTokenModule.sol", + "contractName": "USDTokenModule", + "deployedOn": "contract.USDTokenModule", + "gasUsed": 1110282, + "gasCost": "1002898037" }, "UtilsModule": { - "address": "0x3ad002E469d7a78b3aCe7710018f5eF3524a8581", + "address": "0x276C216D241856199A83bf27b2286659e5b877D3", "abi": [ "error InvalidParameter(string parameter, string reason)", "error OverflowUint256ToUint64()", @@ -1471,19 +1185,23 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x4397cf22ea44265bc00584b3e969c166922c3dcece980e7ebbd1f1fa09efecb5", + "deployTxnHash": "0xce4140a09cb9cd1e3fc857e8d8e1130291a3128b4bf624f599139ac0feae3954", "sourceName": "contracts/modules/core/UtilsModule.sol", "contractName": "UtilsModule", - "deployedOn": "contract.UtilsModule" + "deployedOn": "contract.UtilsModule", + "gasUsed": 759709, + "gasCost": "1002562597" }, "VaultModule": { - "address": "0x250d34097961FbE8BD18C696E5aD6c1C9227395d", + "address": "0x3347B4d90ebe72BeFb30444C9966B2B990aE9FcB", "abi": [ "error CapacityLocked(uint256 marketId)", "error CollateralDepositDisabled(address collateralType)", @@ -1516,7 +1234,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", @@ -1525,13 +1243,47 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0xe635edcf438bf243eae84c9977878f9f8406eeed609422934d7e6417b04da9b2", + "deployTxnHash": "0x0f85ab77d69217771887931249eedbe77ea3c5c9ed5c491498ecee78e4288a31", "sourceName": "contracts/modules/core/VaultModule.sol", "contractName": "VaultModule", - "deployedOn": "contract.VaultModule" + "deployedOn": "contract.VaultModule", + "gasUsed": 3527475, + "gasCost": "1002258496" }, - "CoreRouter": { - "address": "0xcb38B655537cadEd39F10074E6159A4da131f77F", + "InitialCoreProxy": { + "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [ + "0x828EED723cAF0A8F822249231266E38dF614923C", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ], + "linkedLibraries": {}, + "deployTxnHash": "0x1b7f77435db768205301ff41ec1220c522de51ecc45973c2818abba881cb0c6e", + "sourceName": "contracts/Proxy.sol", + "contractName": "Proxy", + "deployedOn": "contract.InitialCoreProxy" + }, + "AccountRouter": { + "address": "0xffa7ca1aeeebbc30c874d32c7e22f052bbea0429", "abi": [ "error ImplementationIsSterile(address implementation)", "error NoChange()", @@ -1551,25 +1303,89 @@ "function renounceNomination()", "function simulateUpgradeTo(address newImplementation)", "function upgradeTo(address newImplementation)", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", - "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", - "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", - "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", - "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", - "function addToFeatureFlagAllowlist(bytes32 feature, address account)", - "function getDeniers(bytes32 feature) view returns (address[])", - "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", - "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", - "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", - "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", - "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", - "function setDeniers(bytes32 feature, address[] deniers)", - "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", - "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)", - "error FeatureUnavailable(bytes32 which)", - "error InvalidAccountId(uint128 accountId)", + "error AlreadyInitialized()", + "error CannotSelfApprove(address addr)", + "error IndexOverrun(uint256 requestedIndex, uint256 length)", + "error InvalidOwner(address addr)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidTransferRecipient(address addr)", + "error OverflowUint256ToUint128()", + "error TokenAlreadyMinted(uint256 id)", + "error TokenDoesNotExist(uint256 id)", + "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", + "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", + "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", + "function approve(address to, uint256 tokenId)", + "function balanceOf(address holder) view returns (uint256 balance)", + "function burn(uint256 tokenId)", + "function getApproved(uint256 tokenId) view returns (address operator)", + "function initialize(string tokenName, string tokenSymbol, string uri)", + "function isApprovedForAll(address holder, address operator) view returns (bool)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 tokenId)", + "function name() view returns (string)", + "function ownerOf(uint256 tokenId) view returns (address)", + "function safeMint(address to, uint256 tokenId, bytes data)", + "function safeTransferFrom(address from, address to, uint256 tokenId)", + "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", + "function setAllowance(uint256 tokenId, address spender)", + "function setApprovalForAll(address operator, bool approved)", + "function setBaseTokenURI(string uri)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function symbol() view returns (string)", + "function tokenByIndex(uint256 index) view returns (uint256)", + "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", + "function tokenURI(uint256 tokenId) view returns (string)", + "function totalSupply() view returns (uint256)", + "function transferFrom(address from, address to, uint256 tokenId)" + ], + "deployedOn": "router.AccountRouter", + "deployTxnHash": "0xf88570af51ec9fb2557505a5bf3be451845c332ca0e015ae31972427935c5a13", + "contractName": "AccountRouter", + "sourceName": "AccountRouter.sol", + "gasUsed": 406486, + "gasCost": "1001425804" + }, + "CoreRouter": { + "address": "0x3aade2dcd2df6a8cac689ee797591b2913658659", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", + "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", + "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", + "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", + "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", + "function addToFeatureFlagAllowlist(bytes32 feature, address account)", + "function getDeniers(bytes32 feature) view returns (address[])", + "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", + "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", + "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", + "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", + "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", + "function setDeniers(bytes32 feature, address[] deniers)", + "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", + "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)", + "error FeatureUnavailable(bytes32 which)", + "error InvalidAccountId(uint128 accountId)", "error InvalidPermission(bytes32 permission)", "error OnlyAccountTokenProxy(address origin)", "error PermissionDenied(uint128 accountId, bytes32 permission, address target)", @@ -1662,8 +1478,8 @@ "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)", "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)", "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -1675,8 +1491,8 @@ "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -1700,12 +1516,6 @@ "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)", "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)", "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)", "event PoolApprovedAdded(uint256 poolId)", "event PoolApprovedRemoved(uint256 poolId)", "event PreferredPoolSet(uint256 poolId)", @@ -1726,11 +1536,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -1738,6 +1550,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -1755,6 +1568,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -1765,9 +1579,12 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -1775,7 +1592,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", @@ -1783,9 +1600,71 @@ "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)" ], "deployedOn": "router.CoreRouter", - "deployTxnHash": "0x69c7654110f9e1499cc66c87235e385954d15374382bd2374682f9eccf7c4fac", + "deployTxnHash": "0xea642132e9e4d751df9f1be7c8e353ce4f89e1786b10e8b700b2bbd9e0b0817c", "contractName": "CoreRouter", - "sourceName": "CoreRouter.sol" + "sourceName": "CoreRouter.sol", + "gasUsed": 1292988, + "gasCost": "1001252409" + }, + "USDRouter": { + "address": "0xab16a69a5a8c12c732e0deff4be56a70bb64c926", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", + "error MissingAssociatedSystem(bytes32 id)", + "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", + "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", + "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", + "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", + "function registerUnmanagedSystem(bytes32 id, address endpoint)", + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidParameter(string parameter, string reason)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address owner) view returns (uint256)", + "function burn(uint256 amount)", + "function burn(address target, uint256 amount)", + "function burnWithAllowance(address from, address spender, uint256 amount)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address target, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function symbol() view returns (string)", + "function totalSupply() view returns (uint256)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "deployedOn": "router.USDRouter", + "deployTxnHash": "0x7d084a186e9027d24c9a426a7ddfbaef0dee61481a835789fea634b865a1a906", + "contractName": "USDRouter", + "sourceName": "USDRouter.sol", + "gasUsed": 398033, + "gasCost": "1001109353" }, "CoreProxy": { "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", @@ -1919,8 +1798,8 @@ "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)", "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)", "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -1932,8 +1811,8 @@ "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -1957,12 +1836,6 @@ "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)", "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)", "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)", "event PoolApprovedAdded(uint256 poolId)", "event PoolApprovedRemoved(uint256 poolId)", "event PreferredPoolSet(uint256 poolId)", @@ -1983,11 +1856,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -1995,6 +1870,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -2012,6 +1888,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -2022,9 +1899,12 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -2032,7 +1912,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", @@ -2042,46 +1922,13 @@ "deployTxnHash": "", "sourceName": "", "contractName": "", - "deployedOn": "invoke.upgrade_core_proxy" - }, - "USDTokenModule": { - "address": "0x9Bd1C7DBb973E289A27b1529d8931931a26b6244", - "abi": [ - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidParameter(string parameter, string reason)", - "error Unauthorized(address addr)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address owner) view returns (uint256)", - "function burn(uint256 amount)", - "function burn(address target, uint256 amount)", - "function burnWithAllowance(address from, address spender, uint256 amount)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address target, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function symbol() view returns (string)", - "function totalSupply() view returns (uint256)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xe13a4353edfbe871eef8977600b91ec192b20d6f64caf4b4e6a20aa576f1a551", - "sourceName": "contracts/modules/usd/USDTokenModule.sol", - "contractName": "USDTokenModule", - "deployedOn": "contract.USDTokenModule" + "deployedOn": "invoke.upgrade_core_proxy", + "gasUsed": 0, + "gasCost": "0", + "highlight": true }, - "USDRouter": { - "address": "0x2415C2f2E6554441F613d82472Cdbe7B63680448", + "AccountProxy": { + "address": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", "abi": [ "error ImplementationIsSterile(address implementation)", "error NoChange()", @@ -2101,42 +1948,49 @@ "function renounceNomination()", "function simulateUpgradeTo(address newImplementation)", "function upgradeTo(address newImplementation)", - "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", - "error MissingAssociatedSystem(bytes32 id)", - "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", - "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", - "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", - "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", - "function registerUnmanagedSystem(bytes32 id, address endpoint)", "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", + "error CannotSelfApprove(address addr)", + "error IndexOverrun(uint256 requestedIndex, uint256 length)", + "error InvalidOwner(address addr)", "error InvalidParameter(string parameter, string reason)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address owner) view returns (uint256)", - "function burn(uint256 amount)", - "function burn(address target, uint256 amount)", - "function burnWithAllowance(address from, address spender, uint256 amount)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "error InvalidTransferRecipient(address addr)", + "error OverflowUint256ToUint128()", + "error TokenAlreadyMinted(uint256 id)", + "error TokenDoesNotExist(uint256 id)", + "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", + "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", + "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", + "function approve(address to, uint256 tokenId)", + "function balanceOf(address holder) view returns (uint256 balance)", + "function burn(uint256 tokenId)", + "function getApproved(uint256 tokenId) view returns (address operator)", + "function initialize(string tokenName, string tokenSymbol, string uri)", + "function isApprovedForAll(address holder, address operator) view returns (bool)", "function isInitialized() view returns (bool)", - "function mint(address target, uint256 amount)", + "function mint(address to, uint256 tokenId)", "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", + "function ownerOf(uint256 tokenId) view returns (address)", + "function safeMint(address to, uint256 tokenId, bytes data)", + "function safeTransferFrom(address from, address to, uint256 tokenId)", + "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", + "function setAllowance(uint256 tokenId, address spender)", + "function setApprovalForAll(address operator, bool approved)", + "function setBaseTokenURI(string uri)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", "function symbol() view returns (string)", + "function tokenByIndex(uint256 index) view returns (uint256)", + "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", + "function tokenURI(uint256 tokenId) view returns (string)", "function totalSupply() view returns (uint256)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" + "function transferFrom(address from, address to, uint256 tokenId)" ], - "deployedOn": "router.USDRouter", - "deployTxnHash": "0xf12324ac8615492e4907175ca09bf5e3ec0a482d8d9a1294d861106a1c4b68a8", - "contractName": "USDRouter", - "sourceName": "USDRouter.sol" + "deployTxnHash": "", + "sourceName": "", + "contractName": "", + "deployedOn": "invoke.init_account", + "gasUsed": 0, + "gasCost": "0", + "highlight": true }, "USDProxy": { "address": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", @@ -2194,377 +2048,636 @@ "deployTxnHash": "", "sourceName": "", "contractName": "", - "deployedOn": "invoke.init_usd" - }, - "AccountTokenModule": { - "address": "0x479B0baa4aCF9Bf6e7Fb8419FC230d249481b8B1", - "abi": [ - "error AlreadyInitialized()", - "error CannotSelfApprove(address addr)", - "error IndexOverrun(uint256 requestedIndex, uint256 length)", - "error InvalidOwner(address addr)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidTransferRecipient(address addr)", - "error OverflowUint256ToUint128()", - "error TokenAlreadyMinted(uint256 id)", - "error TokenDoesNotExist(uint256 id)", - "error Unauthorized(address addr)", - "error ZeroAddress()", - "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", - "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", - "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", - "function approve(address to, uint256 tokenId)", - "function balanceOf(address holder) view returns (uint256 balance)", - "function burn(uint256 tokenId)", - "function getApproved(uint256 tokenId) view returns (address operator)", - "function initialize(string tokenName, string tokenSymbol, string uri)", - "function isApprovedForAll(address holder, address operator) view returns (bool)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 tokenId)", - "function name() view returns (string)", - "function ownerOf(uint256 tokenId) view returns (address)", - "function safeMint(address to, uint256 tokenId, bytes data)", - "function safeTransferFrom(address from, address to, uint256 tokenId)", - "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", - "function setAllowance(uint256 tokenId, address spender)", - "function setApprovalForAll(address operator, bool approved)", - "function setBaseTokenURI(string uri)", - "function supportsInterface(bytes4 interfaceId) view returns (bool)", - "function symbol() view returns (string)", - "function tokenByIndex(uint256 index) view returns (uint256)", - "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", - "function tokenURI(uint256 tokenId) view returns (string)", - "function totalSupply() view returns (uint256)", - "function transferFrom(address from, address to, uint256 tokenId)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x80cf14d2dc739b59de1347685d57b69c7f7ca34d3b1722241026b9dc1b5ea281", - "sourceName": "contracts/modules/account/AccountTokenModule.sol", - "contractName": "AccountTokenModule", - "deployedOn": "contract.AccountTokenModule" - }, - "AccountRouter": { - "address": "0xcbf25513C912eEB8072972347Afd2BE94452B5E6", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error AlreadyInitialized()", - "error CannotSelfApprove(address addr)", - "error IndexOverrun(uint256 requestedIndex, uint256 length)", - "error InvalidOwner(address addr)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidTransferRecipient(address addr)", - "error OverflowUint256ToUint128()", - "error TokenAlreadyMinted(uint256 id)", - "error TokenDoesNotExist(uint256 id)", - "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", - "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", - "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", - "function approve(address to, uint256 tokenId)", - "function balanceOf(address holder) view returns (uint256 balance)", - "function burn(uint256 tokenId)", - "function getApproved(uint256 tokenId) view returns (address operator)", - "function initialize(string tokenName, string tokenSymbol, string uri)", - "function isApprovedForAll(address holder, address operator) view returns (bool)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 tokenId)", - "function name() view returns (string)", - "function ownerOf(uint256 tokenId) view returns (address)", - "function safeMint(address to, uint256 tokenId, bytes data)", - "function safeTransferFrom(address from, address to, uint256 tokenId)", - "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", - "function setAllowance(uint256 tokenId, address spender)", - "function setApprovalForAll(address operator, bool approved)", - "function setBaseTokenURI(string uri)", - "function supportsInterface(bytes4 interfaceId) view returns (bool)", - "function symbol() view returns (string)", - "function tokenByIndex(uint256 index) view returns (uint256)", - "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", - "function tokenURI(uint256 tokenId) view returns (string)", - "function totalSupply() view returns (uint256)", - "function transferFrom(address from, address to, uint256 tokenId)" - ], - "deployedOn": "router.AccountRouter", - "deployTxnHash": "0x9aefd9ceaf2edd9e2a57d0ff375f1a0f0415cbe321b49930309b5a0cd1c5b975", - "contractName": "AccountRouter", - "sourceName": "AccountRouter.sol" - }, - "AccountProxy": { - "address": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error AlreadyInitialized()", - "error CannotSelfApprove(address addr)", - "error IndexOverrun(uint256 requestedIndex, uint256 length)", - "error InvalidOwner(address addr)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidTransferRecipient(address addr)", - "error OverflowUint256ToUint128()", - "error TokenAlreadyMinted(uint256 id)", - "error TokenDoesNotExist(uint256 id)", - "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", - "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", - "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", - "function approve(address to, uint256 tokenId)", - "function balanceOf(address holder) view returns (uint256 balance)", - "function burn(uint256 tokenId)", - "function getApproved(uint256 tokenId) view returns (address operator)", - "function initialize(string tokenName, string tokenSymbol, string uri)", - "function isApprovedForAll(address holder, address operator) view returns (bool)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 tokenId)", - "function name() view returns (string)", - "function ownerOf(uint256 tokenId) view returns (address)", - "function safeMint(address to, uint256 tokenId, bytes data)", - "function safeTransferFrom(address from, address to, uint256 tokenId)", - "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", - "function setAllowance(uint256 tokenId, address spender)", - "function setApprovalForAll(address operator, bool approved)", - "function setBaseTokenURI(string uri)", - "function supportsInterface(bytes4 interfaceId) view returns (bool)", - "function symbol() view returns (string)", - "function tokenByIndex(uint256 index) view returns (uint256)", - "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", - "function tokenURI(uint256 tokenId) view returns (string)", - "function totalSupply() view returns (uint256)", - "function transferFrom(address from, address to, uint256 tokenId)" - ], - "deployTxnHash": "", - "sourceName": "", - "contractName": "", - "deployedOn": "invoke.init_account" + "deployedOn": "invoke.init_usd", + "gasUsed": 0, + "gasCost": "0", + "highlight": true } }, - "txns": { - "register_const_one_oracle": { - "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790", - "events": { - "NodeRegistered": [ - { - "name": "NodeRegistered", - "args": [ - "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733", - 8, - "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000", - [] - ] - } - ] - }, - "deployedOn": "invoke.register_const_one_oracle" - }, - "upgrade_core_proxy": { - "hash": "0xc14d560773444857612a31c4763a2374fdf4b82872659c96cc3319745e7828ae", - "events": { - "Upgraded": [ - { - "name": "Upgraded", - "args": [ - "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", - "0xcb38B655537cadEd39F10074E6159A4da131f77F" - ] - } - ] - }, - "deployedOn": "invoke.upgrade_core_proxy" - }, - "init_usd": { - "hash": "0xb26d3f1dc7ec72096a255afa8f675b3924314fa6ec439cdf16389d34dd887cca", - "events": { - "Upgraded": [ - { - "name": "Upgraded", - "args": [ - "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - "0x2415C2f2E6554441F613d82472Cdbe7B63680448" - ] - } - ], - "AssociatedSystemSet": [ - { - "name": "AssociatedSystemSet", - "args": [ - "0x6572633230000000000000000000000000000000000000000000000000000000", - "0x555344546f6b656e000000000000000000000000000000000000000000000000", - "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - "0x2415C2f2E6554441F613d82472Cdbe7B63680448" - ] - } - ] - }, - "deployedOn": "invoke.init_usd" - }, - "configure_usd_collateral": { - "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e", - "events": { - "CollateralConfigured": [ - { - "name": "CollateralConfigured", - "args": [ - "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - [ - true, - { - "type": "BigNumber", - "hex": "0x8ac7230489e80000" - }, - { - "type": "BigNumber", - "hex": "0x8ac7230489e80000" - }, - { - "type": "BigNumber", - "hex": "0x00" - }, - "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733", - "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - { - "type": "BigNumber", - "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ] - ] - } - ] - }, - "deployedOn": "invoke.configure_usd_collateral" - }, - "enable_basic_features": { - "hash": "0x4e50675674584735ccc52708bc9df6e027774582eb7304c75f8012cf731b1c17", - "events": { - "FeatureFlagAllowAllSet": [ - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6372656174654163636f756e7400000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6465706f73697400000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x7769746864726177000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6d696e7455736400000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6275726e55736400000000000000000000000000000000000000000000000000", - true + "imports": { + "oracle_manager": { + "url": "ipfs://QmY7E5hgvbJaiJPtZnnwAuVWvcg8Wo4P1Ztk7YSHcCPosS", + "tags": [ + "latest" + ], + "preset": "with-synthetix", + "contracts": { + "CoreModule": { + "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x628cb92e6ee8f9e9942f862c2977d07a4de4023c4176fe91195b9d0fc30d0ecb", + "sourceName": "contracts/modules/CoreModule.sol", + "contractName": "CoreModule", + "deployedOn": "contract.CoreModule" + }, + "NodeModule": { + "address": "0x3155755b79aA083bd953911C92705B7aA82a18F9", + "abi": [ + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x167e5c8c09dda5612e6aa4912bbd637883371f0e517c84e047a8a746f831d9e2", + "sourceName": "contracts/modules/NodeModule.sol", + "contractName": "NodeModule", + "deployedOn": "contract.NodeModule", + "gasUsed": 4094165, + "gasCost": "1002042574" + }, + "InitialProxy": { + "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [ + "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ], + "linkedLibraries": {}, + "deployTxnHash": "0x6253644956174f93d8b6c55810bb63a1053dc2910322fc2e5cd400387d7c16db", + "sourceName": "contracts/Proxy.sol", + "contractName": "Proxy", + "deployedOn": "contract.InitialProxy" + }, + "OracleRouter": { + "address": "0x5bf5b11053e734690269c6b9d438f8c9d48f528a", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "deployedOn": "router.OracleRouter", + "deployTxnHash": "0x3686b2ea2e8ba4355fc9612946d5513767c423788e83d7af2cd169d79508cbcd", + "contractName": "OracleRouter", + "sourceName": "OracleRouter.sol", + "gasUsed": 246006, + "gasCost": "1001856941" + }, + "Proxy": { + "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "deployTxnHash": "", + "sourceName": "", + "contractName": "", + "deployedOn": "invoke.upgrade_proxy", + "gasUsed": 0, + "gasCost": "0", + "highlight": true + } + }, + "imports": { + "trusted_multicall_forwarder": { + "url": "ipfs://QmV8nFJ9mkv5xV5N2SuJvoAKUUSnfkR44ikJzzVZbmDokw", + "tags": [ + "latest" + ], + "preset": "with-oracle-manager", + "contracts": { + "TrustedMulticallForwarder": { + "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e", + "abi": [ + "constructor()", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", + "event EIP712DomainChanged()", + "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)", + "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)", + "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", + "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable", + "function getBasefee() view returns (uint256 basefee)", + "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)", + "function getBlockNumber() view returns (uint256 blockNumber)", + "function getChainId() view returns (uint256 chainid)", + "function getCurrentBlockCoinbase() view returns (address coinbase)", + "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)", + "function getCurrentBlockTimestamp() view returns (uint256 timestamp)", + "function getEthBalance(address addr) view returns (uint256 balance)", + "function getLastBlockHash() view returns (bytes32 blockHash)", + "function getPrevRandao() view returns (uint256 prevrandao)", + "function nonces(address owner) view returns (uint256)", + "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)", + "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "src/TrustedMulticallForwarder.sol", + "contractName": "TrustedMulticallForwarder", + "deployedOn": "contract.TrustedMulticallForwarder", + "gasUsed": 0, + "gasCost": "0" + } + } + } + }, + "txns": { + "upgrade_proxy": { + "hash": "0x5a75b72d47fcfcd4a28c86d79bdb370440add694b516b10863e69362b73399bb", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "0x5bf5b11053e734690269C6B9D438F8C9d48F528A" + ] + } ] }, + "deployedOn": "invoke.upgrade_proxy", + "gasUsed": 55346, + "gasCost": "1001628631", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + } + }, + "extras": {} + }, + "trusted_multicall_forwarder": { + "url": "ipfs://QmeMjvpP4BWQHNC2iUfbgatcoU1MTQcybEoXttrJokEGEg", + "tags": [ + "latest" + ], + "preset": "with-synthetix", + "contracts": { + "TrustedMulticallForwarder": { + "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e", + "abi": [ + "constructor()", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", + "event EIP712DomainChanged()", + "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)", + "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)", + "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", + "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable", + "function getBasefee() view returns (uint256 basefee)", + "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)", + "function getBlockNumber() view returns (uint256 blockNumber)", + "function getChainId() view returns (uint256 chainid)", + "function getCurrentBlockCoinbase() view returns (address coinbase)", + "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)", + "function getCurrentBlockTimestamp() view returns (uint256 timestamp)", + "function getEthBalance(address addr) view returns (uint256 balance)", + "function getLastBlockHash() view returns (bytes32 blockHash)", + "function getPrevRandao() view returns (uint256 prevrandao)", + "function nonces(address owner) view returns (uint256)", + "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)", + "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "src/TrustedMulticallForwarder.sol", + "contractName": "TrustedMulticallForwarder", + "deployedOn": "contract.TrustedMulticallForwarder", + "gasUsed": 0, + "gasCost": "0" + } + } + } + }, + "txns": { + "register_const_one_oracle": { + "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790", + "events": { + "NodeRegistered": [ { - "name": "FeatureFlagAllowAllSet", + "name": "NodeRegistered", "args": [ - "0x6c69717569646174650000000000000000000000000000000000000000000000", - true + "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733", + 8, + "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000", + [] ] - }, + } + ] + }, + "deployedOn": "invoke.register_const_one_oracle" + }, + "upgrade_core_proxy": { + "hash": "0xe67ec65a0e268c119c63c6e260c829fcb3e3f6c0c2e4608b9d5b6c5d67c2d621", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", + "0x3aAde2dCD2Df6a8cAc689EE797591b2913658659" + ] + } + ] + }, + "deployedOn": "invoke.upgrade_core_proxy", + "gasUsed": 51103, + "gasCost": "1000974364", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_burnUsd": { + "hash": "0x29125622aa4ab40fe38bc12dd269c8ea87a19327647a2766eb12cbd6da0a8aa3", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x6c69717569646174655661756c74000000000000000000000000000000000000", + "0x6275726e55736400000000000000000000000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_burnUsd", + "gasUsed": 37059, + "gasCost": "1000852984", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_claimRewards": { + "hash": "0x70eb2af1275c0dd1b91c50e716ca30594dd01a27c04e182a22d645464bc36b1c", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000", + "0x636c61696d526577617264730000000000000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_claimRewards", + "gasUsed": 37119, + "gasCost": "1000746625", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_createAccount": { + "hash": "0x70b9ac79bb6d7d700c1c4fc6d9ccecdcceea0eb985f925295322579bc2c55d9d", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000", + "0x6372656174654163636f756e7400000000000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_createAccount", + "gasUsed": 37131, + "gasCost": "1000653528", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_delegateCollateral": { + "hash": "0x0bc7b3a1c91bf721152d7f0ea93f4272a3cc9e2b499a794b02fc4218d1f71816", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_delegateCollateral", + "gasUsed": 37191, + "gasCost": "1000572040", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_deposit": { + "hash": "0x96fb5bf7520ccd54c47e6039fbd40ef4c3dc65249f1153f88ac72547f163e08e", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6465706f73697400000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_deposit", + "gasUsed": 37059, + "gasCost": "1000500713", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_depositMarketCollateral": { + "hash": "0x7d38b6570bc7162c62b931eeebb8af0061090576142266652dc832204e6b5db8", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_depositMarketCollateral", + "gasUsed": 37251, + "gasCost": "1000438279", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_depositMarketUsd": { + "hash": "0x5903260575efa87ec9b09c7e2e25cef50099e85b1b09fa16fb47290a90f1211b", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ "0x6465706f7369744d61726b657455736400000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_depositMarketUsd", + "gasUsed": 37167, + "gasCost": "1000383631", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_liquidate": { + "hash": "0x3ee4e87de44094fadd4c60554dc368986a90f2eb5e432265c7efe90fd193f220", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x77697468647261774d61726b6574557364000000000000000000000000000000", + "0x6c69717569646174650000000000000000000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_liquidate", + "gasUsed": 37083, + "gasCost": "1000335796", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_liquidateVault": { + "hash": "0x59f850a87f83d9c59a809771899e38ff163726f44dae36ddc6a1930110f717e2", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x636c61696d526577617264730000000000000000000000000000000000000000", + "0x6c69717569646174655661756c74000000000000000000000000000000000000", true ] - }, + } + ] + }, + "deployedOn": "invoke.enable_feature_liquidateVault", + "gasUsed": 37143, + "gasCost": "1000293926", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_mintUsd": { + "hash": "0xe24dadf2d396337339a464cdd7a0dabe9696f2148e5ccd4198714a017b44322d", + "events": { + "FeatureFlagAllowAllSet": [ { "name": "FeatureFlagAllowAllSet", "args": [ - "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000", + "0x6d696e7455736400000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_mintUsd", + "gasUsed": 37059, + "gasCost": "1000257277", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdraw": { + "hash": "0x848fc31023e3b4c8e8a3c85e063a7e011388975d05b641320d5d1a3746049895", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x7769746864726177000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_withdraw", + "gasUsed": 37071, + "gasCost": "1000225197", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdrawMarketCollateral": { + "hash": "0xcd4a3dafb16c62ff5dadb31dec8419407ebcefa2212d8de2bb1815162d4cf2d5", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_withdrawMarketCollateral", + "gasUsed": 37263, + "gasCost": "1000197117", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdrawMarketUsd": { + "hash": "0xac7fc75713b8070cbe8f53a67dd5b39c54b8e0b74611446d9e36d567c54fc40a", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x77697468647261774d61726b6574557364000000000000000000000000000000", true ] } ] }, - "deployedOn": "invoke.enable_basic_features" + "deployedOn": "invoke.enable_feature_withdrawMarketUsd", + "gasUsed": 37179, + "gasCost": "1000172539", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" }, "init_account": { - "hash": "0x9e0a576ce5aefed364dc47c4e510955c25f7b5f8f02741fa9380409246242e81", + "hash": "0xd0fae82048c4b625ce9d70a17492aee4b8bfc6e32b72ff53a381f80cec85a204", "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", + "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429" + ] + } + ], "AssociatedSystemSet": [ { "name": "AssociatedSystemSet", @@ -2572,17 +2685,84 @@ "0x6572633732310000000000000000000000000000000000000000000000000000", "0x6163636f756e744e667400000000000000000000000000000000000000000000", "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", - "0xcbf25513C912eEB8072972347Afd2BE94452B5E6" + "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429" + ] + } + ] + }, + "deployedOn": "invoke.init_account", + "gasUsed": 80772, + "gasCost": "1000151026", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "init_usd": { + "hash": "0xaa194dd98512950fdbe0731b8078e7d31d755957ed14071cc6891eabb65adcba", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", + "0xab16A69A5a8c12C732e0DEFF4BE56A70bb64c926" + ] + } + ], + "AssociatedSystemSet": [ + { + "name": "AssociatedSystemSet", + "args": [ + "0x6572633230000000000000000000000000000000000000000000000000000000", + "0x555344546f6b656e000000000000000000000000000000000000000000000000", + "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", + "0xab16A69A5a8c12C732e0DEFF4BE56A70bb64c926" ] } ] }, - "deployedOn": "invoke.init_account" + "deployedOn": "invoke.init_usd", + "gasUsed": 94074, + "gasCost": "1000132250", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" }, "set_oracle_manager": { "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633", "events": {}, "deployedOn": "invoke.set_oracle_manager" + }, + "configure_usd_collateral": { + "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e", + "events": { + "CollateralConfigured": [ + { + "name": "CollateralConfigured", + "args": [ + "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", + [ + true, + { + "type": "BigNumber", + "hex": "0x8ac7230489e80000" + }, + { + "type": "BigNumber", + "hex": "0x8ac7230489e80000" + }, + { + "type": "BigNumber", + "hex": "0x00" + }, + "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733", + "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", + { + "type": "BigNumber", + "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ] + ] + } + ] + }, + "deployedOn": "invoke.configure_usd_collateral" } }, "extras": { @@ -2591,164 +2771,43 @@ } } }, - "hash": "08ca4fd615a093e43af496bb04e665da", + "hash": "d14459f8bcfa7d5a3024dcde62d9fa26", "version": 6 }, "provision.spotFactory": { "artifacts": { "imports": { "spotFactory": { - "url": "ipfs://QmSenAcPJXx6tG9ZUGL6DGgwHZsDiAmjbk3YqZQHxhkC8G", + "url": "ipfs://Qmb45uVUaWLdU8vnJqPoSqjYJ1xTgtFUp7bB94NAbHypyx", "tags": [ "latest" ], "preset": "main", "contracts": { - "CoreModule": { - "address": "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4", + "AsyncOrderConfigurationModule": { + "address": "0x1f10F3Ba7ACB61b2F50B9d6DdCf91a6f787C0E82", "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" + "error InvalidSettlementStrategy(uint256 settlementStrategyId)", + "error InvalidSettlementWindowDuration(uint256 duration)", + "error OnlyMarketOwner(address marketOwner, address sender)", + "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)", + "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", + "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)", + "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)", + "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", + "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x8fc8536b4d23a48239263d25b83ff85696f4158c156352ad1fba64a0d1845c7b", - "sourceName": "contracts/modules/CoreModule.sol", - "contractName": "CoreModule", - "deployedOn": "contract.CoreModule" + "deployTxnHash": "0x9cd40a2f1f33d5bc3a568a930e6b22a1268502b78085de93b8f878135d6c92d0", + "sourceName": "contracts/modules/AsyncOrderConfigurationModule.sol", + "contractName": "AsyncOrderConfigurationModule", + "deployedOn": "contract.AsyncOrderConfigurationModule", + "gasUsed": 896430, + "gasCost": "1000101395" }, - "InitialSpotMarketProxy": { - "address": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [ - "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" - ], - "linkedLibraries": {}, - "deployTxnHash": "0x6898bffcc2e0041523b68bddbabfc07203ee94609d0239fd5da3833ffcb59989", - "sourceName": "contracts/Proxy.sol", - "contractName": "Proxy", - "deployedOn": "contract.InitialSpotMarketProxy" - }, - "SpotMarketFactoryModule": { - "address": "0xaffF86843b3F85fe4960f1913fD62E6780183D2d", - "abi": [ - "error FeatureUnavailable(bytes32 which)", - "error InvalidMarketOwner()", - "error InvalidSynthImplementation(uint256 synthImplementation)", - "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", - "error MissingAssociatedSystem(bytes32 id)", - "error NotNominated(address addr)", - "error OnlyMarketOwner(address marketOwner, address sender)", - "error OverflowInt256ToUint256()", - "error Unauthorized(address addr)", - "error ZeroAddress()", - "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", - "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)", - "event MarketNominationRenounced(uint128 indexed marketId, address nominee)", - "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)", - "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)", - "event SynthImplementationSet(address synthImplementation)", - "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)", - "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId)", - "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)", - "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)", - "function acceptMarketOwnership(uint128 synthMarketId)", - "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)", - "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", - "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)", - "function getSynth(uint128 marketId) view returns (address synthAddress)", - "function getSynthImpl(uint128 marketId) view returns (address implAddress)", - "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", - "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", - "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)", - "function name(uint128 marketId) view returns (string marketName)", - "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)", - "function registerUnmanagedSystem(bytes32 id, address endpoint)", - "function renounceMarketNomination(uint128 synthMarketId)", - "function renounceMarketOwnership(uint128 synthMarketId)", - "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)", - "function setDecayRate(uint128 marketId, uint256 rate)", - "function setSynthImplementation(address synthImplementation)", - "function setSynthetix(address synthetix)", - "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)", - "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId)", - "function upgradeSynthImpl(uint128 marketId)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x19f1867478cc24a3fa29d97cf41f00955553a9412cfc974436aa659f26b6249e", - "sourceName": "contracts/modules/SpotMarketFactoryModule.sol", - "contractName": "SpotMarketFactoryModule", - "deployedOn": "contract.SpotMarketFactoryModule" - }, - "AtomicOrderModule": { - "address": "0xB578E90F9Ff992439D66e4E5349d63f80Df61336", - "abi": [ - "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", - "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", - "error InsufficientAmountReceived(uint256 expected, uint256 current)", - "error InvalidMarket(uint128 marketId)", - "error InvalidPrices()", - "error OverflowInt256ToUint256()", - "error OverflowUint256ToInt256()", - "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", - "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", - "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactIn(uint128 marketId, uint256 synthAmount) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactOut(uint128 marketId, uint256 usdAmount) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xd00c5fe90da6a8df0ae9934954ebefb6a62ce1e34a14afefc480dac036e8b4f2", - "sourceName": "contracts/modules/AtomicOrderModule.sol", - "contractName": "AtomicOrderModule", - "deployedOn": "contract.AtomicOrderModule" - }, - "AsyncOrderModule": { - "address": "0x80C4db56a17C91d9BBeb8d0F53C9Ef97aa6D57F3", + "AsyncOrderModule": { + "address": "0x457cCf29090fe5A24c19c1bc95F492168C0EaFdb", "abi": [ "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)", "error InsufficientSharesAmount(uint256 expected, uint256 actual)", @@ -2759,90 +2818,140 @@ "error InvalidSettlementStrategy(uint256 settlementStrategyId)", "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", "error OverflowInt256ToUint256()", - "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", + "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)", "function cancelOrder(uint128 marketId, uint128 asyncOrderId)", - "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", - "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)" + "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x68a5a9b387ec1ad2a69f5cfb3e505452f738b41a13503dce7d6ace0ddbe78894", + "deployTxnHash": "0x981a2b026c9039c38b823d832fc75d96832e2ab807560f40f44a4d5d36bdeadd", "sourceName": "contracts/modules/AsyncOrderModule.sol", "contractName": "AsyncOrderModule", - "deployedOn": "contract.AsyncOrderModule" + "deployedOn": "contract.AsyncOrderModule", + "gasUsed": 1317254, + "gasCost": "1000089479" }, "AsyncOrderSettlementModule": { - "address": "0x2aB5Ab7574276eC45A62415c79ab958E706F49c6", + "address": "0x525C7063E7C20997BaaE9bDa922159152D0e8417", "abi": [ "error InvalidClaim(uint256 asyncOrderId)", "error InvalidSettlementStrategy(uint8 strategyType)", "error InvalidVerificationResponse()", "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", - "error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)", "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", "error OverflowInt256ToUint256()", "error OverflowUint256ToInt256()", "error OverflowUint256ToUint64()", - "error PriceDeviationToleranceExceeded(uint256 deviation, uint256 tolerance)", "error SettlementStrategyNotFound(uint8 strategyType)", "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)", - "function PRECISION() view returns (int256)", - "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function settlePythOrder(bytes result, bytes extraData) payable returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" + "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0xf39bdeaa8289165a1837d0705a0ef8159f621814bc1402df1121bc1368d49b84", + "deployTxnHash": "0x4dd0bf0c3cd8efa538686906e2df08afe07ad8c121d3a2cd03ffd009d1aa4ed7", "sourceName": "contracts/modules/AsyncOrderSettlementModule.sol", "contractName": "AsyncOrderSettlementModule", - "deployedOn": "contract.AsyncOrderSettlementModule" + "deployedOn": "contract.AsyncOrderSettlementModule", + "gasUsed": 1998488, + "gasCost": "1000079277" }, - "AsyncOrderConfigurationModule": { - "address": "0x66Bc85ee738F79d60E9793c468d4eAd944b850cD", + "AtomicOrderModule": { + "address": "0x38a024C0b412B9d1db8BC398140D00F5Af3093D4", "abi": [ - "error OnlyMarketOwner(address marketOwner, address sender)", - "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)", - "event SettlementStrategyUpdated(uint128 indexed synthMarketId, uint256 indexed strategyId, bool enabled)", - "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)", - "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)", - "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)" + "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", + "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", + "error InsufficientAmountReceived(uint256 expected, uint256 current)", + "error InvalidMarket(uint128 marketId)", + "error InvalidPrices()", + "error OverflowInt256ToUint256()", + "error OverflowUint256ToInt256()", + "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", + "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", + "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x7de889785eadbb15847463a2c3c73717825134debdb85e8f917b19378118f6f1", - "sourceName": "contracts/modules/AsyncOrderConfigurationModule.sol", - "contractName": "AsyncOrderConfigurationModule", - "deployedOn": "contract.AsyncOrderConfigurationModule" + "deployTxnHash": "0x8f0dab79850d8cb230f22910c1106ced9fb398e7f6413a4440633c38b707dbd7", + "sourceName": "contracts/modules/AtomicOrderModule.sol", + "contractName": "AtomicOrderModule", + "deployedOn": "contract.AtomicOrderModule", + "gasUsed": 2108662, + "gasCost": "1000070688" }, - "WrapperModule": { - "address": "0x7EE729A994456A58F99e7dc7994081b4F5dc92d5", + "CoreModule": { + "address": "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4", "abi": [ - "error FailedTransfer(address from, address to, uint256 value)", - "error InsufficientAmountReceived(uint256 expected, uint256 current)", - "error InvalidCollateralType(bytes32 message)", - "error InvalidMarket(uint128 marketId)", - "error OnlyMarketOwner(address marketOwner, address sender)", - "error OverflowInt256ToUint256()", - "error OverflowUint256ToInt256()", - "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", - "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", - "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", - "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)", - "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)", - "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x8edc2554ab03ce03d6b3603828f48cc4af18efea61632f3db45e5d22bca1c6c5", - "sourceName": "contracts/modules/WrapperModule.sol", - "contractName": "WrapperModule", - "deployedOn": "contract.WrapperModule" + "deployTxnHash": "0x8fc8536b4d23a48239263d25b83ff85696f4158c156352ad1fba64a0d1845c7b", + "sourceName": "contracts/modules/CoreModule.sol", + "contractName": "CoreModule", + "deployedOn": "contract.CoreModule" + }, + "FeatureFlagModule": { + "address": "0x5fc748f1FEb28d7b76fa1c6B07D8ba2d5535177c", + "abi": [ + "error Unauthorized(address addr)", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", + "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", + "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", + "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", + "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", + "function addToFeatureFlagAllowlist(bytes32 feature, address account)", + "function getDeniers(bytes32 feature) view returns (address[])", + "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", + "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", + "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", + "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", + "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", + "function setDeniers(bytes32 feature, address[] deniers)", + "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", + "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x964ccc4b71f9a4da6a55d025f6a63cea97995bdd1017d643c47d447465804184", + "sourceName": "contracts/modules/FeatureFlagModule.sol", + "contractName": "FeatureFlagModule", + "deployedOn": "contract.FeatureFlagModule", + "gasUsed": 765178, + "gasCost": "1000063095" }, "MarketConfigurationModule": { - "address": "0x6e8D3F3705F23ec1B93d7EB69FDcB97c152223f7", + "address": "0xB82008565FdC7e44609fA118A4a681E92581e680", "abi": [ "error InvalidCollateralLeverage(uint256)", "error InvalidFeeCollectorInterface(address invalidFeeCollector)", @@ -2876,68 +2985,26 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0xa4bf23a7c9e900ea9db09cabdf1b50abf0c0b379cf0d658aa5402834e44f710d", + "deployTxnHash": "0x1792853c2d22b981f04dc9578b82912320b9c7457933361d966ab3c1b726df90", "sourceName": "contracts/modules/MarketConfigurationModule.sol", "contractName": "MarketConfigurationModule", - "deployedOn": "contract.MarketConfigurationModule" - }, - "FeatureFlagModule": { - "address": "0xb6D5fFB2DF19F197021d361e020A30f5612867F6", - "abi": [ - "error Unauthorized(address addr)", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", - "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", - "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", - "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", - "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", - "function addToFeatureFlagAllowlist(bytes32 feature, address account)", - "function getDeniers(bytes32 feature) view returns (address[])", - "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", - "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", - "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", - "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", - "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", - "function setDeniers(bytes32 feature, address[] deniers)", - "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", - "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x41a3c81ea4cf3da1a814cf8e58ea41af9604311680beb656fc3e151410923cb7", - "sourceName": "contracts/modules/FeatureFlagModule.sol", - "contractName": "FeatureFlagModule", - "deployedOn": "contract.FeatureFlagModule" + "deployedOn": "contract.MarketConfigurationModule", + "gasUsed": 720683, + "gasCost": "1000055611" }, - "SpotMarketRouter": { - "address": "0x68bD83b894DE9a65B1F013646813f9aCE038E674", + "SpotMarketFactoryModule": { + "address": "0x2a810409872AfC346F9B5b26571Fd6eC42EA4849", "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", "error FeatureUnavailable(bytes32 which)", "error InvalidMarketOwner()", "error InvalidSynthImplementation(uint256 synthImplementation)", "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", "error MissingAssociatedSystem(bytes32 id)", + "error NotNominated(address addr)", "error OnlyMarketOwner(address marketOwner, address sender)", "error OverflowInt256ToUint256()", + "error Unauthorized(address addr)", + "error ZeroAddress()", "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)", "event MarketNominationRenounced(uint128 indexed marketId, address nominee)", @@ -2945,7 +3012,7 @@ "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)", "event SynthImplementationSet(address synthImplementation)", "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)", - "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId)", + "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)", "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)", "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)", "function acceptMarketOwnership(uint128 synthMarketId)", @@ -2967,57 +3034,224 @@ "function setSynthImplementation(address synthImplementation)", "function setSynthetix(address synthetix)", "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)", - "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId)", - "function upgradeSynthImpl(uint128 marketId)", - "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", - "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", - "error InsufficientAmountReceived(uint256 expected, uint256 current)", - "error InvalidMarket(uint128 marketId)", - "error InvalidPrices()", - "error OverflowUint256ToInt256()", - "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", - "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", - "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactIn(uint128 marketId, uint256 synthAmount) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactOut(uint128 marketId, uint256 usdAmount) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)", - "error InsufficientSharesAmount(uint256 expected, uint256 actual)", - "error InvalidAsyncTransactionType(uint8 transactionType)", - "error InvalidClaim(uint256 asyncOrderId)", - "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)", - "error InvalidSettlementStrategy(uint256 settlementStrategyId)", - "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", - "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", - "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)", - "function cancelOrder(uint128 marketId, uint128 asyncOrderId)", - "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", - "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", - "error InvalidSettlementStrategy(uint8 strategyType)", - "error InvalidVerificationResponse()", - "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", - "error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)", - "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", - "error OverflowUint256ToUint64()", - "error PriceDeviationToleranceExceeded(uint256 deviation, uint256 tolerance)", - "error SettlementStrategyNotFound(uint8 strategyType)", - "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)", - "function PRECISION() view returns (int256)", + "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)", + "function upgradeSynthImpl(uint128 marketId)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x848a9c683c0d1c433a13ec0ddc9d55631cadbed131ecf15bdaa89b782e010dc5", + "sourceName": "contracts/modules/SpotMarketFactoryModule.sol", + "contractName": "SpotMarketFactoryModule", + "deployedOn": "contract.SpotMarketFactoryModule", + "gasUsed": 2236289, + "gasCost": "1000048994" + }, + "SynthTokenModule": { + "address": "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", + "abi": [ + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidDecayRate()", + "error InvalidParameter(string parameter, string reason)", + "error Unauthorized(address addr)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function advanceEpoch() returns (uint256)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address user) view returns (uint256)", + "function burn(address from, uint256 amount)", + "function decayRate() view returns (uint256)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function setDecayRate(uint256 _rate)", + "function symbol() view returns (string)", + "function totalShares() view returns (uint256)", + "function totalSupply() view returns (uint256 supply)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0xdb2a26600e859bf773afba3100d61e0a0cc39c355a47de43e5d4ef05be5ebf0e", + "sourceName": "contracts/modules/token/SynthTokenModule.sol", + "contractName": "SynthTokenModule", + "deployedOn": "contract.SynthTokenModule", + "gasUsed": 1207447, + "gasCost": "1000043783" + }, + "WrapperModule": { + "address": "0x8A93d247134d91e0de6f96547cB0204e5BE8e5D8", + "abi": [ + "error FailedTransfer(address from, address to, uint256 value)", + "error InsufficientAmountReceived(uint256 expected, uint256 current)", + "error InvalidCollateralType(address configuredCollateralType)", + "error InvalidMarket(uint128 marketId)", + "error OnlyMarketOwner(address marketOwner, address sender)", + "error OverflowInt256ToUint256()", + "error OverflowUint256ToInt256()", + "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", + "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", + "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", + "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)", + "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)", + "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x4b8d40970261e5b3553e98ec1c942bcf6cb92a6594343f64f92f46842b8c6632", + "sourceName": "contracts/modules/WrapperModule.sol", + "contractName": "WrapperModule", + "deployedOn": "contract.WrapperModule", + "gasUsed": 1657499, + "gasCost": "1000038751" + }, + "InitialSpotMarketProxy": { + "address": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [ + "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ], + "linkedLibraries": {}, + "deployTxnHash": "0x6898bffcc2e0041523b68bddbabfc07203ee94609d0239fd5da3833ffcb59989", + "sourceName": "contracts/Proxy.sol", + "contractName": "Proxy", + "deployedOn": "contract.InitialSpotMarketProxy" + }, + "SpotMarketRouter": { + "address": "0x40918ba7f132e0acba2ce4de4c4baf9bd2d7d849", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error FeatureUnavailable(bytes32 which)", + "error InvalidMarketOwner()", + "error InvalidSynthImplementation(uint256 synthImplementation)", + "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", + "error MissingAssociatedSystem(bytes32 id)", + "error OnlyMarketOwner(address marketOwner, address sender)", + "error OverflowInt256ToUint256()", + "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", + "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)", + "event MarketNominationRenounced(uint128 indexed marketId, address nominee)", + "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)", + "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)", + "event SynthImplementationSet(address synthImplementation)", + "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)", + "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)", + "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)", + "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)", + "function acceptMarketOwnership(uint128 synthMarketId)", + "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)", + "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", + "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)", + "function getSynth(uint128 marketId) view returns (address synthAddress)", + "function getSynthImpl(uint128 marketId) view returns (address implAddress)", + "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", + "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", + "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)", + "function name(uint128 marketId) view returns (string marketName)", + "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)", + "function registerUnmanagedSystem(bytes32 id, address endpoint)", + "function renounceMarketNomination(uint128 synthMarketId)", + "function renounceMarketOwnership(uint128 synthMarketId)", + "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)", + "function setDecayRate(uint128 marketId, uint256 rate)", + "function setSynthImplementation(address synthImplementation)", + "function setSynthetix(address synthetix)", + "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)", + "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)", + "function upgradeSynthImpl(uint128 marketId)", + "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", + "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", + "error InsufficientAmountReceived(uint256 expected, uint256 current)", + "error InvalidMarket(uint128 marketId)", + "error InvalidPrices()", + "error OverflowUint256ToInt256()", + "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", + "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)", + "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)", + "error InsufficientSharesAmount(uint256 expected, uint256 actual)", + "error InvalidAsyncTransactionType(uint8 transactionType)", + "error InvalidClaim(uint256 asyncOrderId)", + "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)", + "error InvalidSettlementStrategy(uint256 settlementStrategyId)", + "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", + "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", + "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)", + "function cancelOrder(uint128 marketId, uint128 asyncOrderId)", + "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "error InvalidSettlementStrategy(uint8 strategyType)", + "error InvalidVerificationResponse()", + "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", + "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", + "error OverflowUint256ToUint64()", + "error SettlementStrategyNotFound(uint8 strategyType)", + "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)", "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function settlePythOrder(bytes result, bytes extraData) payable returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "error InvalidSettlementWindowDuration(uint256 duration)", "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)", - "event SettlementStrategyUpdated(uint128 indexed synthMarketId, uint256 indexed strategyId, bool enabled)", + "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)", "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)", + "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)", "error FailedTransfer(address from, address to, uint256 value)", - "error InvalidCollateralType(bytes32 message)", + "error InvalidCollateralType(address configuredCollateralType)", "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", @@ -3072,9 +3306,67 @@ "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" ], "deployedOn": "router.SpotMarketRouter", - "deployTxnHash": "0x2a8b0bde6e50d7a57fec8c19f11ff2fdcfdc820770defa56f81920e6d996e92d", + "deployTxnHash": "0x94ebb8bfbbb4180d7cff3f140b71a375fa9598e0945ea4425d42a00434699664", "contractName": "SpotMarketRouter", - "sourceName": "SpotMarketRouter.sol" + "sourceName": "SpotMarketRouter.sol", + "gasUsed": 820469, + "gasCost": "1000034443" + }, + "SynthRouter": { + "address": "0xf32d39ff9f6aa7a7a64d7a4f00a54826ef791a55", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidDecayRate()", + "error InvalidParameter(string parameter, string reason)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function advanceEpoch() returns (uint256)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address user) view returns (uint256)", + "function burn(address from, uint256 amount)", + "function decayRate() view returns (uint256)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function setDecayRate(uint256 _rate)", + "function symbol() view returns (string)", + "function totalShares() view returns (uint256)", + "function totalSupply() view returns (uint256 supply)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "deployedOn": "router.SynthRouter", + "deployTxnHash": "0x1b9ad6e7b732dddb21b1d0bf4da8a69c9b26790f8e65410fec67728024b9e4de", + "contractName": "SynthRouter", + "sourceName": "SynthRouter.sol", + "gasUsed": 381169, + "gasCost": "1000030374" }, "SpotMarketProxy": { "address": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", @@ -3111,7 +3403,7 @@ "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)", "event SynthImplementationSet(address synthImplementation)", "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)", - "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId)", + "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)", "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)", "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)", "function acceptMarketOwnership(uint128 synthMarketId)", @@ -3133,7 +3425,7 @@ "function setSynthImplementation(address synthImplementation)", "function setSynthetix(address synthetix)", "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)", - "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId)", + "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)", "function upgradeSynthImpl(uint128 marketId)", "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)", "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)", @@ -3146,10 +3438,10 @@ "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactIn(uint128 marketId, uint256 synthAmount) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function quoteSellExactOut(uint128 marketId, uint256 usdAmount) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", @@ -3160,30 +3452,28 @@ "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)", "error InvalidSettlementStrategy(uint256 settlementStrategyId)", "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)", - "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", + "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)", "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)", "function cancelOrder(uint128 marketId, uint128 asyncOrderId)", - "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", - "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 settlementTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", + "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)", "error InvalidSettlementStrategy(uint8 strategyType)", "error InvalidVerificationResponse()", "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)", - "error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)", "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)", "error OverflowUint256ToUint64()", - "error PriceDeviationToleranceExceeded(uint256 deviation, uint256 tolerance)", "error SettlementStrategyNotFound(uint8 strategyType)", "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)", - "function PRECISION() view returns (int256)", "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", - "function settlePythOrder(bytes result, bytes extraData) payable returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)", + "error InvalidSettlementWindowDuration(uint256 duration)", "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)", - "event SettlementStrategyUpdated(uint128 indexed synthMarketId, uint256 indexed strategyId, bool enabled)", + "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)", "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)", + "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)", "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)", "error FailedTransfer(address from, address to, uint256 value)", - "error InvalidCollateralType(bytes32 message)", + "error InvalidCollateralType(address configuredCollateralType)", "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)", "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)", @@ -3240,480 +3530,17 @@ "deployTxnHash": "", "sourceName": "", "contractName": "", - "deployedOn": "invoke.upgradeSpotMarketProxy" - }, - "SynthTokenModule": { - "address": "0xcE52eA37a14cb6Da29407de69c313C452Bbcb31e", - "abi": [ - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidDecayRate()", - "error InvalidParameter(string parameter, string reason)", - "error Unauthorized(address addr)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function advanceEpoch() returns (uint256)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address user) view returns (uint256)", - "function burn(address from, uint256 amount)", - "function decayRate() view returns (uint256)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function setDecayRate(uint256 _rate)", - "function symbol() view returns (string)", - "function totalShares() view returns (uint256)", - "function totalSupply() view returns (uint256 supply)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xc81b6c123f6f17a9bdcf91a1007c7d2645cc6112e67105d1bdec84f853a7be02", - "sourceName": "contracts/modules/token/SynthTokenModule.sol", - "contractName": "SynthTokenModule", - "deployedOn": "contract.SynthTokenModule" - }, - "SynthRouter": { - "address": "0x606aD67D3A845b7F3C71CE7329874141FA4B5CC3", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidDecayRate()", - "error InvalidParameter(string parameter, string reason)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function advanceEpoch() returns (uint256)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address user) view returns (uint256)", - "function burn(address from, uint256 amount)", - "function decayRate() view returns (uint256)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function setDecayRate(uint256 _rate)", - "function symbol() view returns (string)", - "function totalShares() view returns (uint256)", - "function totalSupply() view returns (uint256 supply)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "deployedOn": "router.SynthRouter", - "deployTxnHash": "0x669f1fb5055bf3db7f9ae1d1f4585d38334ba1205ba1182360fff83cfc2fd22a", - "contractName": "SynthRouter", - "sourceName": "SynthRouter.sol" - } - }, - "txns": { - "upgradeSpotMarketProxy": { - "hash": "0x7fdc4e9cc969294b6e75fde9822ab1a42990c5df6fae994af27c59cb2b1ebcdc", - "events": { - "Upgraded": [ - { - "name": "Upgraded", - "args": [ - "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", - "0x68bD83b894DE9a65B1F013646813f9aCE038E674" - ] - } - ] - }, - "deployedOn": "invoke.upgradeSpotMarketProxy" - }, - "addCreateSynthToFeatureFlag": { - "hash": "0x1a0e01ba475bedee67192a13e3098b9610df78a081022f10626bf92018e839e4", - "events": { - "FeatureFlagAllowlistAdded": [ - { - "name": "FeatureFlagAllowlistAdded", - "args": [ - "0x63726561746553796e7468000000000000000000000000000000000000000000", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" - ] - } - ] - }, - "deployedOn": "invoke.addCreateSynthToFeatureFlag" - }, - "setSynthetixSystem": { - "hash": "0xc65a1a496605eb383a62615b8f9cc73b7d05606e91b2eb2b6d2898a1a78ef096", - "events": {}, - "deployedOn": "invoke.setSynthetixSystem" - }, - "addSpotMarketToFeatureFlag": { - "hash": "0xc53f8c210de4158908d81634fd02b8e8ac4b83a5fca4a312a25806ada987e58f", - "events": { - "FeatureFlagAllowlistAdded": [ - { - "name": "FeatureFlagAllowlistAdded", - "args": [ - "0x72656769737465724d61726b6574000000000000000000000000000000000000", - "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595" - ] - } - ] - }, - "deployedOn": "invoke.addSpotMarketToFeatureFlag" - }, - "setSynthImplementation": { - "hash": "0xae0f15a6415c56722f3bad5275b89701d6d620627757e5d1b1b4d5464b409a07", - "events": { - "SynthImplementationSet": [ - { - "name": "SynthImplementationSet", - "args": [ - "0x606aD67D3A845b7F3C71CE7329874141FA4B5CC3" - ] - } - ] - }, - "deployedOn": "invoke.setSynthImplementation" + "deployedOn": "invoke.upgradeSpotMarketProxy", + "gasUsed": 0, + "gasCost": "0" } }, - "extras": {}, "imports": { "synthetix": { - "url": "ipfs://QmR9K49D2FoSLsuzRzny5w3kD5xBGMJzNdvKKh8e5oFbrA", - "imports": { - "oracle_manager": { - "url": "ipfs://QmNdpCipdFABtUMj2Jp1qsqcCAVa4jJh2UpHZC9Ce4BttG", - "tags": [ - "latest" - ], - "preset": "with-synthetix", - "contracts": { - "CoreModule": { - "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x628cb92e6ee8f9e9942f862c2977d07a4de4023c4176fe91195b9d0fc30d0ecb", - "sourceName": "contracts/modules/CoreModule.sol", - "contractName": "CoreModule", - "deployedOn": "contract.CoreModule" - }, - "InitialProxy": { - "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [ - "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" - ], - "linkedLibraries": {}, - "deployTxnHash": "0x6253644956174f93d8b6c55810bb63a1053dc2910322fc2e5cd400387d7c16db", - "sourceName": "contracts/Proxy.sol", - "contractName": "Proxy", - "deployedOn": "contract.InitialProxy" - }, - "NodeModule": { - "address": "0x948105487EB1E72A36b080783d5Bddc8c0B921cd", - "abi": [ - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xa247a6a250be00f79893b9b917b68706333186ede4687074321cedb6991d6a7b", - "sourceName": "contracts/modules/NodeModule.sol", - "contractName": "NodeModule", - "deployedOn": "contract.NodeModule" - }, - "OracleRouter": { - "address": "0xB93191110BCeC5f50dDe0Ff73f15B9A0285a1Ebb", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "deployedOn": "router.OracleRouter", - "deployTxnHash": "0x011bacbd4dde092ec72834a13d03e77b9e8eb5c7dba2fa514ef3b154828e7314", - "contractName": "OracleRouter", - "sourceName": "OracleRouter.sol" - }, - "Proxy": { - "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error DeviationToleranceExceeded(int256 deviation)", - "error InvalidInputPrice()", - "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidPrice(int256 price)", - "error NodeNotRegistered(bytes32 nodeId)", - "error OverflowInt256ToUint256()", - "error OverflowInt56ToInt24()", - "error OverflowUint256ToInt256()", - "error OverflowUint256ToUint160()", - "error OverflowUint56ToInt56()", - "error StalenessToleranceExceeded()", - "error UnprocessableNode(bytes32 nodeId)", - "error UnsupportedOperation(uint8 operation)", - "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", - "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", - "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", - "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", - "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" - ], - "deployTxnHash": "", - "sourceName": "", - "contractName": "", - "deployedOn": "invoke.upgrade_proxy" - } - }, - "txns": { - "upgrade_proxy": { - "hash": "0xa12aca9c6dc6d312f3f6f4a1de00d7c503bf8bd615cc694ab584c2640bd1ca08", - "events": { - "Upgraded": [ - { - "name": "Upgraded", - "args": [ - "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", - "0xB93191110BCeC5f50dDe0Ff73f15B9A0285a1Ebb" - ] - } - ] - }, - "deployedOn": "invoke.upgrade_proxy" - } - }, - "extras": {} - } - }, + "url": "ipfs://QmP4vA6B1iTGSLkB9JV3P52qaP92jA6FkqUMgECaFHNNxT", "contracts": { - "InitialModuleBundle": { - "address": "0x828EED723cAF0A8F822249231266E38dF614923C", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "", - "sourceName": "contracts/modules/InitialModuleBundle.sol", - "contractName": "InitialModuleBundle", - "deployedOn": "contract.InitialModuleBundle" - }, - "InitialCoreProxy": { - "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)" - ], - "constructorArgs": [ - "0x828EED723cAF0A8F822249231266E38dF614923C", - "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" - ], - "linkedLibraries": {}, - "deployTxnHash": "0x1b7f77435db768205301ff41ec1220c522de51ecc45973c2818abba881cb0c6e", - "sourceName": "contracts/Proxy.sol", - "contractName": "Proxy", - "deployedOn": "contract.InitialCoreProxy" - }, - "FeatureFlagModule": { - "address": "0x04194CD5916c77fE82dCde7B3db051D84B2d33a1", - "abi": [ - "error Unauthorized(address addr)", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", - "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", - "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", - "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", - "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", - "function addToFeatureFlagAllowlist(bytes32 feature, address account)", - "function getDeniers(bytes32 feature) view returns (address[])", - "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", - "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", - "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", - "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", - "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", - "function setDeniers(bytes32 feature, address[] deniers)", - "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", - "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x6142ee22f6420507d634bf38e304d1c8dec703d26e8a96c6f980445b1a432c69", - "sourceName": "contracts/modules/core/FeatureFlagModule.sol", - "contractName": "FeatureFlagModule", - "deployedOn": "contract.FeatureFlagModule" - }, "AccountModule": { - "address": "0x4d7AD1D420f5A0D53AF92E9D3346155EA2260a10", + "address": "0x5c74c94173F05dA1720953407cbb920F3DF9f887", "abi": [ "error FeatureUnavailable(bytes32 which)", "error InvalidAccountId(uint128 accountId)", @@ -3743,13 +3570,65 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x8aaf794411df24f1408b4a7d250fb9a0d06585c6721de11bb713398db74e5c0d", + "deployTxnHash": "0x4180608a6fd39b3a484acdd74a9fba332a3de73842728d09a21e2d9df1c80994", "sourceName": "contracts/modules/core/AccountModule.sol", "contractName": "AccountModule", - "deployedOn": "contract.AccountModule" + "deployedOn": "contract.AccountModule", + "gasUsed": 1209268, + "gasCost": "1019119134" + }, + "AccountTokenModule": { + "address": "0x720472c8ce72c2A2D711333e064ABD3E6BbEAdd3", + "abi": [ + "error AlreadyInitialized()", + "error CannotSelfApprove(address addr)", + "error IndexOverrun(uint256 requestedIndex, uint256 length)", + "error InvalidOwner(address addr)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidTransferRecipient(address addr)", + "error OverflowUint256ToUint128()", + "error TokenAlreadyMinted(uint256 id)", + "error TokenDoesNotExist(uint256 id)", + "error Unauthorized(address addr)", + "error ZeroAddress()", + "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", + "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", + "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", + "function approve(address to, uint256 tokenId)", + "function balanceOf(address holder) view returns (uint256 balance)", + "function burn(uint256 tokenId)", + "function getApproved(uint256 tokenId) view returns (address operator)", + "function initialize(string tokenName, string tokenSymbol, string uri)", + "function isApprovedForAll(address holder, address operator) view returns (bool)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 tokenId)", + "function name() view returns (string)", + "function ownerOf(uint256 tokenId) view returns (address)", + "function safeMint(address to, uint256 tokenId, bytes data)", + "function safeTransferFrom(address from, address to, uint256 tokenId)", + "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", + "function setAllowance(uint256 tokenId, address spender)", + "function setApprovalForAll(address operator, bool approved)", + "function setBaseTokenURI(string uri)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function symbol() view returns (string)", + "function tokenByIndex(uint256 index) view returns (uint256)", + "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", + "function tokenURI(uint256 tokenId) view returns (string)", + "function totalSupply() view returns (uint256)", + "function transferFrom(address from, address to, uint256 tokenId)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0xb99d360e05fe304524d633444d8a27237920fe9fbd2aa59c9a128b8950402770", + "sourceName": "contracts/modules/account/AccountTokenModule.sol", + "contractName": "AccountTokenModule", + "deployedOn": "contract.AccountTokenModule", + "gasUsed": 1787668, + "gasCost": "1016921911" }, "AssociateDebtModule": { - "address": "0xa5d9CEA9D8d040eFdF9f7B575a7cF4854E4645B9", + "address": "0xe8D2A1E88c91DCd5433208d4152Cc4F399a7e91d", "abi": [ "error AccountNotFound(uint128 accountId)", "error EmptyDistribution()", @@ -3768,13 +3647,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x2f7bf6d40fe5df8a8c513c81f6ca25a1acfd4af02822eb2c654586f26ab3cbb2", + "deployTxnHash": "0x11f63e8c7c0ad2e4149eb715a6cf39b215a80bc8b98d1dad31ae59a2f42cc442", "sourceName": "contracts/modules/core/AssociateDebtModule.sol", "contractName": "AssociateDebtModule", - "deployedOn": "contract.AssociateDebtModule" + "deployedOn": "contract.AssociateDebtModule", + "gasUsed": 2267106, + "gasCost": "1015058762" }, "AssociatedSystemsModule": { - "address": "0x8F9E23d4766f6584553F72A1a9b76ca7059483FE", + "address": "0x5067457698Fd6Fa1C6964e416b3f42713513B3dD", "abi": [ "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", "error MissingAssociatedSystem(bytes32 id)", @@ -3787,13 +3668,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x5ec85d854e73847e2b8c99c2aba628553605a0434270d1add2a53958562aeb50", + "deployTxnHash": "0x7f4f38689494a7d99a746b757c3a0cb6d48388102cfad78bad9c80086ddf9c51", "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol", "contractName": "AssociatedSystemsModule", - "deployedOn": "contract.AssociatedSystemsModule" + "deployedOn": "contract.AssociatedSystemsModule", + "gasUsed": 877177, + "gasCost": "1013460916" }, "CcipReceiverModule": { - "address": "0xC4fE91F7612ffc7b8Dd15BE5A3A4C2b8169E56bd", + "address": "0x18E317A7D70d8fBf8e6E893616b52390EbBdb629", "abi": [ "error InvalidMessage()", "error NotCcipRouter(address)", @@ -3803,13 +3686,38 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0xfed4262a19d9b5d52291f0d6f4e6c9301a811c32a3fd89ac85442e535b9c22ce", + "deployTxnHash": "0xac23d3202a87f6fd498e4ec86290539492f4ebbd58475ade74989b09721278fa", "sourceName": "contracts/modules/core/CcipReceiverModule.sol", "contractName": "CcipReceiverModule", - "deployedOn": "contract.CcipReceiverModule" + "deployedOn": "contract.CcipReceiverModule", + "gasUsed": 469476, + "gasCost": "1011876699" + }, + "CollateralConfigurationModule": { + "address": "0x4b6aB5F819A515382B0dEB6935D793817bB4af28", + "abi": [ + "error InvalidParameter(string parameter, string reason)", + "error OverflowInt256ToUint256()", + "error PositionOutOfBounds()", + "error Unauthorized(address addr)", + "error ValueAlreadyInSet()", + "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", + "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", + "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))", + "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])", + "function getCollateralPrice(address collateralType) view returns (uint256)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x8e81087fc0d168429b8fec189251219eb68ccff42e2bf7477b9c33d8dd41247c", + "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol", + "contractName": "CollateralConfigurationModule", + "deployedOn": "contract.CollateralConfigurationModule", + "gasUsed": 837646, + "gasCost": "1010438577" }, "CollateralModule": { - "address": "0x845e620a05074f44905661d8B3b3Ec29DDe08768", + "address": "0xCace1b78160AE76398F486c8a18044da0d66d86D", "abi": [ "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)", "error AccountNotFound(uint128 accountId)", @@ -3841,34 +3749,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x8bc6f21b40afe98faa632f1ee04ff7bf7c1b3f2594458243a274c366ed5c8f30", + "deployTxnHash": "0xde73c9c9940f1a1ffcfdcdecfa9c03cc1f8c86413629e090ab4b884b2055f2f9", "sourceName": "contracts/modules/core/CollateralModule.sol", "contractName": "CollateralModule", - "deployedOn": "contract.CollateralModule" - }, - "CollateralConfigurationModule": { - "address": "0x7552B73fa041DE429B30027D869eF82788b0a57e", - "abi": [ - "error InvalidParameter(string parameter, string reason)", - "error OverflowInt256ToUint256()", - "error PositionOutOfBounds()", - "error Unauthorized(address addr)", - "error ValueAlreadyInSet()", - "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", - "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)", - "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))", - "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])", - "function getCollateralPrice(address collateralType) view returns (uint256)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x4a50f5d03a21ce0d5c76c9286efc87e232572789e69defde2bd9e32a145b973d", - "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol", - "contractName": "CollateralConfigurationModule", - "deployedOn": "contract.CollateralConfigurationModule" + "deployedOn": "contract.CollateralModule", + "gasUsed": 1730020, + "gasCost": "1009206621" }, "CrossChainUSDModule": { - "address": "0x9ceddb4fD222Fff6F42Ac69004e132E57dE810Cc", + "address": "0xD5ac451B0c50B9476107823Af206eD814a2e2580", "abi": [ "error FeatureUnavailable(bytes32 which)", "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)", @@ -3878,13 +3767,75 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x70be87ecd86eef47cf7f36399a920739379c8c8fa23d7493b6bf694843cc564c", + "deployTxnHash": "0x5b11a6d2d79e6735780d84f00875100687bdcc212c637e32df0b1ef6004cdf91", "sourceName": "contracts/modules/core/CrossChainUSDModule.sol", "contractName": "CrossChainUSDModule", - "deployedOn": "contract.CrossChainUSDModule" + "deployedOn": "contract.CrossChainUSDModule", + "gasUsed": 595289, + "gasCost": "1008188524" + }, + "FeatureFlagModule": { + "address": "0xF8e31cb472bc70500f08Cd84917E5A1912Ec8397", + "abi": [ + "error Unauthorized(address addr)", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)", + "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)", + "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)", + "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)", + "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)", + "function addToFeatureFlagAllowlist(bytes32 feature, address account)", + "function getDeniers(bytes32 feature) view returns (address[])", + "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)", + "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])", + "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)", + "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)", + "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)", + "function setDeniers(bytes32 feature, address[] deniers)", + "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)", + "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0xcf01bac36a6fa89d9b319b484397fe32e5a2c78ebaafc132f9d0ac7d9dc3ce24", + "sourceName": "contracts/modules/core/FeatureFlagModule.sol", + "contractName": "FeatureFlagModule", + "deployedOn": "contract.FeatureFlagModule", + "gasUsed": 777054, + "gasCost": "1007205580" + }, + "InitialModuleBundle": { + "address": "0x828EED723cAF0A8F822249231266E38dF614923C", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "contracts/modules/InitialModuleBundle.sol", + "contractName": "InitialModuleBundle", + "deployedOn": "contract.InitialModuleBundle" }, "IssueUSDModule": { - "address": "0x53c3F071Ab1032F2c52C0F3395c308B6EC5036b5", + "address": "0xc0F115A19107322cFBf1cDBC7ea011C19EbDB4F8", "abi": [ "error CollateralDepositDisabled(address collateralType)", "error EmptyDistribution()", @@ -3910,13 +3861,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x10ead221e1dd0f1cccacf15e7dd27db7ee18ad647c8e9050832e7c17b8c68382", + "deployTxnHash": "0x2b1ff0269751eef84c802b5ed10cd1af169faf4526fb150f677deab787f8a88c", "sourceName": "contracts/modules/core/IssueUSDModule.sol", "contractName": "IssueUSDModule", - "deployedOn": "contract.IssueUSDModule" + "deployedOn": "contract.IssueUSDModule", + "gasUsed": 2808871, + "gasCost": "1006351542" }, "LiquidationModule": { - "address": "0x62D560E670da20e176A5A6592A911c4502B08674", + "address": "0xc96304e3c037f81dA488ed9dEa1D8F2a48278a75", "abi": [ "error AccountNotFound(uint128 accountId)", "error CannotScaleEmptyMapping()", @@ -3943,13 +3896,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x1f0c70d7c4b29f99b43d20a092ac3f261f8a94cdb145dd997380be44ce6ae32b", + "deployTxnHash": "0x5ea1ad39b61a69a3fa394c46d4f7eee88fc499ccf4c6d666f42344dbfb900a85", "sourceName": "contracts/modules/core/LiquidationModule.sol", "contractName": "LiquidationModule", - "deployedOn": "contract.LiquidationModule" + "deployedOn": "contract.LiquidationModule", + "gasUsed": 2889614, + "gasCost": "1005706272" }, "MarketCollateralModule": { - "address": "0xfdD85dC27b7ff3D35eF814292BC64baE43De1eE8", + "address": "0x34B40BA116d5Dec75548a9e9A8f15411461E8c70", "abi": [ "error CollateralNotFound()", "error FailedTransfer(address from, address to, uint256 value)", @@ -3960,8 +3915,8 @@ "error OverflowUint256ToInt256()", "error PrecisionLost(uint256 tokenAmount, uint8 decimals)", "error Unauthorized(address addr)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -3972,13 +3927,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x7ec3a857f51ba63fd5a96c3d4ce79c1890a51c4ac69bfe1a7fec8659e01cbd18", + "deployTxnHash": "0xd27bf18d1d78bd2c7c24f4b35d082b47ab329185d89c3fde390b5204f85e163f", "sourceName": "contracts/modules/core/MarketCollateralModule.sol", "contractName": "MarketCollateralModule", - "deployedOn": "contract.MarketCollateralModule" + "deployedOn": "contract.MarketCollateralModule", + "gasUsed": 1222509, + "gasCost": "1005130396" }, "MarketManagerModule": { - "address": "0xe55Bb97939378587ab5B7074d21639352D84d06B", + "address": "0xD0141E899a65C95a556fE2B27e5982A6DE7fDD7A", "abi": [ "error EmptyDistribution()", "error FeatureUnavailable(bytes32 which)", @@ -3994,8 +3951,8 @@ "error Unauthorized(address addr)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -4022,32 +3979,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x4bada128e33afacb6e305979d28da2aa45914aa702450fc48d4e898976fa0244", + "deployTxnHash": "0x753fc23cc54816f2dbc45473910e59237fd953023040f534c518aa1a623e07e6", "sourceName": "contracts/modules/core/MarketManagerModule.sol", "contractName": "MarketManagerModule", - "deployedOn": "contract.MarketManagerModule" - }, - "MulticallModule": { - "address": "0xC4355ff53Ff1bA4A2d7105DB794D6c3510B8f4B3", - "abi": [ - "error DeniedMulticallTarget(address)", - "error InvalidParameter(string parameter, string reason)", - "error RecursiveMulticall(address)", - "error Unauthorized(address addr)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x59eee51de487501009ed6468a3b0ee4e8d3d2ae887bca4796ff4ebf1a77e9f0f", - "sourceName": "contracts/modules/core/MulticallModule.sol", - "contractName": "MulticallModule", - "deployedOn": "contract.MulticallModule" + "deployedOn": "contract.MarketManagerModule", + "gasUsed": 2756377, + "gasCost": "1004541363" }, "PoolConfigurationModule": { - "address": "0x2585754166E439eD27943EaE30b9a6Fd82bd67b2", + "address": "0x07882Ae1ecB7429a84f1D53048d35c4bB2056877", "abi": [ "error PoolNotFound(uint128 poolId)", "error Unauthorized(address addr)", @@ -4064,13 +4004,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x0fe04b000e63d1002233ae13614d404771a8c81f362006cb55f7873f8a571dad", + "deployTxnHash": "0x1feb24df7fa7822f5bc0dd3b61ae801b868e3a7b27bcca7903b911c71dacfa96", "sourceName": "contracts/modules/core/PoolConfigurationModule.sol", "contractName": "PoolConfigurationModule", - "deployedOn": "contract.PoolConfigurationModule" + "deployedOn": "contract.PoolConfigurationModule", + "gasUsed": 446271, + "gasCost": "1004078007" }, "PoolModule": { - "address": "0xa87e0bb82F725904Cb77231a0F0213dA8A004b75", + "address": "0x22753E4264FDDc6181dc7cce468904A80a363E44", "abi": [ "error CapacityLocked(uint256 marketId)", "error EmptyDistribution()", @@ -4096,11 +4038,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -4108,6 +4052,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -4117,13 +4062,15 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x1c5cb8d6d7da633aeea4f11c4baa7c433ee4c04bf68d3508a86c804681201efd", + "deployTxnHash": "0x4750a830af6379e76437db0a78c6122378ceebf7b89ed7c2230d875dfd387600", "sourceName": "contracts/modules/core/PoolModule.sol", "contractName": "PoolModule", - "deployedOn": "contract.PoolModule" + "deployedOn": "contract.PoolModule", + "gasUsed": 3705275, + "gasCost": "1003583422" }, "RewardsManagerModule": { - "address": "0x298CDCc0DfECe79d7337328080Cbf1742B6f7b54", + "address": "0xA7c59f010700930003b33aB25a7a0679C860f29c", "abi": [ "error AccountNotFound(uint128 accountId)", "error FeatureUnavailable(bytes32 which)", @@ -4148,6 +4095,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -4155,13 +4103,53 @@ ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x9a23abd4a10b37e5c0f24bda2525afc23d3b9a2ac4214978ca1d2a9a669b543f", + "deployTxnHash": "0x73b5142f64fc89dbb7269a263642d16e4e8b4090ea45e614316e0e03df1a536d", "sourceName": "contracts/modules/core/RewardsManagerModule.sol", "contractName": "RewardsManagerModule", - "deployedOn": "contract.RewardsManagerModule" + "deployedOn": "contract.RewardsManagerModule", + "gasUsed": 2131621, + "gasCost": "1003246141" + }, + "USDTokenModule": { + "address": "0xfaAddC93baf78e89DCf37bA67943E1bE8F37Bb8c", + "abi": [ + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidParameter(string parameter, string reason)", + "error Unauthorized(address addr)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address owner) view returns (uint256)", + "function burn(uint256 amount)", + "function burn(address target, uint256 amount)", + "function burnWithAllowance(address from, address spender, uint256 amount)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address target, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function symbol() view returns (string)", + "function totalSupply() view returns (uint256)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x771f422527acd0ef2b2ec9fb6752e7a74d24b8f3f188be870d984005fcb93b3d", + "sourceName": "contracts/modules/usd/USDTokenModule.sol", + "contractName": "USDTokenModule", + "deployedOn": "contract.USDTokenModule", + "gasUsed": 1110282, + "gasCost": "1002898037" }, "UtilsModule": { - "address": "0x3ad002E469d7a78b3aCe7710018f5eF3524a8581", + "address": "0x276C216D241856199A83bf27b2286659e5b877D3", "abi": [ "error InvalidParameter(string parameter, string reason)", "error OverflowUint256ToUint64()", @@ -4173,19 +4161,23 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)" ], "constructorArgs": [], "linkedLibraries": {}, - "deployTxnHash": "0x4397cf22ea44265bc00584b3e969c166922c3dcece980e7ebbd1f1fa09efecb5", + "deployTxnHash": "0xce4140a09cb9cd1e3fc857e8d8e1130291a3128b4bf624f599139ac0feae3954", "sourceName": "contracts/modules/core/UtilsModule.sol", "contractName": "UtilsModule", - "deployedOn": "contract.UtilsModule" + "deployedOn": "contract.UtilsModule", + "gasUsed": 759709, + "gasCost": "1002562597" }, "VaultModule": { - "address": "0x250d34097961FbE8BD18C696E5aD6c1C9227395d", + "address": "0x3347B4d90ebe72BeFb30444C9966B2B990aE9FcB", "abi": [ "error CapacityLocked(uint256 marketId)", "error CollateralDepositDisabled(address collateralType)", @@ -4205,35 +4197,133 @@ "error OverflowUint128ToInt128()", "error OverflowUint256ToInt256()", "error OverflowUint256ToUint128()", - "error OverflowUint256ToUint32()", - "error OverflowUint32ToInt32()", - "error OverflowUint64ToInt64()", - "error PermissionDenied(uint128 accountId, bytes32 permission, address target)", - "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)", - "error PoolNotFound(uint128 poolId)", - "error PositionOutOfBounds()", - "error RewardDistributorNotFound()", - "error ValueAlreadyInSet()", - "error ValueNotInSet()", - "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", - "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", - "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", - "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", - "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", - "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", - "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)", - "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)" + "error OverflowUint256ToUint32()", + "error OverflowUint32ToInt32()", + "error OverflowUint64ToInt64()", + "error PermissionDenied(uint128 accountId, bytes32 permission, address target)", + "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)", + "error PoolNotFound(uint128 poolId)", + "error PositionOutOfBounds()", + "error RewardDistributorNotFound()", + "error ValueAlreadyInSet()", + "error ValueNotInSet()", + "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", + "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", + "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", + "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", + "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", + "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)", + "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x0f85ab77d69217771887931249eedbe77ea3c5c9ed5c491498ecee78e4288a31", + "sourceName": "contracts/modules/core/VaultModule.sol", + "contractName": "VaultModule", + "deployedOn": "contract.VaultModule", + "gasUsed": 3527475, + "gasCost": "1002258496" + }, + "InitialCoreProxy": { + "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [ + "0x828EED723cAF0A8F822249231266E38dF614923C", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ], + "linkedLibraries": {}, + "deployTxnHash": "0x1b7f77435db768205301ff41ec1220c522de51ecc45973c2818abba881cb0c6e", + "sourceName": "contracts/Proxy.sol", + "contractName": "Proxy", + "deployedOn": "contract.InitialCoreProxy" + }, + "AccountRouter": { + "address": "0xffa7ca1aeeebbc30c874d32c7e22f052bbea0429", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error AlreadyInitialized()", + "error CannotSelfApprove(address addr)", + "error IndexOverrun(uint256 requestedIndex, uint256 length)", + "error InvalidOwner(address addr)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidTransferRecipient(address addr)", + "error OverflowUint256ToUint128()", + "error TokenAlreadyMinted(uint256 id)", + "error TokenDoesNotExist(uint256 id)", + "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", + "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", + "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", + "function approve(address to, uint256 tokenId)", + "function balanceOf(address holder) view returns (uint256 balance)", + "function burn(uint256 tokenId)", + "function getApproved(uint256 tokenId) view returns (address operator)", + "function initialize(string tokenName, string tokenSymbol, string uri)", + "function isApprovedForAll(address holder, address operator) view returns (bool)", + "function isInitialized() view returns (bool)", + "function mint(address to, uint256 tokenId)", + "function name() view returns (string)", + "function ownerOf(uint256 tokenId) view returns (address)", + "function safeMint(address to, uint256 tokenId, bytes data)", + "function safeTransferFrom(address from, address to, uint256 tokenId)", + "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", + "function setAllowance(uint256 tokenId, address spender)", + "function setApprovalForAll(address operator, bool approved)", + "function setBaseTokenURI(string uri)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function symbol() view returns (string)", + "function tokenByIndex(uint256 index) view returns (uint256)", + "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", + "function tokenURI(uint256 tokenId) view returns (string)", + "function totalSupply() view returns (uint256)", + "function transferFrom(address from, address to, uint256 tokenId)" ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xe635edcf438bf243eae84c9977878f9f8406eeed609422934d7e6417b04da9b2", - "sourceName": "contracts/modules/core/VaultModule.sol", - "contractName": "VaultModule", - "deployedOn": "contract.VaultModule" + "deployedOn": "router.AccountRouter", + "deployTxnHash": "0xf88570af51ec9fb2557505a5bf3be451845c332ca0e015ae31972427935c5a13", + "contractName": "AccountRouter", + "sourceName": "AccountRouter.sol", + "gasUsed": 406486, + "gasCost": "1001425804" }, "CoreRouter": { - "address": "0xcb38B655537cadEd39F10074E6159A4da131f77F", + "address": "0x3aade2dcd2df6a8cac689ee797591b2913658659", "abi": [ "error ImplementationIsSterile(address implementation)", "error NoChange()", @@ -4364,8 +4454,8 @@ "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)", "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)", "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -4377,8 +4467,8 @@ "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -4402,12 +4492,6 @@ "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)", "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)", "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)", "event PoolApprovedAdded(uint256 poolId)", "event PoolApprovedRemoved(uint256 poolId)", "event PreferredPoolSet(uint256 poolId)", @@ -4428,11 +4512,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -4440,6 +4526,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -4457,6 +4544,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -4467,9 +4555,12 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -4477,7 +4568,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", @@ -4485,9 +4576,71 @@ "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)" ], "deployedOn": "router.CoreRouter", - "deployTxnHash": "0x69c7654110f9e1499cc66c87235e385954d15374382bd2374682f9eccf7c4fac", + "deployTxnHash": "0xea642132e9e4d751df9f1be7c8e353ce4f89e1786b10e8b700b2bbd9e0b0817c", "contractName": "CoreRouter", - "sourceName": "CoreRouter.sol" + "sourceName": "CoreRouter.sol", + "gasUsed": 1292988, + "gasCost": "1001252409" + }, + "USDRouter": { + "address": "0xab16a69a5a8c12c732e0deff4be56a70bb64c926", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", + "error MissingAssociatedSystem(bytes32 id)", + "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", + "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", + "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", + "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", + "function registerUnmanagedSystem(bytes32 id, address endpoint)", + "error AlreadyInitialized()", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", + "error InvalidParameter(string parameter, string reason)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address owner) view returns (uint256)", + "function burn(uint256 amount)", + "function burn(address target, uint256 amount)", + "function burnWithAllowance(address from, address spender, uint256 amount)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", + "function isInitialized() view returns (bool)", + "function mint(address target, uint256 amount)", + "function name() view returns (string)", + "function setAllowance(address from, address spender, uint256 amount)", + "function symbol() view returns (string)", + "function totalSupply() view returns (uint256)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" + ], + "deployedOn": "router.USDRouter", + "deployTxnHash": "0x7d084a186e9027d24c9a426a7ddfbaef0dee61481a835789fea634b865a1a906", + "contractName": "USDRouter", + "sourceName": "USDRouter.sol", + "gasUsed": 398033, + "gasCost": "1001109353" }, "CoreProxy": { "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", @@ -4621,8 +4774,8 @@ "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)", "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)", "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)", - "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", - "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender)", + "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)", "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)", "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)", @@ -4634,8 +4787,8 @@ "error NotEnoughLiquidity(uint128 marketId, uint256 amount)", "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)", "event MarketSystemFeePaid(uint128 indexed marketId, uint256 feeAmount)", - "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", - "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market)", + "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", + "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)", "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)", "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)", "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", @@ -4659,12 +4812,6 @@ "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)", "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)", "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)", - "error DeniedMulticallTarget(address)", - "error RecursiveMulticall(address)", - "function getMessageSender() view returns (address)", - "function multicall(bytes[] data) returns (bytes[] results)", - "function multicallThrough(address[] to, bytes[] data, uint256[] values) payable returns (bytes[] results)", - "function setAllowlistedMulticallTarget(address target, bool allowlisted)", "event PoolApprovedAdded(uint256 poolId)", "event PoolApprovedRemoved(uint256 poolId)", "event PreferredPoolSet(uint256 poolId)", @@ -4685,11 +4832,13 @@ "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)", "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)", "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)", + "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)", "event SetMinLiquidityRatio(uint256 minLiquidityRatio)", "function acceptPoolOwnership(uint128 poolId)", "function createPool(uint128 requestedPoolId, address owner)", "function getMinLiquidityRatio() view returns (uint256)", "function getNominatedPoolOwner(uint128 poolId) view returns (address)", + "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)", "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)", "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])", "function getPoolName(uint128 poolId) view returns (string poolName)", @@ -4697,6 +4846,7 @@ "function nominatePoolOwner(address nominatedOwner, uint128 poolId)", "function rebalancePool(uint128 poolId, address optionalCollateralType)", "function renouncePoolNomination(uint128 poolId)", + "function renouncePoolOwnership(uint128 poolId)", "function revokePoolNomination(uint128 poolId)", "function setMinLiquidityRatio(uint256 minLiquidityRatio)", "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)", @@ -4714,6 +4864,7 @@ "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)", "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)", "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration)", + "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)", "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)", "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)", @@ -4724,9 +4875,12 @@ "function getConfig(bytes32 k) view returns (bytes32 v)", "function getConfigAddress(bytes32 k) view returns (address v)", "function getConfigUint(bytes32 k) view returns (uint256 v)", + "function getTrustedForwarder() pure returns (address)", + "function isTrustedForwarder(address forwarder) pure returns (bool)", "function setConfig(bytes32 k, bytes32 v)", "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)", "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "error InsufficientAccountCollateral(uint256 requestedAmount)", "error InsufficientDelegation(uint256 minDelegation)", "error InvalidCollateralAmount()", "error InvalidLeverage(uint256 leverage)", @@ -4734,7 +4888,7 @@ "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)", "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)", "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)", - "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", + "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)", "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)", "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)", "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)", @@ -4744,104 +4898,13 @@ "deployTxnHash": "", "sourceName": "", "contractName": "", - "deployedOn": "invoke.upgrade_core_proxy" - }, - "USDTokenModule": { - "address": "0x9Bd1C7DBb973E289A27b1529d8931931a26b6244", - "abi": [ - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidParameter(string parameter, string reason)", - "error Unauthorized(address addr)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address owner) view returns (uint256)", - "function burn(uint256 amount)", - "function burn(address target, uint256 amount)", - "function burnWithAllowance(address from, address spender, uint256 amount)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address target, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function symbol() view returns (string)", - "function totalSupply() view returns (uint256)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0xe13a4353edfbe871eef8977600b91ec192b20d6f64caf4b4e6a20aa576f1a551", - "sourceName": "contracts/modules/usd/USDTokenModule.sol", - "contractName": "USDTokenModule", - "deployedOn": "contract.USDTokenModule" - }, - "USDRouter": { - "address": "0x2415C2f2E6554441F613d82472Cdbe7B63680448", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", - "error MissingAssociatedSystem(bytes32 id)", - "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", - "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", - "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", - "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", - "function registerUnmanagedSystem(bytes32 id, address endpoint)", - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidParameter(string parameter, string reason)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address owner) view returns (uint256)", - "function burn(uint256 amount)", - "function burn(address target, uint256 amount)", - "function burnWithAllowance(address from, address spender, uint256 amount)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address target, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function symbol() view returns (string)", - "function totalSupply() view returns (uint256)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "deployedOn": "router.USDRouter", - "deployTxnHash": "0xf12324ac8615492e4907175ca09bf5e3ec0a482d8d9a1294d861106a1c4b68a8", - "contractName": "USDRouter", - "sourceName": "USDRouter.sol" + "deployedOn": "invoke.upgrade_core_proxy", + "gasUsed": 0, + "gasCost": "0", + "highlight": true }, - "USDProxy": { - "address": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", + "AccountProxy": { + "address": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", "abi": [ "error ImplementationIsSterile(address implementation)", "error NoChange()", @@ -4861,46 +4924,6 @@ "function renounceNomination()", "function simulateUpgradeTo(address newImplementation)", "function upgradeTo(address newImplementation)", - "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", - "error MissingAssociatedSystem(bytes32 id)", - "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", - "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", - "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", - "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", - "function registerUnmanagedSystem(bytes32 id, address endpoint)", - "error AlreadyInitialized()", - "error InsufficientAllowance(uint256 required, uint256 existing)", - "error InsufficientBalance(uint256 required, uint256 existing)", - "error InvalidParameter(string parameter, string reason)", - "event Approval(address indexed owner, address indexed spender, uint256 amount)", - "event Transfer(address indexed from, address indexed to, uint256 amount)", - "function allowance(address owner, address spender) view returns (uint256)", - "function approve(address spender, uint256 amount) returns (bool)", - "function balanceOf(address owner) view returns (uint256)", - "function burn(uint256 amount)", - "function burn(address target, uint256 amount)", - "function burnWithAllowance(address from, address spender, uint256 amount)", - "function decimals() view returns (uint8)", - "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", - "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", - "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", - "function isInitialized() view returns (bool)", - "function mint(address target, uint256 amount)", - "function name() view returns (string)", - "function setAllowance(address from, address spender, uint256 amount)", - "function symbol() view returns (string)", - "function totalSupply() view returns (uint256)", - "function transfer(address to, uint256 amount) returns (bool)", - "function transferFrom(address from, address to, uint256 amount) returns (bool)" - ], - "deployTxnHash": "", - "sourceName": "", - "contractName": "", - "deployedOn": "invoke.init_usd" - }, - "AccountTokenModule": { - "address": "0x479B0baa4aCF9Bf6e7Fb8419FC230d249481b8B1", - "abi": [ "error AlreadyInitialized()", "error CannotSelfApprove(address addr)", "error IndexOverrun(uint256 requestedIndex, uint256 length)", @@ -4910,8 +4933,6 @@ "error OverflowUint256ToUint128()", "error TokenAlreadyMinted(uint256 id)", "error TokenDoesNotExist(uint256 id)", - "error Unauthorized(address addr)", - "error ZeroAddress()", "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", @@ -4939,15 +4960,16 @@ "function totalSupply() view returns (uint256)", "function transferFrom(address from, address to, uint256 tokenId)" ], - "constructorArgs": [], - "linkedLibraries": {}, - "deployTxnHash": "0x80cf14d2dc739b59de1347685d57b69c7f7ca34d3b1722241026b9dc1b5ea281", - "sourceName": "contracts/modules/account/AccountTokenModule.sol", - "contractName": "AccountTokenModule", - "deployedOn": "contract.AccountTokenModule" + "deployTxnHash": "", + "sourceName": "", + "contractName": "", + "deployedOn": "invoke.init_account", + "gasUsed": 0, + "gasCost": "0", + "highlight": true }, - "AccountRouter": { - "address": "0xcbf25513C912eEB8072972347Afd2BE94452B5E6", + "USDProxy": { + "address": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", "abi": [ "error ImplementationIsSterile(address implementation)", "error NoChange()", @@ -4967,108 +4989,387 @@ "function renounceNomination()", "function simulateUpgradeTo(address newImplementation)", "function upgradeTo(address newImplementation)", + "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)", + "error MissingAssociatedSystem(bytes32 id)", + "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)", + "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)", + "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)", + "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)", + "function registerUnmanagedSystem(bytes32 id, address endpoint)", "error AlreadyInitialized()", - "error CannotSelfApprove(address addr)", - "error IndexOverrun(uint256 requestedIndex, uint256 length)", - "error InvalidOwner(address addr)", + "error InsufficientAllowance(uint256 required, uint256 existing)", + "error InsufficientBalance(uint256 required, uint256 existing)", "error InvalidParameter(string parameter, string reason)", - "error InvalidTransferRecipient(address addr)", - "error OverflowUint256ToUint128()", - "error TokenAlreadyMinted(uint256 id)", - "error TokenDoesNotExist(uint256 id)", - "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", - "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", - "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", - "function approve(address to, uint256 tokenId)", - "function balanceOf(address holder) view returns (uint256 balance)", - "function burn(uint256 tokenId)", - "function getApproved(uint256 tokenId) view returns (address operator)", - "function initialize(string tokenName, string tokenSymbol, string uri)", - "function isApprovedForAll(address holder, address operator) view returns (bool)", + "event Approval(address indexed owner, address indexed spender, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 amount)", + "function allowance(address owner, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function balanceOf(address owner) view returns (uint256)", + "function burn(uint256 amount)", + "function burn(address target, uint256 amount)", + "function burnWithAllowance(address from, address spender, uint256 amount)", + "function decimals() view returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)", "function isInitialized() view returns (bool)", - "function mint(address to, uint256 tokenId)", + "function mint(address target, uint256 amount)", "function name() view returns (string)", - "function ownerOf(uint256 tokenId) view returns (address)", - "function safeMint(address to, uint256 tokenId, bytes data)", - "function safeTransferFrom(address from, address to, uint256 tokenId)", - "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", - "function setAllowance(uint256 tokenId, address spender)", - "function setApprovalForAll(address operator, bool approved)", - "function setBaseTokenURI(string uri)", - "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function setAllowance(address from, address spender, uint256 amount)", "function symbol() view returns (string)", - "function tokenByIndex(uint256 index) view returns (uint256)", - "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", - "function tokenURI(uint256 tokenId) view returns (string)", "function totalSupply() view returns (uint256)", - "function transferFrom(address from, address to, uint256 tokenId)" + "function transfer(address to, uint256 amount) returns (bool)", + "function transferFrom(address from, address to, uint256 amount) returns (bool)" ], - "deployedOn": "router.AccountRouter", - "deployTxnHash": "0x9aefd9ceaf2edd9e2a57d0ff375f1a0f0415cbe321b49930309b5a0cd1c5b975", - "contractName": "AccountRouter", - "sourceName": "AccountRouter.sol" + "deployTxnHash": "", + "sourceName": "", + "contractName": "", + "deployedOn": "invoke.init_usd", + "gasUsed": 0, + "gasCost": "0", + "highlight": true + } + }, + "imports": { + "oracle_manager": { + "url": "ipfs://QmY7E5hgvbJaiJPtZnnwAuVWvcg8Wo4P1Ztk7YSHcCPosS", + "tags": [ + "latest" + ], + "preset": "with-synthetix", + "contracts": { + "CoreModule": { + "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x628cb92e6ee8f9e9942f862c2977d07a4de4023c4176fe91195b9d0fc30d0ecb", + "sourceName": "contracts/modules/CoreModule.sol", + "contractName": "CoreModule", + "deployedOn": "contract.CoreModule" + }, + "NodeModule": { + "address": "0x3155755b79aA083bd953911C92705B7aA82a18F9", + "abi": [ + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "0x167e5c8c09dda5612e6aa4912bbd637883371f0e517c84e047a8a746f831d9e2", + "sourceName": "contracts/modules/NodeModule.sol", + "contractName": "NodeModule", + "deployedOn": "contract.NodeModule", + "gasUsed": 4094165, + "gasCost": "1002042574" + }, + "InitialProxy": { + "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)" + ], + "constructorArgs": [ + "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ], + "linkedLibraries": {}, + "deployTxnHash": "0x6253644956174f93d8b6c55810bb63a1053dc2910322fc2e5cd400387d7c16db", + "sourceName": "contracts/Proxy.sol", + "contractName": "Proxy", + "deployedOn": "contract.InitialProxy" + }, + "OracleRouter": { + "address": "0x5bf5b11053e734690269c6b9d438f8c9d48f528a", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "deployedOn": "router.OracleRouter", + "deployTxnHash": "0x3686b2ea2e8ba4355fc9612946d5513767c423788e83d7af2cd169d79508cbcd", + "contractName": "OracleRouter", + "sourceName": "OracleRouter.sol", + "gasUsed": 246006, + "gasCost": "1001856941" + }, + "Proxy": { + "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "abi": [ + "error ImplementationIsSterile(address implementation)", + "error NoChange()", + "error NotAContract(address contr)", + "error NotNominated(address addr)", + "error Unauthorized(address addr)", + "error UpgradeSimulationFailed()", + "error ZeroAddress()", + "event OwnerChanged(address oldOwner, address newOwner)", + "event OwnerNominated(address newOwner)", + "event Upgraded(address indexed self, address implementation)", + "function acceptOwnership()", + "function getImplementation() view returns (address)", + "function nominateNewOwner(address newNominatedOwner)", + "function nominatedOwner() view returns (address)", + "function owner() view returns (address)", + "function renounceNomination()", + "function simulateUpgradeTo(address newImplementation)", + "function upgradeTo(address newImplementation)", + "error DeviationToleranceExceeded(int256 deviation)", + "error InvalidInputPrice()", + "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)", + "error InvalidParameter(string parameter, string reason)", + "error InvalidPrice(int256 price)", + "error NodeNotRegistered(bytes32 nodeId)", + "error OracleDataRequired(address oracleContract, bytes oracleQuery)", + "error OverflowInt256ToUint256()", + "error OverflowInt56ToInt24()", + "error OverflowUint256ToInt256()", + "error OverflowUint256ToUint160()", + "error OverflowUint56ToInt56()", + "error StalenessToleranceExceeded()", + "error UnprocessableNode(bytes32 nodeId)", + "error UnsupportedOperation(uint8 operation)", + "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)", + "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)", + "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)", + "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)", + "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)" + ], + "deployTxnHash": "", + "sourceName": "", + "contractName": "", + "deployedOn": "invoke.upgrade_proxy", + "gasUsed": 0, + "gasCost": "0", + "highlight": true + } + }, + "imports": { + "trusted_multicall_forwarder": { + "url": "ipfs://QmV8nFJ9mkv5xV5N2SuJvoAKUUSnfkR44ikJzzVZbmDokw", + "tags": [ + "latest" + ], + "preset": "with-oracle-manager", + "contracts": { + "TrustedMulticallForwarder": { + "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e", + "abi": [ + "constructor()", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", + "event EIP712DomainChanged()", + "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)", + "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)", + "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", + "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable", + "function getBasefee() view returns (uint256 basefee)", + "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)", + "function getBlockNumber() view returns (uint256 blockNumber)", + "function getChainId() view returns (uint256 chainid)", + "function getCurrentBlockCoinbase() view returns (address coinbase)", + "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)", + "function getCurrentBlockTimestamp() view returns (uint256 timestamp)", + "function getEthBalance(address addr) view returns (uint256 balance)", + "function getLastBlockHash() view returns (bytes32 blockHash)", + "function getPrevRandao() view returns (uint256 prevrandao)", + "function nonces(address owner) view returns (uint256)", + "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)", + "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "src/TrustedMulticallForwarder.sol", + "contractName": "TrustedMulticallForwarder", + "deployedOn": "contract.TrustedMulticallForwarder", + "gasUsed": 0, + "gasCost": "0" + } + } + } + }, + "txns": { + "upgrade_proxy": { + "hash": "0x5a75b72d47fcfcd4a28c86d79bdb370440add694b516b10863e69362b73399bb", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "0x5bf5b11053e734690269C6B9D438F8C9d48F528A" + ] + } + ] + }, + "deployedOn": "invoke.upgrade_proxy", + "gasUsed": 55346, + "gasCost": "1001628631", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + } + }, + "extras": {} }, - "AccountProxy": { - "address": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", - "abi": [ - "error ImplementationIsSterile(address implementation)", - "error NoChange()", - "error NotAContract(address contr)", - "error NotNominated(address addr)", - "error Unauthorized(address addr)", - "error UpgradeSimulationFailed()", - "error ZeroAddress()", - "event OwnerChanged(address oldOwner, address newOwner)", - "event OwnerNominated(address newOwner)", - "event Upgraded(address indexed self, address implementation)", - "function acceptOwnership()", - "function getImplementation() view returns (address)", - "function nominateNewOwner(address newNominatedOwner)", - "function nominatedOwner() view returns (address)", - "function owner() view returns (address)", - "function renounceNomination()", - "function simulateUpgradeTo(address newImplementation)", - "function upgradeTo(address newImplementation)", - "error AlreadyInitialized()", - "error CannotSelfApprove(address addr)", - "error IndexOverrun(uint256 requestedIndex, uint256 length)", - "error InvalidOwner(address addr)", - "error InvalidParameter(string parameter, string reason)", - "error InvalidTransferRecipient(address addr)", - "error OverflowUint256ToUint128()", - "error TokenAlreadyMinted(uint256 id)", - "error TokenDoesNotExist(uint256 id)", - "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", - "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", - "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", - "function approve(address to, uint256 tokenId)", - "function balanceOf(address holder) view returns (uint256 balance)", - "function burn(uint256 tokenId)", - "function getApproved(uint256 tokenId) view returns (address operator)", - "function initialize(string tokenName, string tokenSymbol, string uri)", - "function isApprovedForAll(address holder, address operator) view returns (bool)", - "function isInitialized() view returns (bool)", - "function mint(address to, uint256 tokenId)", - "function name() view returns (string)", - "function ownerOf(uint256 tokenId) view returns (address)", - "function safeMint(address to, uint256 tokenId, bytes data)", - "function safeTransferFrom(address from, address to, uint256 tokenId)", - "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)", - "function setAllowance(uint256 tokenId, address spender)", - "function setApprovalForAll(address operator, bool approved)", - "function setBaseTokenURI(string uri)", - "function supportsInterface(bytes4 interfaceId) view returns (bool)", - "function symbol() view returns (string)", - "function tokenByIndex(uint256 index) view returns (uint256)", - "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)", - "function tokenURI(uint256 tokenId) view returns (string)", - "function totalSupply() view returns (uint256)", - "function transferFrom(address from, address to, uint256 tokenId)" + "trusted_multicall_forwarder": { + "url": "ipfs://QmeMjvpP4BWQHNC2iUfbgatcoU1MTQcybEoXttrJokEGEg", + "tags": [ + "latest" ], - "deployTxnHash": "", - "sourceName": "", - "contractName": "", - "deployedOn": "invoke.init_account" + "preset": "with-synthetix", + "contracts": { + "TrustedMulticallForwarder": { + "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e", + "abi": [ + "constructor()", + "error AddressInsufficientBalance(address account)", + "error ERC2771ForwarderExpiredRequest(uint48 deadline)", + "error ERC2771ForwarderInvalidSigner(address signer, address from)", + "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)", + "error ERC2771UntrustfulTarget(address target, address forwarder)", + "error FailedInnerCall()", + "error InvalidAccountNonce(address account, uint256 currentNonce)", + "error InvalidShortString()", + "error StringTooLong(string str)", + "event EIP712DomainChanged()", + "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)", + "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)", + "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", + "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)", + "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable", + "function getBasefee() view returns (uint256 basefee)", + "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)", + "function getBlockNumber() view returns (uint256 blockNumber)", + "function getChainId() view returns (uint256 chainid)", + "function getCurrentBlockCoinbase() view returns (address coinbase)", + "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)", + "function getCurrentBlockTimestamp() view returns (uint256 timestamp)", + "function getEthBalance(address addr) view returns (uint256 balance)", + "function getLastBlockHash() view returns (bytes32 blockHash)", + "function getPrevRandao() view returns (uint256 prevrandao)", + "function nonces(address owner) view returns (uint256)", + "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)", + "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)", + "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)" + ], + "constructorArgs": [], + "linkedLibraries": {}, + "deployTxnHash": "", + "sourceName": "src/TrustedMulticallForwarder.sol", + "contractName": "TrustedMulticallForwarder", + "deployedOn": "contract.TrustedMulticallForwarder", + "gasUsed": 0, + "gasCost": "0" + } + } } }, "txns": { @@ -5090,29 +5391,295 @@ "deployedOn": "invoke.register_const_one_oracle" }, "upgrade_core_proxy": { - "hash": "0xc14d560773444857612a31c4763a2374fdf4b82872659c96cc3319745e7828ae", + "hash": "0xe67ec65a0e268c119c63c6e260c829fcb3e3f6c0c2e4608b9d5b6c5d67c2d621", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", + "0x3aAde2dCD2Df6a8cAc689EE797591b2913658659" + ] + } + ] + }, + "deployedOn": "invoke.upgrade_core_proxy", + "gasUsed": 51103, + "gasCost": "1000974364", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_burnUsd": { + "hash": "0x29125622aa4ab40fe38bc12dd269c8ea87a19327647a2766eb12cbd6da0a8aa3", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6275726e55736400000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_burnUsd", + "gasUsed": 37059, + "gasCost": "1000852984", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_claimRewards": { + "hash": "0x70eb2af1275c0dd1b91c50e716ca30594dd01a27c04e182a22d645464bc36b1c", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x636c61696d526577617264730000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_claimRewards", + "gasUsed": 37119, + "gasCost": "1000746625", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_createAccount": { + "hash": "0x70b9ac79bb6d7d700c1c4fc6d9ccecdcceea0eb985f925295322579bc2c55d9d", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6372656174654163636f756e7400000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_createAccount", + "gasUsed": 37131, + "gasCost": "1000653528", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_delegateCollateral": { + "hash": "0x0bc7b3a1c91bf721152d7f0ea93f4272a3cc9e2b499a794b02fc4218d1f71816", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_delegateCollateral", + "gasUsed": 37191, + "gasCost": "1000572040", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_deposit": { + "hash": "0x96fb5bf7520ccd54c47e6039fbd40ef4c3dc65249f1153f88ac72547f163e08e", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6465706f73697400000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_deposit", + "gasUsed": 37059, + "gasCost": "1000500713", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_depositMarketCollateral": { + "hash": "0x7d38b6570bc7162c62b931eeebb8af0061090576142266652dc832204e6b5db8", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_depositMarketCollateral", + "gasUsed": 37251, + "gasCost": "1000438279", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_depositMarketUsd": { + "hash": "0x5903260575efa87ec9b09c7e2e25cef50099e85b1b09fa16fb47290a90f1211b", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6465706f7369744d61726b657455736400000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_depositMarketUsd", + "gasUsed": 37167, + "gasCost": "1000383631", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_liquidate": { + "hash": "0x3ee4e87de44094fadd4c60554dc368986a90f2eb5e432265c7efe90fd193f220", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6c69717569646174650000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_liquidate", + "gasUsed": 37083, + "gasCost": "1000335796", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_liquidateVault": { + "hash": "0x59f850a87f83d9c59a809771899e38ff163726f44dae36ddc6a1930110f717e2", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6c69717569646174655661756c74000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_liquidateVault", + "gasUsed": 37143, + "gasCost": "1000293926", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_mintUsd": { + "hash": "0xe24dadf2d396337339a464cdd7a0dabe9696f2148e5ccd4198714a017b44322d", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x6d696e7455736400000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_mintUsd", + "gasUsed": 37059, + "gasCost": "1000257277", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdraw": { + "hash": "0x848fc31023e3b4c8e8a3c85e063a7e011388975d05b641320d5d1a3746049895", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x7769746864726177000000000000000000000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_withdraw", + "gasUsed": 37071, + "gasCost": "1000225197", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdrawMarketCollateral": { + "hash": "0xcd4a3dafb16c62ff5dadb31dec8419407ebcefa2212d8de2bb1815162d4cf2d5", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_withdrawMarketCollateral", + "gasUsed": 37263, + "gasCost": "1000197117", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "enable_feature_withdrawMarketUsd": { + "hash": "0xac7fc75713b8070cbe8f53a67dd5b39c54b8e0b74611446d9e36d567c54fc40a", + "events": { + "FeatureFlagAllowAllSet": [ + { + "name": "FeatureFlagAllowAllSet", + "args": [ + "0x77697468647261774d61726b6574557364000000000000000000000000000000", + true + ] + } + ] + }, + "deployedOn": "invoke.enable_feature_withdrawMarketUsd", + "gasUsed": 37179, + "gasCost": "1000172539", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "init_account": { + "hash": "0xd0fae82048c4b625ce9d70a17492aee4b8bfc6e32b72ff53a381f80cec85a204", "events": { "Upgraded": [ { "name": "Upgraded", "args": [ - "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", - "0xcb38B655537cadEd39F10074E6159A4da131f77F" + "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", + "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429" + ] + } + ], + "AssociatedSystemSet": [ + { + "name": "AssociatedSystemSet", + "args": [ + "0x6572633732310000000000000000000000000000000000000000000000000000", + "0x6163636f756e744e667400000000000000000000000000000000000000000000", + "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", + "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429" ] } ] }, - "deployedOn": "invoke.upgrade_core_proxy" + "deployedOn": "invoke.init_account", + "gasUsed": 80772, + "gasCost": "1000151026", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" }, "init_usd": { - "hash": "0xb26d3f1dc7ec72096a255afa8f675b3924314fa6ec439cdf16389d34dd887cca", + "hash": "0xaa194dd98512950fdbe0731b8078e7d31d755957ed14071cc6891eabb65adcba", "events": { "Upgraded": [ { "name": "Upgraded", "args": [ "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - "0x2415C2f2E6554441F613d82472Cdbe7B63680448" + "0xab16A69A5a8c12C732e0DEFF4BE56A70bb64c926" ] } ], @@ -5123,12 +5690,20 @@ "0x6572633230000000000000000000000000000000000000000000000000000000", "0x555344546f6b656e000000000000000000000000000000000000000000000000", "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", - "0x2415C2f2E6554441F613d82472Cdbe7B63680448" + "0xab16A69A5a8c12C732e0DEFF4BE56A70bb64c926" ] } ] }, - "deployedOn": "invoke.init_usd" + "deployedOn": "invoke.init_usd", + "gasUsed": 94074, + "gasCost": "1000132250", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "set_oracle_manager": { + "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633", + "events": {}, + "deployedOn": "invoke.set_oracle_manager" }, "configure_usd_collateral": { "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e", @@ -5164,138 +5739,90 @@ ] }, "deployedOn": "invoke.configure_usd_collateral" - }, - "enable_basic_features": { - "hash": "0x4e50675674584735ccc52708bc9df6e027774582eb7304c75f8012cf731b1c17", - "events": { - "FeatureFlagAllowAllSet": [ - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6372656174654163636f756e7400000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6465706f73697400000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x7769746864726177000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6d696e7455736400000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6275726e55736400000000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6c69717569646174650000000000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6c69717569646174655661756c74000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x6465706f7369744d61726b657455736400000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x77697468647261774d61726b6574557364000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x636c61696d526577617264730000000000000000000000000000000000000000", - true - ] - }, - { - "name": "FeatureFlagAllowAllSet", - "args": [ - "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000", - true - ] - } - ] - }, - "deployedOn": "invoke.enable_basic_features" - }, - "init_account": { - "hash": "0x9e0a576ce5aefed364dc47c4e510955c25f7b5f8f02741fa9380409246242e81", - "events": { - "AssociatedSystemSet": [ - { - "name": "AssociatedSystemSet", - "args": [ - "0x6572633732310000000000000000000000000000000000000000000000000000", - "0x6163636f756e744e667400000000000000000000000000000000000000000000", - "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", - "0xcbf25513C912eEB8072972347Afd2BE94452B5E6" - ] - } - ] - }, - "deployedOn": "invoke.init_account" - }, - "set_oracle_manager": { - "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633", - "events": {}, - "deployedOn": "invoke.set_oracle_manager" } }, "extras": { "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733" } } - } + }, + "txns": { + "upgradeSpotMarketProxy": { + "hash": "0x8feea4ad90baacfd224ef88d36495292d5258c70847a5292cfc3687d8222bf03", + "events": { + "Upgraded": [ + { + "name": "Upgraded", + "args": [ + "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", + "0x40918Ba7f132E0aCba2CE4de4c4baF9BD2D7D849" + ] + } + ] + }, + "deployedOn": "invoke.upgradeSpotMarketProxy", + "gasUsed": 55527, + "gasCost": "1000026674", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "addCreateSynthToFeatureFlag": { + "hash": "0x1a0e01ba475bedee67192a13e3098b9610df78a081022f10626bf92018e839e4", + "events": { + "FeatureFlagAllowlistAdded": [ + { + "name": "FeatureFlagAllowlistAdded", + "args": [ + "0x63726561746553796e7468000000000000000000000000000000000000000000", + "0x6E1613B5c68B4Cf2A58400D8019a97849A678139" + ] + } + ] + }, + "deployedOn": "invoke.addCreateSynthToFeatureFlag" + }, + "addSpotMarketToFeatureFlag": { + "hash": "0xc53f8c210de4158908d81634fd02b8e8ac4b83a5fca4a312a25806ada987e58f", + "events": { + "FeatureFlagAllowlistAdded": [ + { + "name": "FeatureFlagAllowlistAdded", + "args": [ + "0x72656769737465724d61726b6574000000000000000000000000000000000000", + "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595" + ] + } + ] + }, + "deployedOn": "invoke.addSpotMarketToFeatureFlag" + }, + "setSynthImplementation": { + "hash": "0xfacf119937e2349da7f63dcd1fa633d6503f5c1080bb323c7a99f6f657bd7b09", + "events": { + "SynthImplementationSet": [ + { + "name": "SynthImplementationSet", + "args": [ + "0xF32D39ff9f6Aa7a7A64d7a4F00a54826Ef791a55" + ] + } + ] + }, + "deployedOn": "invoke.setSynthImplementation", + "gasUsed": 39038, + "gasCost": "1000023353", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" + }, + "setSynthetixSystem": { + "hash": "0xc65a1a496605eb383a62615b8f9cc73b7d05606e91b2eb2b6d2898a1a78ef096", + "events": {}, + "deployedOn": "invoke.setSynthetixSystem" + } + }, + "extras": {} } } }, - "hash": "760b4c4940ef3430ebacbed1247d9e7f", + "hash": "a4b28cb13671cf9b996f224a89bbf29f", "version": 6 }, "invoke.registerSnxOracleManager": { @@ -5332,45 +5859,36 @@ "contracts": {}, "txns": { "configureSnxCollateral": { - "hash": "0xb4f1e362de413a2e00f5b238a184113e6d19333d6dd0424231b0cfed8a607199", + "hash": "0x6f32f95c006be68db0b81e6391ea8dd7d3a8546f3aa38c6dc137d53b1ec94520", "events": { "CollateralConfigured": [ { "name": "CollateralConfigured", "args": [ "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", - [ - true, - { - "type": "BigNumber", - "hex": "0x3782dace9d900000" - }, - { - "type": "BigNumber", - "hex": "0x14d1120d7b160000" - }, - { - "type": "BigNumber", - "hex": "0x8ac7230489e80000" - }, - "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4", - "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", - { - "type": "BigNumber", - "hex": "0x8ac7230489e80000" - } - ] + { + "depositingEnabled": true, + "issuanceRatioD18": "4000000000000000000", + "liquidationRatioD18": "1500000000000000000", + "liquidationRewardD18": "10000000000000000000", + "oracleNodeId": "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609", + "tokenAddress": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", + "minDelegationD18": "10000000000000000000" + } ] } ] }, - "deployedOn": "invoke.configureSnxCollateral" + "deployedOn": "invoke.configureSnxCollateral", + "gasUsed": 59032, + "gasCost": "1000017896", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" } }, "extras": {} }, - "hash": "009d1c6d0c9b3bc7b3c7ff456375f210", - "version": 5 + "hash": "99e92a2bf9f85b2d36b6296a2c96ece6", + "version": 6 }, "invoke.setAccountTimeoutWithdraw": { "artifacts": { @@ -5872,31 +6390,41 @@ "contracts": {}, "txns": { "setSynthSettlementStrategyEth": { - "hash": "0x297db1989b29f3cb17ff04d429356f2cad0ee94e0d824fbb2d6b187aa48eea95", + "hash": "0x1ce177895a5d6b5a8dc692fd18775b8dc6d495d37ef941aa253dfd3090560ed9", "events": { - "SettlementStrategyAdded": [ + "SettlementStrategySet": [ { - "name": "SettlementStrategyAdded", + "name": "SettlementStrategySet", "args": [ + "1", + "0", { - "type": "BigNumber", - "hex": "0x01" - }, - { - "type": "BigNumber", - "hex": "0x00" + "strategyType": 1, + "settlementDelay": "2", + "settlementWindowDuration": "60", + "priceVerificationContract": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C", + "feedId": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "url": "https://api.synthetix.io/pyth-mainnet/api/get_vaa_ccip?data={data}", + "settlementReward": "0", + "priceDeviationTolerance": "1000000000000000000", + "minimumUsdExchangeAmount": "1000000000000", + "maxRoundingLoss": "1000000000000", + "disabled": false } ] } ] }, - "deployedOn": "invoke.setSynthSettlementStrategyEth" + "deployedOn": "invoke.setSynthSettlementStrategyEth", + "gasUsed": 84709, + "gasCost": "1000015668", + "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C" } }, "extras": {} }, - "hash": "852c8a3e19a062c971f7066ac86d0dda", - "version": 5 + "hash": "cd373705db241f044f0ec3d0c061788d", + "version": 6 }, "invoke.setSynthSkewScaleEth": { "artifacts": { @@ -6048,9 +6576,77 @@ }, "hash": "c5f828233462d1b12ce560a1ea2e9195", "version": 6 + }, + "invoke.registerSnxOracleManagerNode": { + "artifacts": { + "contracts": {}, + "txns": { + "registerSnxOracleManagerNode": { + "hash": "0x88d796094a02e37f485d5b769ad6877612cf856f96824f964a16dabad03f3a4d", + "events": { + "NodeRegistered": [ + { + "name": "NodeRegistered", + "args": [ + "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4", + 3, + "0x0000000000000000000000002fcf37343e916eaed1f1ddaaf84458a359b5387700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008", + [] + ] + } + ] + }, + "deployedOn": "invoke.registerSnxOracleManagerNode", + "gasUsed": 51020, + "gasCost": "1000115823", + "signer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + } + }, + "extras": { + "snx_oracle_id_raw": "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4" + } + }, + "hash": "b6c275e9ecf82830d15ef29667a0a02b", + "version": 6 + }, + "invoke.registerSnxWithStaleness": { + "artifacts": { + "contracts": {}, + "txns": { + "registerSnxWithStaleness": { + "hash": "0xcb3ca201682c96c5fdfbf6c2cc74ccb5434b17b46a5e61c97713a518f80296dd", + "events": { + "NodeRegistered": [ + { + "name": "NodeRegistered", + "args": [ + "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609", + 7, + "0x0000000000000000000000000000000000000000000000000000000000000e10", + [ + "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4" + ] + ] + } + ] + }, + "deployedOn": "invoke.registerSnxWithStaleness", + "gasUsed": 48648, + "gasCost": "1000020442", + "signer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + } + }, + "extras": { + "snx_oracle_id": "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609" + } + }, + "hash": "a0a1ca9a170555cb60d3b5f48e26a0cb", + "version": 6 } }, "options": {}, + "status": "complete", "meta": {}, - "miscUrl": "ipfs://QmeSt2mnJKE8qmRhLyYbHQQxDKpsFbcWnw5e7JF4xVbN6k" + "miscUrl": "ipfs://QmeSt2mnJKE8qmRhLyYbHQQxDKpsFbcWnw5e7JF4xVbN6k", + "chainId": 10 } \ No newline at end of file diff --git a/10-main/extras.json b/10-main/extras.json index 6861e36e06..dcd941d6af 100644 --- a/10-main/extras.json +++ b/10-main/extras.json @@ -1,5 +1,6 @@ { - "snx_oracle_id": "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4", + "snx_oracle_id": "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609", "eth_oracle_id": "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a", - "synth_eth_market_id": "1" + "synth_eth_market_id": "1", + "snx_oracle_id_raw": "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4" } \ No newline at end of file diff --git a/10-main/meta.json b/10-main/meta.json index eb5ae247e9..06fa958f5a 100644 --- a/10-main/meta.json +++ b/10-main/meta.json @@ -1,13 +1,17 @@ { + "chainId": 10, "name": "synthetix-omnibus", "preset": "main", - "version": "3.3.4", + "version": "4", + "generator": "cannon cli 2.11.24", + "timestamp": 1712322913, "miscUrl": "ipfs://QmeSt2mnJKE8qmRhLyYbHQQxDKpsFbcWnw5e7JF4xVbN6k", "contracts": { "CoreProxy": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847", "AccountProxy": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac", "USDProxy": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175", "OracleManagerProxy": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3", + "TrustedMulticallForwarder": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e", "SpotMarketProxy": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595", "SNXToken": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4" }