@baserate/sdk 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,61 @@
1
1
  {
2
2
  "name": "@baserate/sdk",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.0",
4
+ "description": "Baserate SDK: Mezo chains, address registry, ABIs, Morpho math, MUSD permits and error decoding.",
5
+ "license": "GPL-2.0-or-later",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/OoJae/baserate.git",
9
+ "directory": "packages/sdk"
10
+ },
11
+ "homepage": "https://baserate-mezo.vercel.app",
12
+ "keywords": [
13
+ "mezo",
14
+ "musd",
15
+ "bitcoin",
16
+ "morpho",
17
+ "defi",
18
+ "viem",
19
+ "sdk"
20
+ ],
21
+ "type": "module",
22
+ "sideEffects": false,
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js"
27
+ },
28
+ "./deployments/*.json": "./src/deployments/*.json"
29
+ },
30
+ "main": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "files": [
33
+ "dist",
34
+ "src/deployments",
35
+ "README.md",
36
+ "LICENSE"
37
+ ],
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "peerDependencies": {
42
+ "viem": "^2.57.11"
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "24.19.2",
46
+ "typescript": "5.9.3",
47
+ "viem": "2.57.11",
48
+ "vitest": "5.0.5",
49
+ "zod": "3.25.76",
50
+ "tsup": "8.5.0"
51
+ },
52
+ "scripts": {
53
+ "typecheck": "tsc --noEmit -p tsconfig.json",
54
+ "test": "vitest run",
55
+ "test:watch": "vitest",
56
+ "gen:abis": "node scripts/gen-abis.mjs",
57
+ "check:abis": "tsx scripts/check-abis.mjs ../src/abis.ts",
58
+ "build": "tsup src/index.ts --format esm --dts --clean --target es2022 --external viem",
59
+ "sync:registry": "node scripts/sync-registry.mjs"
60
+ }
6
61
  }
