From 85ebb01f414ee763431afad978fd3eaa6c3a3c64 Mon Sep 17 00:00:00 2001 From: Mangrove Automation Bot <134297173+mangrove-automation@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:30:15 +0100 Subject: [PATCH 1/2] Merge publish/v2.1.4 to master Published by GitHub user: espendk --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99f3c88..563a3f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Next version +# 2.1.4 + - fix: Change address for WBTC test token to contract with 8 decimals (was 18) # 2.1.3 diff --git a/package.json b/package.json index f1fe124..e0ace24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mangrovedao/mangrove-deployments", - "version": "2.1.3", + "version": "2.1.4", "description": "Collection of Mangrove deployments", "main": "dist/index.js", "repository": "https://github.com/mangrovedao/mangrove-deployments.git", From 02e304064ae4e6b5aeb4c2beaa9f3cae37265ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Espen=20H=C3=B8jsgaard?= Date: Wed, 28 Feb 2024 20:11:59 +0100 Subject: [PATCH 2/2] feat: Add Blast deployments of core v2.1.0 (#149) --- CHANGELOG.md | 8 + package.json | 2 +- src/assets/core/v2.1.0/BlastMangrove.json | 1272 +++++++++++++++++ src/assets/core/v2.1.0/MgvOracle.json | 250 ++++ src/assets/core/v2.1.0/MgvReader.json | 1571 +++++++++++++++++++++ src/core.ts | 10 +- test/unit/core.unit.test.ts | 53 +- test/unit/strats.unit.test.ts | 17 + yarn.lock | 10 +- 9 files changed, 3174 insertions(+), 19 deletions(-) create mode 100644 src/assets/core/v2.1.0/BlastMangrove.json create mode 100644 src/assets/core/v2.1.0/MgvOracle.json create mode 100644 src/assets/core/v2.1.0/MgvReader.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 563a3f9..1d961d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Next version +## Blast deployments + +- core v2.1.0: `BlastMangrove`, `MgvOracle`, and `MgvReader` + +## Dependencies + +- Bump `context-addresses` to v1.3.2 + # 2.1.4 - fix: Change address for WBTC test token to contract with 8 decimals (was 18) diff --git a/package.json b/package.json index e0ace24..67356b0 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "*.{js,ts,css,md,json,mjs}": "prettier --write" }, "dependencies": { - "@mangrovedao/context-addresses": "^1.1.4", + "@mangrovedao/context-addresses": "^1.3.2", "semver": "^7.5.4" }, "devDependencies": { diff --git a/src/assets/core/v2.1.0/BlastMangrove.json b/src/assets/core/v2.1.0/BlastMangrove.json new file mode 100644 index 0000000..07b2b34 --- /dev/null +++ b/src/assets/core/v2.1.0/BlastMangrove.json @@ -0,0 +1,1272 @@ +{ + "$schema": "../../../../contract.schema.json", + "released": true, + "contractName": "BlastMangrove", + "deploymentName": "Mangrove", + "version": "2.1.0", + "networkAddresses": { + "81457": { + "primaryAddress": "0x692c15efcA8AABCda9511641F6ed9702d3f4cfb4", + "allAddresses": [ + { + "address": "0x692c15efcA8AABCda9511641F6ed9702d3f4cfb4" + } + ] + } + }, + "abi": [ + { + "type": "constructor", + "inputs": [ + { "name": "governance", "type": "address", "internalType": "address" }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" }, + { "name": "gasmax", "type": "uint256", "internalType": "uint256" }, + { + "name": "blastContract", + "type": "address", + "internalType": "contract IBlast" + }, + { + "name": "blastGovernor", + "type": "address", + "internalType": "address" + }, + { + "name": "blastPointsContract", + "type": "address", + "internalType": "contract IBlastPoints" + }, + { + "name": "blastPointsOperator", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { "type": "fallback", "stateMutability": "nonpayable" }, + { "type": "receive", "stateMutability": "payable" }, + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { "name": "inbound_tkn", "type": "address", "internalType": "address" }, + { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "value", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "cleanByImpersonation", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "targets", + "type": "tuple[]", + "internalType": "struct MgvLib.CleanTarget[]", + "components": [ + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { + "name": "takerWants", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "successes", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "flashloan", + "inputs": [ + { + "name": "sor", + "type": "tuple", + "internalType": "struct MgvLib.SingleOrder", + "components": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "offer", "type": "uint256", "internalType": "Offer" }, + { + "name": "takerWants", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "offerDetail", + "type": "uint256", + "internalType": "OfferDetail" + }, + { "name": "global", "type": "uint256", "internalType": "Global" }, + { "name": "local", "type": "uint256", "internalType": "Local" } + ] + }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "gasused", "type": "uint256", "internalType": "uint256" }, + { "name": "makerData", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "fund", + "inputs": [ + { "name": "maker", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "fund", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "internalCleanByImpersonation", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "takerWants", "type": "uint256", "internalType": "uint256" }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "bounty", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "marketOrderByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "maxTick", "type": "int256", "internalType": "Tick" }, + { "name": "fillVolume", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { "name": "takerGot", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGave", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" }, + { "name": "feePaid", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "marketOrderByTickCustom", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "maxTick", "type": "int256", "internalType": "Tick" }, + { "name": "fillVolume", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" }, + { + "name": "maxGasreqForFailingOffers", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { "name": "takerGot", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGave", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" }, + { "name": "feePaid", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "marketOrderByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "takerWants", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGives", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { "name": "takerGot", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGave", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" }, + { "name": "feePaid", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "marketOrderForByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "maxTick", "type": "int256", "internalType": "Tick" }, + { "name": "fillVolume", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "takerGot", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGave", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" }, + { "name": "feePaid", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "marketOrderForByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "takerWants", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGives", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "takerGot", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGave", "type": "uint256", "internalType": "uint256" }, + { "name": "bounty", "type": "uint256", "internalType": "uint256" }, + { "name": "feePaid", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "newOfferByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "newOfferByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "wants", "type": "uint256", "internalType": "uint256" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "permit", + "inputs": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { "name": "inbound_tkn", "type": "address", "internalType": "address" }, + { "name": "owner", "type": "address", "internalType": "address" }, + { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "value", "type": "uint256", "internalType": "uint256" }, + { "name": "deadline", "type": "uint256", "internalType": "uint256" }, + { "name": "v", "type": "uint8", "internalType": "uint8" }, + { "name": "r", "type": "bytes32", "internalType": "bytes32" }, + { "name": "s", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "retractOffer", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "deprovision", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { "name": "provision", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "updateOfferByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "updateOfferByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "wants", "type": "uint256", "internalType": "uint256" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "noRevert", "type": "bool", "internalType": "bool" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "outbound_tkn", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CleanComplete", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "CleanStart", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "offersToBeCleaned", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Credit", + "inputs": [ + { + "name": "maker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Debit", + "inputs": [ + { + "name": "maker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { "type": "event", "name": "Kill", "inputs": [], "anonymous": false }, + { "type": "event", "name": "NewMgv", "inputs": [], "anonymous": false }, + { + "type": "event", + "name": "OfferFail", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "takerWants", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "penalty", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "mgvData", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OfferFailWithPosthookData", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "takerWants", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "penalty", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "mgvData", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "posthookData", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OfferRetract", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "maker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "deprovision", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OfferSuccess", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "takerWants", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OfferSuccessWithPosthookData", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "takerWants", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "posthookData", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OfferWrite", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "maker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tick", + "type": "int256", + "indexed": false, + "internalType": "int256" + }, + { + "name": "gives", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasprice", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasreq", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "id", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OrderComplete", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "fee", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OrderStart", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "taker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "maxTick", + "type": "int256", + "indexed": false, + "internalType": "Tick" + }, + { + "name": "fillVolume", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "fillWants", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetActive", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "outbound_tkn", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "value", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetDensity96X32", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetFee", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetGasbase", + "inputs": [ + { + "name": "olKeyHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "offer_gasbase", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetGasmax", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetGasprice", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetGovernance", + "inputs": [ + { + "name": "value", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetMaxGasreqForFailingOffers", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetMaxRecursionDepth", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetMonitor", + "inputs": [ + { + "name": "value", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetNotify", + "inputs": [ + { + "name": "value", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetUseOracle", + "inputs": [ + { + "name": "value", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + } + ] +} diff --git a/src/assets/core/v2.1.0/MgvOracle.json b/src/assets/core/v2.1.0/MgvOracle.json new file mode 100644 index 0000000..ca6f968 --- /dev/null +++ b/src/assets/core/v2.1.0/MgvOracle.json @@ -0,0 +1,250 @@ +{ + "$schema": "../../../../contract.schema.json", + "released": true, + "contractName": "MgvOracle", + "version": "2.1.0", + "networkAddresses": { + "81457": { + "primaryAddress": "0xE1c9A6Cd839733F0e9fc5F4e9746d7b61A4b839D", + "allAddresses": [ + { + "address": "0xE1c9A6Cd839733F0e9fc5F4e9746d7b61A4b839D", + "dependencies": [ + { + "name": "Mangrove", + "address": "0x692c15efcA8AABCda9511641F6ed9702d3f4cfb4" + } + ] + } + ] + } + }, + "abi": [ + { + "type": "constructor", + "inputs": [ + { "name": "governance_", "type": "address", "internalType": "address" }, + { + "name": "initialMutator_", + "type": "address", + "internalType": "address" + }, + { + "name": "initialGasPrice_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "notifyFail", + "inputs": [ + { + "name": "sor", + "type": "tuple", + "internalType": "struct MgvLib.SingleOrder", + "components": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "offer", "type": "uint256", "internalType": "Offer" }, + { + "name": "takerWants", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "offerDetail", + "type": "uint256", + "internalType": "OfferDetail" + }, + { "name": "global", "type": "uint256", "internalType": "Global" }, + { "name": "local", "type": "uint256", "internalType": "Local" } + ] + }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "notifySuccess", + "inputs": [ + { + "name": "sor", + "type": "tuple", + "internalType": "struct MgvLib.SingleOrder", + "components": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" }, + { "name": "offer", "type": "uint256", "internalType": "Offer" }, + { + "name": "takerWants", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "takerGives", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "offerDetail", + "type": "uint256", + "internalType": "OfferDetail" + }, + { "name": "global", "type": "uint256", "internalType": "Global" }, + { "name": "local", "type": "uint256", "internalType": "Local" } + ] + }, + { "name": "taker", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "read", + "inputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [ + { "name": "gasprice", "type": "uint256", "internalType": "uint256" }, + { "name": "density", "type": "uint256", "internalType": "Density" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setDensity96X32", + "inputs": [ + { "name": "density96X32", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setGasPrice", + "inputs": [ + { "name": "gasPrice", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setGovernance", + "inputs": [ + { "name": "governance_", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setMutator", + "inputs": [ + { "name": "mutator_", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "SetDensity96X32", + "inputs": [ + { + "name": "density96X32", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetGasprice", + "inputs": [ + { + "name": "gasPrice", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } + ] +} diff --git a/src/assets/core/v2.1.0/MgvReader.json b/src/assets/core/v2.1.0/MgvReader.json new file mode 100644 index 0000000..546b0e5 --- /dev/null +++ b/src/assets/core/v2.1.0/MgvReader.json @@ -0,0 +1,1571 @@ +{ + "$schema": "../../../../contract.schema.json", + "released": true, + "contractName": "MgvReader", + "version": "2.1.0", + "networkAddresses": { + "81457": { + "primaryAddress": "0xAa11445725Ac90001717ED12e47e1D1dA9F592ee", + "allAddresses": [ + { + "address": "0xAa11445725Ac90001717ED12e47e1D1dA9F592ee", + "dependencies": [ + { + "name": "Mangrove", + "address": "0x692c15efcA8AABCda9511641F6ed9702d3f4cfb4" + } + ] + } + ] + } + }, + "abi": [ + { + "type": "constructor", + "inputs": [ + { "name": "mgv", "type": "address", "internalType": "address" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "MGV", + "inputs": [], + "outputs": [ + { "name": "", "type": "address", "internalType": "contract IMangrove" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "configInfo", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [ + { + "name": "_global", + "type": "tuple", + "internalType": "struct GlobalUnpacked", + "components": [ + { "name": "monitor", "type": "address", "internalType": "address" }, + { "name": "useOracle", "type": "bool", "internalType": "bool" }, + { "name": "notify", "type": "bool", "internalType": "bool" }, + { + "name": "gasprice", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "gasmax", "type": "uint256", "internalType": "uint256" }, + { "name": "dead", "type": "bool", "internalType": "bool" }, + { + "name": "maxRecursionDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxGasreqForFailingOffers", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_local", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { "name": "density", "type": "uint256", "internalType": "Density" }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "level3", "type": "uint256", "internalType": "Field" }, + { "name": "level2", "type": "uint256", "internalType": "Field" }, + { "name": "level1", "type": "uint256", "internalType": "Field" }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getFee", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "outVolume", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getProvision", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "ofr_gasreq", "type": "uint256", "internalType": "uint256" }, + { "name": "ofr_gasprice", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getProvisionWithDefaultGasPrice", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "ofr_gasreq", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "globalUnpacked", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct GlobalUnpacked", + "components": [ + { "name": "monitor", "type": "address", "internalType": "address" }, + { "name": "useOracle", "type": "bool", "internalType": "bool" }, + { "name": "notify", "type": "bool", "internalType": "bool" }, + { + "name": "gasprice", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "gasmax", "type": "uint256", "internalType": "uint256" }, + { "name": "dead", "type": "bool", "internalType": "bool" }, + { + "name": "maxRecursionDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxGasreqForFailingOffers", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isEmptyOB", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isMarketOpen", + "inputs": [ + { + "name": "market", + "type": "tuple", + "internalType": "struct Market", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "localUnpacked", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { "name": "density", "type": "uint256", "internalType": "Density" }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "level3", "type": "uint256", "internalType": "Field" }, + { "name": "level2", "type": "uint256", "internalType": "Field" }, + { "name": "level1", "type": "uint256", "internalType": "Field" }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "marketConfig", + "inputs": [ + { + "name": "market", + "type": "tuple", + "internalType": "struct Market", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [ + { + "name": "config", + "type": "tuple", + "internalType": "struct MarketConfig", + "components": [ + { + "name": "config01", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "config10", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minusFee", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "outVolume", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nextOfferId", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offer", "type": "uint256", "internalType": "Offer" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nextOfferIdById", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "numOpenMarkets", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "offerInfo", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { + "name": "offer", + "type": "tuple", + "internalType": "struct OfferUnpacked", + "components": [ + { "name": "prev", "type": "uint256", "internalType": "uint256" }, + { "name": "next", "type": "uint256", "internalType": "uint256" }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "offerDetail", + "type": "tuple", + "internalType": "struct OfferDetailUnpacked", + "components": [ + { "name": "maker", "type": "address", "internalType": "address" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "offerList", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "fromId", "type": "uint256", "internalType": "uint256" }, + { "name": "maxOffers", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256[]", "internalType": "uint256[]" }, + { + "name": "", + "type": "tuple[]", + "internalType": "struct OfferUnpacked[]", + "components": [ + { "name": "prev", "type": "uint256", "internalType": "uint256" }, + { "name": "next", "type": "uint256", "internalType": "uint256" }, + { "name": "tick", "type": "int256", "internalType": "Tick" }, + { "name": "gives", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "", + "type": "tuple[]", + "internalType": "struct OfferDetailUnpacked[]", + "components": [ + { "name": "maker", "type": "address", "internalType": "address" }, + { "name": "gasreq", "type": "uint256", "internalType": "uint256" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "gasprice", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "offerListEndPoints", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "fromId", "type": "uint256", "internalType": "uint256" }, + { "name": "maxOffers", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "startId", "type": "uint256", "internalType": "uint256" }, + { "name": "length", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "openMarkets", + "inputs": [ + { "name": "from", "type": "uint256", "internalType": "uint256" }, + { "name": "maxLen", "type": "uint256", "internalType": "uint256" }, + { "name": "withConfig", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "markets", + "type": "tuple[]", + "internalType": "struct Market[]", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "configs", + "type": "tuple[]", + "internalType": "struct MarketConfig[]", + "components": [ + { + "name": "config01", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "config10", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "openMarkets", + "inputs": [ + { "name": "withConfig", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct Market[]", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "", + "type": "tuple[]", + "internalType": "struct MarketConfig[]", + "components": [ + { + "name": "config01", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "config10", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "openMarkets", + "inputs": [ + { "name": "from", "type": "uint256", "internalType": "uint256" }, + { "name": "maxLen", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { + "name": "markets", + "type": "tuple[]", + "internalType": "struct Market[]", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "configs", + "type": "tuple[]", + "internalType": "struct MarketConfig[]", + "components": [ + { + "name": "config01", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "config10", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "openMarkets", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct Market[]", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "", + "type": "tuple[]", + "internalType": "struct MarketConfig[]", + "components": [ + { + "name": "config01", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "name": "config10", + "type": "tuple", + "internalType": "struct LocalUnpacked", + "components": [ + { "name": "active", "type": "bool", "internalType": "bool" }, + { "name": "fee", "type": "uint256", "internalType": "uint256" }, + { + "name": "density", + "type": "uint256", + "internalType": "Density" + }, + { + "name": "binPosInLeaf", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "level3", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level2", + "type": "uint256", + "internalType": "Field" + }, + { + "name": "level1", + "type": "uint256", + "internalType": "Field" + }, + { "name": "root", "type": "uint256", "internalType": "Field" }, + { + "name": "kilo_offer_gasbase", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "lock", "type": "bool", "internalType": "bool" }, + { "name": "last", "type": "uint256", "internalType": "uint256" } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "packedOfferList", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "fromId", "type": "uint256", "internalType": "uint256" }, + { "name": "maxOffers", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256[]", "internalType": "uint256[]" }, + { "name": "", "type": "uint256[]", "internalType": "Offer[]" }, + { "name": "", "type": "uint256[]", "internalType": "OfferDetail[]" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "prevOfferId", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offer", "type": "uint256", "internalType": "Offer" } + ], + "outputs": [ + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "prevOfferIdById", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "offerId", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "simulateMarketOrderByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "maxTick", "type": "int256", "internalType": "Tick" }, + { "name": "fillVolume", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" }, + { "name": "accumulate", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct VolumeData[]", + "components": [ + { + "name": "totalGot", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGave", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGasreq", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "simulateMarketOrderByTick", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "maxTick", "type": "int256", "internalType": "Tick" }, + { "name": "fillVolume", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct VolumeData[]", + "components": [ + { + "name": "totalGot", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGave", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGasreq", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "simulateMarketOrderByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "takerWants", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGives", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" }, + { "name": "accumulate", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct VolumeData[]", + "components": [ + { + "name": "totalGot", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGave", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGasreq", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "simulateMarketOrderByVolume", + "inputs": [ + { + "name": "olKey", + "type": "tuple", + "internalType": "struct OLKey", + "components": [ + { + "name": "outbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "inbound_tkn", + "type": "address", + "internalType": "address" + }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "takerWants", "type": "uint256", "internalType": "uint256" }, + { "name": "takerGives", "type": "uint256", "internalType": "uint256" }, + { "name": "fillWants", "type": "bool", "internalType": "bool" } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct VolumeData[]", + "components": [ + { + "name": "totalGot", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGave", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalGasreq", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "updateMarket", + "inputs": [ + { + "name": "market", + "type": "tuple", + "internalType": "struct Market", + "components": [ + { "name": "tkn0", "type": "address", "internalType": "address" }, + { "name": "tkn1", "type": "address", "internalType": "address" }, + { + "name": "tickSpacing", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + } + ] +} diff --git a/src/core.ts b/src/core.ts index b7d9b8c..7ee4205 100644 --- a/src/core.ts +++ b/src/core.ts @@ -1,10 +1,15 @@ +// v2.0.1 import Mangrove_v2_0_1 from "./assets/core/v2.0.1/Mangrove.json"; import MgvOracle_v2_0_1 from "./assets/core/v2.0.1/MgvOracle.json"; import MgvReader_v2_0_1 from "./assets/core/v2.0.1/MgvReader.json"; - +// v2.1.0-0 import BlastMangrove_v2_1_0_0 from "./assets/core/v2.1.0-0/BlastMangrove.json"; import MgvOracle_v2_1_0_0 from "./assets/core/v2.1.0-0/MgvOracle.json"; import MgvReader_v2_1_0_0 from "./assets/core/v2.1.0-0/MgvReader.json"; +// v2.1.0 +import BlastMangrove_v2_1_0 from "./assets/core/v2.1.0/BlastMangrove.json"; +import MgvOracle_v2_1_0 from "./assets/core/v2.1.0/MgvOracle.json"; +import MgvReader_v2_1_0 from "./assets/core/v2.1.0/MgvReader.json"; import { CoreContractsNetworkDeployment, @@ -23,6 +28,7 @@ import { /** This is a sorted array (newest to oldest), exported for tests */ export const _mangroveDeployments: VersionDeployments[] = [ + BlastMangrove_v2_1_0, BlastMangrove_v2_1_0_0, Mangrove_v2_0_1, ]; @@ -52,6 +58,7 @@ export const getLatestMangrovePerNetwork = ( /** This is a sorted array (newest to oldest), exported for tests */ export const _mgvOracleDeployments: VersionDeployments[] = [ + MgvOracle_v2_1_0, MgvOracle_v2_1_0_0, MgvOracle_v2_0_1, ]; @@ -81,6 +88,7 @@ export const getLatestMgvOraclePerNetwork = ( /** This is a sorted array (newest to oldest), exported for tests */ export const _mgvReaderDeployments: VersionDeployments[] = [ + MgvReader_v2_1_0, MgvReader_v2_1_0_0, MgvReader_v2_0_1, ]; diff --git a/test/unit/core.unit.test.ts b/test/unit/core.unit.test.ts index 42b1c7f..9e4a70e 100644 --- a/test/unit/core.unit.test.ts +++ b/test/unit/core.unit.test.ts @@ -2,13 +2,18 @@ import assert from "assert"; import { describe, it } from "mocha"; import { expect } from "chai"; +// v2.0.1 import Mangrove_v2_0_1 from "../../src/assets/core/v2.0.1/Mangrove.json"; import MgvReader_v2_0_1 from "../../src/assets/core/v2.0.1/MgvReader.json"; import MgvOracle_v2_0_1 from "../../src/assets/core/v2.0.1/MgvOracle.json"; - +// v2.1.0-0 import BlastMangrove_v2_1_0_0 from "../../src/assets/core/v2.1.0-0/BlastMangrove.json"; import MgvOracle_v2_1_0_0 from "../../src/assets/core/v2.1.0-0/MgvOracle.json"; import MgvReader_v2_1_0_0 from "../../src/assets/core/v2.1.0-0/MgvReader.json"; +// v2.1.0 +import BlastMangrove_v2_1_0 from "../../src/assets/core/v2.1.0/BlastMangrove.json"; +import MgvOracle_v2_1_0 from "../../src/assets/core/v2.1.0/MgvOracle.json"; +import MgvReader_v2_1_0 from "../../src/assets/core/v2.1.0/MgvReader.json"; import { getMangroveVersionDeployments, @@ -29,9 +34,9 @@ describe("core.ts", () => { describe("getMangroveVersionDeployments", () => { it("should find the latest deployment first", () => { const result = getMangroveVersionDeployments({ released: undefined }); - assert.equal(result, BlastMangrove_v2_1_0_0); + assert.equal(result, BlastMangrove_v2_1_0); // NB: Add older old versions here - [Mangrove_v2_0_1].forEach((version) => { + [BlastMangrove_v2_1_0_0, Mangrove_v2_0_1].forEach((version) => { assert.notEqual(result, version); }); }); @@ -39,15 +44,11 @@ describe("core.ts", () => { describe("getAllMangroveVersionDeploymentsPerNetwork", () => { it("should return all deployments grouped by network", () => { - // console.dir({ actual: getAllMangroveVersionDeploymentsPerNetwork({ released: undefined }), expected: { - // "80001": [Mangrove_v2_0_1], - // "11155111": [Mangrove_v2_0_1], - // "168587773": [BlastMangrove_v2_1_0_0], - // }}, { depth: null }); expect( getAllMangroveVersionDeploymentsPerNetwork({ released: undefined }), ).to.deep.equal({ "80001": [Mangrove_v2_0_1], + "81457": [BlastMangrove_v2_1_0], "11155111": [Mangrove_v2_0_1], "168587773": [BlastMangrove_v2_1_0_0, Mangrove_v2_0_1], }); @@ -63,6 +64,10 @@ describe("core.ts", () => { Mangrove_v2_0_1, "80001", ), + "81457": firstVersionDeploymentsToVersionNetworkDeployment( + BlastMangrove_v2_1_0, + "81457", + ), "11155111": firstVersionDeploymentsToVersionNetworkDeployment( Mangrove_v2_0_1, "11155111", @@ -80,9 +85,9 @@ describe("core.ts", () => { describe("getMgvReaderVersionDeployments", () => { it("should find the latest deployment first", () => { const result = getMgvReaderVersionDeployments({ released: undefined }); - assert.equal(result, MgvReader_v2_1_0_0); + assert.equal(result, MgvReader_v2_1_0); // NB: Add older old versions here - [MgvReader_v2_0_1].forEach((version) => { + [MgvReader_v2_1_0_0, MgvReader_v2_0_1].forEach((version) => { assert.notEqual(result, version); }); }); @@ -94,6 +99,7 @@ describe("core.ts", () => { getAllMgvReaderVersionDeploymentsPerNetwork({ released: undefined }), ).to.deep.equal({ "80001": [MgvReader_v2_0_1], + "81457": [MgvReader_v2_1_0], "11155111": [MgvReader_v2_0_1], "168587773": [MgvReader_v2_1_0_0, MgvReader_v2_0_1], }); @@ -109,6 +115,10 @@ describe("core.ts", () => { MgvReader_v2_0_1, "80001", ), + "81457": firstVersionDeploymentsToVersionNetworkDeployment( + MgvReader_v2_1_0, + "81457", + ), "11155111": firstVersionDeploymentsToVersionNetworkDeployment( MgvReader_v2_0_1, "11155111", @@ -126,9 +136,9 @@ describe("core.ts", () => { describe("getMgvOracleVersionDeployments", () => { it("should find the latest deployment first", () => { const result = getMgvOracleVersionDeployments({ released: undefined }); - assert.equal(result, MgvOracle_v2_1_0_0); + assert.equal(result, MgvOracle_v2_1_0); // NB: Add older old versions here - [MgvOracle_v2_0_1].forEach((version) => { + [MgvOracle_v2_1_0_0, MgvOracle_v2_0_1].forEach((version) => { assert.notEqual(result, version); }); }); @@ -140,6 +150,7 @@ describe("core.ts", () => { getAllMgvOracleVersionDeploymentsPerNetwork({ released: undefined }), ).to.deep.equal({ "80001": [MgvOracle_v2_0_1], + "81457": [MgvOracle_v2_1_0], "11155111": [MgvOracle_v2_0_1], "168587773": [MgvOracle_v2_1_0_0, MgvOracle_v2_0_1], }); @@ -155,6 +166,10 @@ describe("core.ts", () => { MgvOracle_v2_0_1, "80001", ), + "81457": firstVersionDeploymentsToVersionNetworkDeployment( + MgvOracle_v2_1_0, + "81457", + ), "11155111": firstVersionDeploymentsToVersionNetworkDeployment( MgvOracle_v2_0_1, "11155111", @@ -187,6 +202,20 @@ describe("core.ts", () => { "80001", ), }, + "81457": { + mangrove: firstVersionDeploymentsToVersionNetworkDeployment( + BlastMangrove_v2_1_0, + "81457", + ), + mgvOracle: firstVersionDeploymentsToVersionNetworkDeployment( + MgvOracle_v2_1_0, + "81457", + ), + mgvReader: firstVersionDeploymentsToVersionNetworkDeployment( + MgvReader_v2_1_0, + "81457", + ), + }, "11155111": { mangrove: firstVersionDeploymentsToVersionNetworkDeployment( Mangrove_v2_0_1, diff --git a/test/unit/strats.unit.test.ts b/test/unit/strats.unit.test.ts index 3d94997..e28913b 100644 --- a/test/unit/strats.unit.test.ts +++ b/test/unit/strats.unit.test.ts @@ -35,6 +35,8 @@ import BlastMangroveAmplifier_v2_1_0_0 from "../../src/assets/strats/v2.1.0-0/Bl import BlastMangroveOrderRouter_v2_1_0_0 from "../../src/assets/strats/v2.1.0-0/BlastMangroveOrder-Router.json"; import BlastMangroveOrder_v2_1_0_0 from "../../src/assets/strats/v2.1.0-0/BlastMangroveOrder.json"; import BlastRouterProxyFactory_v2_1_0_0 from "../../src/assets/strats/v2.1.0-0/BlastRouterProxyFactory.json"; +// v2.1.0 +import BlastMangrove_v2_1_0 from "../../src/assets/core/v2.1.0/BlastMangrove.json"; import { getAaveKandelSeederVersionDeployments, @@ -547,6 +549,21 @@ describe("strats.ts", () => { "80001", ), }, + "81457": { + mangrove: firstVersionDeploymentsToVersionNetworkDeployment( + BlastMangrove_v2_1_0, + "81457", + ), + aaveKandelSeeder: undefined, + aavePooledRouter: undefined, + kandelLib: undefined, + kandelSeeder: undefined, + mangroveOrderRouter: undefined, + mangroveOrder: undefined, + routerProxyFactory: undefined, + simpleAaveLogic: undefined, + mangroveAmplifier: undefined, + }, "11155111": { mangrove: firstVersionDeploymentsToVersionNetworkDeployment( Mangrove_v2_0_1, diff --git a/yarn.lock b/yarn.lock index 489e0ed..ff1827d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -418,12 +418,12 @@ __metadata: languageName: node linkType: hard -"@mangrovedao/context-addresses@npm:^1.1.4": - version: 1.2.0 - resolution: "@mangrovedao/context-addresses@npm:1.2.0" +"@mangrovedao/context-addresses@npm:^1.3.2": + version: 1.3.2 + resolution: "@mangrovedao/context-addresses@npm:1.3.2" dependencies: semver: ^7.5.4 - checksum: d6ab9384c2100163f86cae53d96f7ecdfa5ac51569ab4491622895345f339128560032d56462e958eeb09916463129d250b32198e3276e11f92aec91a9f96e20 + checksum: 2d347a3673a85a1b3eba8bfc4413f6ae588910b0f787bd06c36a62255f77b45ac1106022ed6241f032d59333e0560a81b1f08f2526406e69133a848e2e45d170 languageName: node linkType: hard @@ -432,7 +432,7 @@ __metadata: resolution: "@mangrovedao/mangrove-deployments@workspace:." dependencies: "@espendk/json-file-reporter": ^1.4.2 - "@mangrovedao/context-addresses": ^1.1.4 + "@mangrovedao/context-addresses": ^1.3.2 "@types/chai": ^4.3.10 "@types/mocha": ^10.0.4 "@types/node": ^20.9.0