@@ -0,0 +1,125 @@
1
+ {
2
+ "$comment": "Local anvil fork of Mezo testnet (chain id 31337). External addresses are testnet's. TODO(deploy): written by the local deploy script (scripts/dev-fork.sh) once the contracts track lands; zero addresses until then.",
3
+ "chainId": 31337,
4
+ "version": "local",
5
+ "startBlock": 0,
6
+ "external": {
7
+ "musd": "0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503",
8
+ "smusd": "0x6f461c68B2c5492C0F5CCEc5a264d692aA7A8e16",
9
+ "pcv": "0x4dDD70f4C603b6089c07875Be02fEdFD626b80Af",
10
+ "borrowerOperations": "0xCdF7028ceAB81fA0C6971208e83fa7872994beE5",
11
+ "borrowerOperationsSignatures": "0xD757e3646AF370b15f32EB557F0F8380Df7D639e",
12
+ "troveManager": "0xE47c80e8c23f6B4A1aE41c34837a0599D5D16bb0",
13
+ "sortedTroves": "0x722E4D24FD6Ff8b0AC679450F3D91294607268fA",
14
+ "priceFeed": "0x86bCF0841622a5dAC14A313a15f96A95421b9366",
15
+ "collSurplusPool": "0xB4C35747c26E4aB5F1a7CdC7E875B5946eFa6fa9",
16
+ "morpho": "0xCe1da828cA15cb1FDAfa84C366A53C8106655a73",
17
+ "irm": "0x0c97Fe017628636649ff374aD499529F91167441",
18
+ "pyth": "0x933aDeC2C7624b11E4B2b80ACE15BF9a71a31315",
19
+ "skipBtcUsd": "0x7b7c000000000000000000000000000000000015",
20
+ "btc": "0x7b7C000000000000000000000000000000000000",
21
+ "mezo": "0x7B7c000000000000000000000000000000000001",
22
+ "router": "0x9a1ff7FE3a0F69959A3fBa1F1e5ee18e1A9CD7E9",
23
+ "poolFactory": "0x4947243CC818b627A5D06d14C4eCe7398A23Ce1A",
24
+ "btcMusdVolatilePool": "0xd16A5Df82120ED8D626a1a15232bFcE2366d6AA9",
25
+ "multicall3": "0xcA11bde05977b3631167028862bE2a173976CA11",
26
+ "create2Deployer": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
27
+ "poolsVoter": "0x263F1Fd5fB7F866881e1B6cD7d5d6c40Fd985F0D",
28
+ "gauge0": "0x72D88B0795373437E86792DEd8362D66dC43Cd2c",
29
+ "bribe0": "0x75b6B35Fc78826A0B7E1f9c08bb7d84bd70D0ee1",
30
+ "gauge1": "0x0000000000000000000000000000000000000000",
31
+ "bribe1": "0x0000000000000000000000000000000000000000",
32
+ "clQuoter": "0x0000000000000000000000000000000000000000",
33
+ "clBtcMusdPool": "0x0000000000000000000000000000000000000000",
34
+ "clMusdUsdPool": "0x0000000000000000000000000000000000000000",
35
+ "clSwapRouter": "0x0000000000000000000000000000000000000000",
36
+ "vaultV2Factory": "0x25eB93DA2F1b5D8f5D60c7563B8009a0330eb239"
37
+ },
38
+ "lltv": "770000000000000000",
39
+ "feeds": {
40
+ "pythBtcUsd": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
41
+ "pythMusdUsd": "0x0617a9b725011a126a2b9fd53563f4236501f32cf76d877644b943394606c6de"
42
+ },
43
+ "contracts": {
44
+ "oracle": {
45
+ "address": "0x0000000000000000000000000000000000000000",
46
+ "tx": null,
47
+ "block": 0
48
+ },
49
+ "wsMusd": {
50
+ "address": "0x0000000000000000000000000000000000000000",
51
+ "tx": null,
52
+ "block": 0
53
+ },
54
+ "factory": {
55
+ "address": "0x0000000000000000000000000000000000000000",
56
+ "tx": null,
57
+ "block": 0
58
+ },
59
+ "collateral": {
60
+ "address": "0x0000000000000000000000000000000000000000",
61
+ "tx": null,
62
+ "block": 0
63
+ },
64
+ "borrowAccountImpl": {
65
+ "address": "0x0000000000000000000000000000000000000000",
66
+ "tx": null,
67
+ "block": 0
68
+ },
69
+ "dispenser": {
70
+ "address": "0x0000000000000000000000000000000000000000",
71
+ "tx": null,
72
+ "block": 0
73
+ },
74
+ "backstop": {
75
+ "address": "0x0000000000000000000000000000000000000000",
76
+ "tx": null,
77
+ "block": 0
78
+ },
79
+ "flashLiquidator": {
80
+ "address": "0x0000000000000000000000000000000000000000",
81
+ "tx": null,
82
+ "block": 0
83
+ },
84
+ "feeRouter": {
85
+ "address": "0x0000000000000000000000000000000000000000",
86
+ "tx": null,
87
+ "block": 0
88
+ },
89
+ "riskLens": {
90
+ "address": "0x0000000000000000000000000000000000000000",
91
+ "tx": null,
92
+ "block": 0
93
+ },
94
+ "vMusd": {
95
+ "address": "0x0000000000000000000000000000000000000000",
96
+ "tx": null,
97
+ "block": 0
98
+ },
99
+ "wsMusdAdapter": {
100
+ "address": "0x0000000000000000000000000000000000000000",
101
+ "tx": null,
102
+ "block": 0
103
+ },
104
+ "m1Adapter": {
105
+ "address": "0x0000000000000000000000000000000000000000",
106
+ "tx": null,
107
+ "block": 0
108
+ },
109
+ "allocator": {
110
+ "address": "0x0000000000000000000000000000000000000000",
111
+ "tx": null,
112
+ "block": 0
113
+ }
114
+ },
115
+ "markets": {
116
+ "M1": {
117
+ "id": "0x0000000000000000000000000000000000000000000000000000000000000000",
118
+ "loanToken": "0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503",
119
+ "collateralToken": "0x0000000000000000000000000000000000000000",
120
+ "oracle": "0x0000000000000000000000000000000000000000",
121
+ "irm": "0x0c97Fe017628636649ff374aD499529F91167441",
122
+ "lltv": "770000000000000000"
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,127 @@
1
+ {
2
+ "$comment": "Mezo testnet registry. External addresses mirror contracts/script/config/MezoAddresses.sol (zero where testnet lacks one: no Slipstream CL200 pool, QuoterV2 or second gauge). Baserate addresses from contracts/deployments/31611.json, deploy txs and blocks from contracts/broadcast/{Deploy,DeployLiquidation,DeployPeriphery,DeployVault}.s.sol/31611/run-latest.json (vMusd: the VaultV2Factory.createVaultV2 call). On testnet the deployer EOA is governor and vMUSD owner and curator; the keeper's sentinel key 0xb031446A706B8481Aa89Ae2f227BA0d5dE125EAb is the factory sentinel and a vMUSD sentinel (alongside the deployer). canaryOperator is the keeper's canary key (CANARY_OPERATOR in Deploy.s.sol), whose timelocked grant the deployment queues.",
3
+ "chainId": 31611,
4
+ "version": "w2",
5
+ "startBlock": 16380349,
6
+ "external": {
7
+ "musd": "0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503",
8
+ "smusd": "0x6f461c68B2c5492C0F5CCEc5a264d692aA7A8e16",
9
+ "pcv": "0x4dDD70f4C603b6089c07875Be02fEdFD626b80Af",
10
+ "borrowerOperations": "0xCdF7028ceAB81fA0C6971208e83fa7872994beE5",
11
+ "borrowerOperationsSignatures": "0xD757e3646AF370b15f32EB557F0F8380Df7D639e",
12
+ "troveManager": "0xE47c80e8c23f6B4A1aE41c34837a0599D5D16bb0",
13
+ "sortedTroves": "0x722E4D24FD6Ff8b0AC679450F3D91294607268fA",
14
+ "priceFeed": "0x86bCF0841622a5dAC14A313a15f96A95421b9366",
15
+ "collSurplusPool": "0xB4C35747c26E4aB5F1a7CdC7E875B5946eFa6fa9",
16
+ "morpho": "0xCe1da828cA15cb1FDAfa84C366A53C8106655a73",
17
+ "irm": "0x0c97Fe017628636649ff374aD499529F91167441",
18
+ "pyth": "0x933aDeC2C7624b11E4B2b80ACE15BF9a71a31315",
19
+ "skipBtcUsd": "0x7b7c000000000000000000000000000000000015",
20
+ "btc": "0x7b7C000000000000000000000000000000000000",
21
+ "mezo": "0x7B7c000000000000000000000000000000000001",
22
+ "router": "0x9a1ff7FE3a0F69959A3fBa1F1e5ee18e1A9CD7E9",
23
+ "poolFactory": "0x4947243CC818b627A5D06d14C4eCe7398A23Ce1A",
24
+ "btcMusdVolatilePool": "0xd16A5Df82120ED8D626a1a15232bFcE2366d6AA9",
25
+ "multicall3": "0xcA11bde05977b3631167028862bE2a173976CA11",
26
+ "create2Deployer": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
27
+ "poolsVoter": "0x263F1Fd5fB7F866881e1B6cD7d5d6c40Fd985F0D",
28
+ "gauge0": "0x72D88B0795373437E86792DEd8362D66dC43Cd2c",
29
+ "bribe0": "0x75b6B35Fc78826A0B7E1f9c08bb7d84bd70D0ee1",
30
+ "gauge1": "0x0000000000000000000000000000000000000000",
31
+ "bribe1": "0x0000000000000000000000000000000000000000",
32
+ "clQuoter": "0x0000000000000000000000000000000000000000",
33
+ "clBtcMusdPool": "0x0000000000000000000000000000000000000000",
34
+ "clMusdUsdPool": "0x0000000000000000000000000000000000000000",
35
+ "clSwapRouter": "0x0000000000000000000000000000000000000000",
36
+ "vaultV2Factory": "0x25eB93DA2F1b5D8f5D60c7563B8009a0330eb239"
37
+ },
38
+ "lltv": "770000000000000000",
39
+ "canaryOperator": "0xDB52588fd26744a23e24a70D73579f075Bc50dD9",
40
+ "feeds": {
41
+ "pythBtcUsd": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
42
+ "pythMusdUsd": "0x0617a9b725011a126a2b9fd53563f4236501f32cf76d877644b943394606c6de"
43
+ },
44
+ "contracts": {
45
+ "oracle": {
46
+ "address": "0x83d21Ee5F5eC7D5Ba4b212Ed313244dDaa9608aF",
47
+ "tx": "0xc140f98329bbe57439c6375cb2c1f98d18bcb3010892c74f2dc344610396b992",
48
+ "block": 16380359
49
+ },
50
+ "wsMusd": {
51
+ "address": "0xDAfcB2cD3E722f6FeE7F70150be612F1d7af8124",
52
+ "tx": "0xd715d236e36227cea02942112ab6b369688da4daf24dc1ffc640a9f053ce4025",
53
+ "block": 16380361
54
+ },
55
+ "factory": {
56
+ "address": "0x0EF62F97130fe4D1D22DE4ACc4163154F82890b1",
57
+ "tx": "0x4d9d5a218fcc19c881bfef77011871aa77dfd6842c19d95b91c19c870db534a5",
58
+ "block": 16380364
59
+ },
60
+ "collateral": {
61
+ "address": "0x55407a4522338F035f4CE3895c826143501c8a7E",
62
+ "tx": "0x4d9d5a218fcc19c881bfef77011871aa77dfd6842c19d95b91c19c870db534a5",
63
+ "block": 16380364
64
+ },
65
+ "borrowAccountImpl": {
66
+ "address": "0x9C2E498b1FC0dD332eC6A26E4B00d2e713f3D7d0",
67
+ "tx": "0x4d9d5a218fcc19c881bfef77011871aa77dfd6842c19d95b91c19c870db534a5",
68
+ "block": 16380364
69
+ },
70
+ "dispenser": {
71
+ "address": "0x08d7e3158D8c687f73c06B250AACe773d800CE69",
72
+ "tx": "0x8a42c0396147abf1aa07d3f7622ffd600ace41993fa883a006d7130c2a6b4460",
73
+ "block": 16380370
74
+ },
75
+ "backstop": {
76
+ "address": "0x64fE4CC966E55A0081913A8Bf72A22b007946C2B",
77
+ "tx": "0x4831d3e68e15bb0f3272741c76f154fc07dadda19c852214029f377fadbf3043",
78
+ "block": 16380382
79
+ },
80
+ "flashLiquidator": {
81
+ "address": "0x291868F26639bc619BaC1e87B7a19EE84988E973",
82
+ "tx": "0x1d17ce96e2a05cf510ea1775e6d9bf3aa5da0a9d473879abca4780b9e6b5fb0f",
83
+ "block": 16380383
84
+ },
85
+ "feeRouter": {
86
+ "address": "0x2de420D13d808aEBA11AB743abe630D0dD48C13B",
87
+ "tx": "0x260e28615a8da83c392ae3d313508c300ed0c62ebc8ef343a44038a829504cd9",
88
+ "block": 16380398
89
+ },
90
+ "riskLens": {
91
+ "address": "0x21aEB70C84E69c69b7F154CE6B06DdF6744266FF",
92
+ "tx": "0xfc02fa2bd17b9e8a61a4ee9a1a0127b59f3479ef836c4e7d3e725718eff581dd",
93
+ "block": 16380399
94
+ },
95
+ "vMusd": {
96
+ "address": "0x76A62fFEFb0b9A5980750Fb106Df05cEff6b941a",
97
+ "tx": "0xcc1e00cc6f5dc8bb83532c5d8099073afac6938b842375c481ef1a077caa3354",
98
+ "block": 16380419
99
+ },
100
+ "wsMusdAdapter": {
101
+ "address": "0x9897b43c83B3DCC6f574b19ce39Ef85aBf1Dfc29",
102
+ "tx": "0x4d0582a5f721f219195dd1dd95c1b3540970968dac61ea838a296c0a6def4dde",
103
+ "block": 16380425
104
+ },
105
+ "m1Adapter": {
106
+ "address": "0xD0E612460e35C646F7617A24ABEB84a842BEb61B",
107
+ "tx": "0x54da9c8d6cd30c73e3f35ee7abb02c73da7389c50c5b1bed979e5bf906bdf162",
108
+ "block": 16380424
109
+ },
110
+ "allocator": {
111
+ "address": "0x8B1314D983973342DA53A6E30CD5586d5D92d20f",
112
+ "tx": "0xaadbc9bf7bfea77ada6703cff3a9747ab5968b2b104f60119bdc7fd020afe827",
113
+ "block": 16380426
114
+ }
115
+ },
116
+ "markets": {
117
+ "M1": {
118
+ "id": "0xa8c1e3b34cb6f3b84f0b20e69af435f315330f47a06422fb7593e4422467bb74",
119
+ "loanToken": "0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503",
120
+ "collateralToken": "0x55407a4522338F035f4CE3895c826143501c8a7E",
121
+ "oracle": "0x83d21Ee5F5eC7D5Ba4b212Ed313244dDaa9608aF",
122
+ "irm": "0x0c97Fe017628636649ff374aD499529F91167441",
123
+ "lltv": "770000000000000000",
124
+ "block": 16380365
125
+ }
126
+ }
127
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "$comment": "Mezo mainnet registry. External addresses mirror contracts/script/config/MezoAddresses.sol (verified on-chain 2026-10-24/25). TODO(deploy): Baserate contracts deploy to mainnet in Wave 2 (proof mode); addresses are zero-address placeholders until then. There is no dispenser on mainnet.",
3
+ "chainId": 31612,
4
+ "version": "w2-predeploy",
5
+ "startBlock": 0,
6
+ "external": {
7
+ "musd": "0xdD468A1DDc392dcdbEf6db6e34E89AA338F9F186",
8
+ "smusd": "0xb4D498029af77680cD1eF828b967f010d06C51CC",
9
+ "pcv": "0x391EcC7ffEFc48cff41D0F2Bb36e38b82180B993",
10
+ "borrowerOperations": "0x44b1bac67dDA612a41a58AAf779143B181dEe031",
11
+ "borrowerOperationsSignatures": "0xB57ab578BF20b3e318f3EFAA587C51DBccE5df7a",
12
+ "troveManager": "0x94AfB503dBca74aC3E4929BACEeDfCe19B93c193",
13
+ "sortedTroves": "0x8C5DB4C62BF29c1C4564390d10c20a47E0b2749f",
14
+ "priceFeed": "0xc5aC5A8892230E0A3e1c473881A2de7353fFcA88",
15
+ "collSurplusPool": "0xBF51807ACb3394B8550f0554FB9098856Ef5F491",
16
+ "morpho": "0x565834cE7E40b8987BC20EbF83E2159467bDA311",
17
+ "irm": "0x3760Ebc636F912a4dB9540fdA4Dec09C25C6C1e7",
18
+ "pyth": "0x5D289Ad1CE59fCC25b6892e7A303dfFf3a9f7167",
19
+ "skipBtcUsd": "0x7b7c000000000000000000000000000000000015",
20
+ "btc": "0x7b7C000000000000000000000000000000000000",
21
+ "mezo": "0x7B7c000000000000000000000000000000000001",
22
+ "router": "0x16A76d3cd3C1e3CE843C6680d6B37E9116b5C706",
23
+ "poolFactory": "0x83FE469C636C4081b87bA5b3Ae9991c6Ed104248",
24
+ "btcMusdVolatilePool": "0x52e604c44417233b6CcEDDDc0d640A405Caacefb",
25
+ "multicall3": "0xcA11bde05977b3631167028862bE2a173976CA11",
26
+ "create2Deployer": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
27
+ "poolsVoter": "0x48233cCC97B87Ba93bCA212cbEe48e3210211f03",
28
+ "gauge0": "0x21d7AcB0D128fA039064B6aCe8Db88c0aDe0209E",
29
+ "bribe0": "0x80cCC053a90fc310150603C0274faf0a998B0e1a",
30
+ "gauge1": "0x8Be20a5fF57E381025aE5E3A121B697269569AaF",
31
+ "bribe1": "0x94A9A494872BF7231D8378d0Aef7d32BA552E305",
32
+ "clQuoter": "0x4E56aF2d49D3D8F9a99155b31dd117ccDD545dC7",
33
+ "clBtcMusdPool": "0x9CBc1537d255768b431488305b1C7EFc2ac95022",
34
+ "clMusdUsdPool": "0xCC372B7E15535aB225fe17c1075831D38ef7aC1a",
35
+ "clSwapRouter": "0x37cDd11919ec3860eaD9efB8673d7476E5326225",
36
+ "vaultV2Factory": "0xA64f3dA6196dab93392b6f649F662Fc7Da7540A6"
37
+ },
38
+ "lltv": "860000000000000000",
39
+ "feeds": {
40
+ "pythBtcUsd": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
41
+ "pythMusdUsd": "0x0617a9b725011a126a2b9fd53563f4236501f32cf76d877644b943394606c6de"
42
+ },
43
+ "contracts": {
44
+ "oracle": {
45
+ "address": "0x0000000000000000000000000000000000000000",
46
+ "tx": null,
47
+ "block": 0
48
+ },
49
+ "wsMusd": {
50
+ "address": "0x0000000000000000000000000000000000000000",
51
+ "tx": null,
52
+ "block": 0
53
+ },
54
+ "factory": {
55
+ "address": "0x0000000000000000000000000000000000000000",
56
+ "tx": null,
57
+ "block": 0
58
+ },
59
+ "collateral": {
60
+ "address": "0x0000000000000000000000000000000000000000",
61
+ "tx": null,
62
+ "block": 0
63
+ },
64
+ "borrowAccountImpl": {
65
+ "address": "0x0000000000000000000000000000000000000000",
66
+ "tx": null,
67
+ "block": 0
68
+ },
69
+ "dispenser": {
70
+ "address": "0x0000000000000000000000000000000000000000",
71
+ "tx": null,
72
+ "block": 0
73
+ },
74
+ "backstop": {
75
+ "address": "0x0000000000000000000000000000000000000000",
76
+ "tx": null,
77
+ "block": 0
78
+ },
79
+ "flashLiquidator": {
80
+ "address": "0x0000000000000000000000000000000000000000",
81
+ "tx": null,
82
+ "block": 0
83
+ },
84
+ "feeRouter": {
85
+ "address": "0x0000000000000000000000000000000000000000",
86
+ "tx": null,
87
+ "block": 0
88
+ },
89
+ "riskLens": {
90
+ "address": "0x0000000000000000000000000000000000000000",
91
+ "tx": null,
92
+ "block": 0
93
+ },
94
+ "vMusd": {
95
+ "address": "0x0000000000000000000000000000000000000000",
96
+ "tx": null,
97
+ "block": 0
98
+ },
99
+ "wsMusdAdapter": {
100
+ "address": "0x0000000000000000000000000000000000000000",
101
+ "tx": null,
102
+ "block": 0
103
+ },
104
+ "m1Adapter": {
105
+ "address": "0x0000000000000000000000000000000000000000",
106
+ "tx": null,
107
+ "block": 0
108
+ },
109
+ "allocator": {
110
+ "address": "0x0000000000000000000000000000000000000000",
111
+ "tx": null,
112
+ "block": 0
113
+ }
114
+ },
115
+ "markets": {
116
+ "M1": {
117
+ "id": "0x0000000000000000000000000000000000000000000000000000000000000000",
118
+ "loanToken": "0xdD468A1DDc392dcdbEf6db6e34E89AA338F9F186",
119
+ "collateralToken": "0x0000000000000000000000000000000000000000",
120
+ "oracle": "0x0000000000000000000000000000000000000000",
121
+ "irm": "0x3760Ebc636F912a4dB9540fdA4Dec09C25C6C1e7",
122
+ "lltv": "860000000000000000"
123
+ }
124
+ }
125
+ }