curvance 1.0.6 → 1.0.8

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/README.md CHANGED
@@ -12,4 +12,56 @@ Note: All values are returned in either BigInt or [Decimals](https://www.npmjs.c
12
12
 
13
13
  ```
14
14
  $ npm install --save curvance
15
+ ```
16
+
17
+ ## ❯ Usage
18
+
19
+ ### Grab general information
20
+ This is very RPC efficient as it uses 1-3 RPC call's to setup all the data you need.
21
+ ```js
22
+ const { markets, reader, faucet } = await setupChain("monad-testnet", wallet);
23
+ ```
24
+
25
+ You can then explore the data pretty easily like so:
26
+ ```js
27
+ let count = 0;
28
+ console.log(`Market summaries in USD:`);
29
+ for(const market of markets) {
30
+ console.log(`[${count}] tvl: ${market.tvl.toFixed(18)} | totalDebt: ${market.totalDebt.toFixed(18)} | totalCollateral: ${market.totalCollateral.toFixed(18)}`);
31
+ for(const token of market.tokens) {
32
+ console.log(`\tToken: ${token.symbol} | Price: ${token.getPrice()} | Amount: ${token.getTvl(false)}`);
33
+ }
34
+ count++;
35
+ }
36
+ ```
37
+
38
+ ### Grab individaul classes
39
+ ```js
40
+ const test_1 = new ERC20(signer, `0x123`);
41
+ await test_1.approve(someGuy, BigInt(50e18));
42
+ ```
43
+
44
+ Some of these classes use preloaded cache to prevent RPC calls s for example
45
+ ```js
46
+ const test_1 = new ERC20(signer, `0x123`);
47
+ console.log(test_1.name); // Attempts to use cache for name, so this returns undefined
48
+ const name = await test_1.fetchName();
49
+ console.log(name); // My Test Token
50
+ console.log(test_1.name); // My Test Token
51
+ ```
52
+
53
+ Note: Protocol reader will populate things like `test_1.name` for underlying assets from the first preload RPC call and wont need to be fetched.
54
+
55
+
56
+ ### Helpers
57
+ - `getContractAddresses` - Grab the contracts addresses for a given chain
58
+ - `AdaptorTypes` - Adaptor identifier enums
59
+ - `WAD` - WAD amount
60
+ - `WAD_DECIMAL` - WAD amount as Decimal.js type
61
+ - `contractSetup` - Used to initialize contract & attach typescript interface
62
+ - `handleTransactionWithOracles` - Depending on what adaptor is being used to execute the function we choose to run a multi-call that will write-price on-chain with the given function -- but only if the adaptor is the type of adaptor that requires this (pull oracle)
63
+
64
+ ```js
65
+ const contracts = getContractAddresses('monad-testnet');
66
+ console.log(contracts.ProtocolReader);
15
67
  ```
@@ -0,0 +1,147 @@
1
+ export declare const chains: {
2
+ "monad-testnet": {
3
+ CentralRegistry: string;
4
+ OracleManager: string;
5
+ ChainlinkAdaptor: string;
6
+ RedstoneClassicAdaptor: string;
7
+ RedstoneCoreAdaptor: string;
8
+ RedstoneAdaptorMulticallChecker: string;
9
+ Faucet: string;
10
+ MockOracle: string;
11
+ USDC: string;
12
+ WBTC: string;
13
+ SWETH: string;
14
+ DAI: string;
15
+ LUSD: string;
16
+ mkUSD: string;
17
+ mETH: string;
18
+ mUSD: string;
19
+ "Test WBTC / Test USDC": {
20
+ address: string;
21
+ isMarket: boolean;
22
+ plugins: {
23
+ simplePositionManager: string;
24
+ simpleZapper: string;
25
+ };
26
+ "WBTC-DynamicIRM": string;
27
+ tokens: {
28
+ WBTC: string;
29
+ USDC: string;
30
+ };
31
+ "USDC-DynamicIRM": string;
32
+ };
33
+ "Test LUSD / Test SWETH": {
34
+ address: string;
35
+ isMarket: boolean;
36
+ plugins: {
37
+ simplePositionManager: string;
38
+ simpleZapper: string;
39
+ };
40
+ "LUSD-DynamicIRM": string;
41
+ tokens: {
42
+ LUSD: string;
43
+ SWETH: string;
44
+ };
45
+ };
46
+ "Test mUSD / Test mETH": {
47
+ address: string;
48
+ isMarket: boolean;
49
+ plugins: {
50
+ simplePositionManager: string;
51
+ simpleZapper: string;
52
+ };
53
+ tokens: {
54
+ mUSD: string;
55
+ mETH: string;
56
+ };
57
+ "mETH-DynamicIRM": string;
58
+ };
59
+ "Test DAI / Test mkUSD": {
60
+ address: string;
61
+ isMarket: boolean;
62
+ plugins: {
63
+ simplePositionManager: string;
64
+ simpleZapper: string;
65
+ };
66
+ "DAI-DynamicIRM": string;
67
+ tokens: {
68
+ DAI: string;
69
+ mkUSD: string;
70
+ };
71
+ "mkUSD-DynamicIRM": string;
72
+ };
73
+ MessagingHub: string;
74
+ CVE: string;
75
+ RewardManager: string;
76
+ VeCVE: string;
77
+ GaugeManager: string;
78
+ VotingHub: string;
79
+ "WMON-MockPermissionV3Aggregator": string;
80
+ "WMON-ChainlinkAdaptor": string;
81
+ "VaultAggregator-WMON-aprMON": string;
82
+ "VaultAggregator-WMON-shMON": string;
83
+ "Apriori (aprMON) / wMON": {
84
+ address: string;
85
+ isMarket: boolean;
86
+ plugins: {
87
+ simplePositionManager: string;
88
+ simpleZapper: string;
89
+ vaultZapper: string;
90
+ };
91
+ "aprMON-DynamicIRM": string;
92
+ tokens: {
93
+ aprMON: string;
94
+ WMON: string;
95
+ };
96
+ "WMON-DynamicIRM": string;
97
+ };
98
+ "Fastlane (shMON) / wMON": {
99
+ address: string;
100
+ isMarket: boolean;
101
+ plugins: {
102
+ simplePositionManager: string;
103
+ simpleZapper: string;
104
+ vaultZapper: string;
105
+ };
106
+ "shMON-DynamicIRM": string;
107
+ tokens: {
108
+ shMON: string;
109
+ WMON: string;
110
+ };
111
+ "WMON-DynamicIRM": string;
112
+ };
113
+ "Magma (gMON) / wMON": {
114
+ address: string;
115
+ isMarket: boolean;
116
+ plugins: {
117
+ simplePositionManager: string;
118
+ simpleZapper: string;
119
+ vaultZapper: string;
120
+ };
121
+ "gMON-DynamicIRM": string;
122
+ tokens: {
123
+ gMON: string;
124
+ WMON: string;
125
+ };
126
+ "WMON-DynamicIRM": string;
127
+ };
128
+ "Kintsu (sMON) / wMON": {
129
+ address: string;
130
+ isMarket: boolean;
131
+ plugins: {
132
+ simplePositionManager: string;
133
+ simpleZapper: string;
134
+ vaultZapper: string;
135
+ };
136
+ "sMON-DynamicIRM": string;
137
+ tokens: {
138
+ sMON: string;
139
+ WMON: string;
140
+ };
141
+ "WMON-DynamicIRM": string;
142
+ };
143
+ ProtocolReader: string;
144
+ };
145
+ "fake-testnet": never[];
146
+ };
147
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGlB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.chains = void 0;
7
+ const monad_testnet_json_1 = __importDefault(require("./monad-testnet.json"));
8
+ exports.chains = {
9
+ "monad-testnet": monad_testnet_json_1.default,
10
+ "fake-testnet": []
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAiD;AAEpC,QAAA,MAAM,GAAG;IAClB,eAAe,EAAE,4BAAa;IAC9B,cAAc,EAAE,EAAE;CACrB,CAAC"}
@@ -0,0 +1,143 @@
1
+ {
2
+ "CentralRegistry": "0x9DE2C76e31D19Fd2398185C608eF75a89677a772",
3
+ "OracleManager": "0x610584Cef67adDE8550C5d1CD82F9e19B65deB36",
4
+ "ChainlinkAdaptor": "0xBCa2698661BDbdb1b7EE66061b56B1d2eaAE911A",
5
+ "RedstoneClassicAdaptor": "0x9a1f066856feBA0A70AD7b2ee8E02e3502731c2E",
6
+ "RedstoneCoreAdaptor": "0x38D1E644A9fBcaa3Bd97C2dc72eC4A3157e2AEeF",
7
+ "RedstoneAdaptorMulticallChecker": "0x5C3679f005b1625035177A5641d776afe1D4D9E9",
8
+ "Faucet": "0xf298f2E94184FaCcb1d3b7dC7e1914b4dd12929a",
9
+ "MockOracle": "0xc5A3c27223eF06bFefa086397a0A8D27F2e912F1",
10
+ "USDC": "0xFd247f6B5469cE284524Ed449Ec71A8E14EEAb56",
11
+ "WBTC": "0x21F3516D9a375fF0Cdc9800CA92C720F369713F9",
12
+ "SWETH": "0x335E1d04E7e3ADEe3BCfd0c6d63a6fdFFB315870",
13
+ "DAI": "0x0FF77FAD7330E06cF9Df892e664fC4F987AFd06c",
14
+ "LUSD": "0x81e1215E642239db4359Eb5ef447f1D46732F0f5",
15
+ "mkUSD": "0xdc2C0dCcB915e799456e13295d01CdA33Aae6c43",
16
+ "mETH": "0xd472B6d908F04Cde210918908065e9fF5E47a4cb",
17
+ "mUSD": "0xE5D114f18Ae23653603C9d36752f0AC59F109A03",
18
+ "Test WBTC / Test USDC": {
19
+ "address": "0xE0365e0E9a150899Df7531ee8d03f01562e227dC",
20
+ "isMarket": true,
21
+ "plugins": {
22
+ "simplePositionManager": "0x491a37ebcd3F7488d231869f6A6299b360DE36af",
23
+ "simpleZapper": "0x3E15f6F67Efe1c2dA0471ebb08Cb2A8c1C89A232"
24
+ },
25
+ "WBTC-DynamicIRM": "0x563C54031c18910D474142EA00dE93901D713382",
26
+ "tokens": {
27
+ "WBTC": "0x6bCc28566eE82b3b9f0b10E0941606b122F2035d",
28
+ "USDC": "0x8E7e730D78B29ed489A9e899654A15dA16B30A3A"
29
+ },
30
+ "USDC-DynamicIRM": "0x3CFf5b8045C3F60FcaB07233608f1CB7a436c44e"
31
+ },
32
+ "Test LUSD / Test SWETH": {
33
+ "address": "0x8f07ad37A20ae078Dde0c161A7708b84b480d349",
34
+ "isMarket": true,
35
+ "plugins": {
36
+ "simplePositionManager": "0x6c5F9f651C8e2936EAdf0F1B20A59d0476a22c2b",
37
+ "simpleZapper": "0xF66071Ee481B180506B50Ac517191c477dBB9605"
38
+ },
39
+ "LUSD-DynamicIRM": "0xE402DFa9043896baad07425a30e6A1781f494F43",
40
+ "tokens": {
41
+ "LUSD": "0x54e7A29A5dd008492c2E1D0467A76dC63264e05d",
42
+ "SWETH": "0x76cC4f7E2381Ac9C8a6E6Ceabd4A992F09480aCD"
43
+ }
44
+ },
45
+ "Test mUSD / Test mETH": {
46
+ "address": "0xC0E0c88471783E140bB4D90aF7381bC8Bcb26eF0",
47
+ "isMarket": true,
48
+ "plugins": {
49
+ "simplePositionManager": "0x7602C4a99EF3e1820180dbBABB50b851b03933Cf",
50
+ "simpleZapper": "0x22553fAe61dDF8ca420Cc6311454F6860B97f70d"
51
+ },
52
+ "tokens": {
53
+ "mUSD": "0x7f0A94092E1EBA62f10ceE11a380EBD262E6DC9F",
54
+ "mETH": "0x398004321992EaDB6b7AEe1250846c246BE52733"
55
+ },
56
+ "mETH-DynamicIRM": "0xD0C617E96B2feE75a07034402AaCb94e2760C029"
57
+ },
58
+ "Test DAI / Test mkUSD": {
59
+ "address": "0xf769dCA61a9DDCAB0Ffa4518cB413df95BA8E753",
60
+ "isMarket": true,
61
+ "plugins": {
62
+ "simplePositionManager": "0x4a23De9cA96e85aa2af2Ed91094ff8b487050209",
63
+ "simpleZapper": "0xD1243e0B121429A65D8a51908b2bB940d50808c4"
64
+ },
65
+ "DAI-DynamicIRM": "0x5D052d2F226F5D498ACc44b1ECBa543Dcd91C214",
66
+ "tokens": {
67
+ "DAI": "0x8b89644445DAe0B2d736f4252A50F9f2A384e016",
68
+ "mkUSD": "0xd8B2866D6A908A11419BE028AceAce53876c11e3"
69
+ },
70
+ "mkUSD-DynamicIRM": "0x644bc0b96d1DF107f3Ed01d52bd59C470BCD4691"
71
+ },
72
+ "MessagingHub": "0x0644413190C54457DA71B0945548C9CA89874c6e",
73
+ "CVE": "0xbec1301C4AD60062BF0FD0a08A82aF18fE832425",
74
+ "RewardManager": "0xe52A0253093F8c85C227B65817309017F99B7EdB",
75
+ "VeCVE": "0x1943CAE5FBD2c283dc5a1708f2e5197693783677",
76
+ "GaugeManager": "0xcFCb8c9ABB6b84f681b1c3dC4Fbd1725EcDB3E54",
77
+ "VotingHub": "0x3642A51956FB7e595cb966707CEB715723c76EcA",
78
+ "WMON-MockPermissionV3Aggregator": "0x55069729017F08a557BCbfc3B3827847374fa9d6",
79
+ "WMON-ChainlinkAdaptor": "0x7bBf404d85d81c23BE71df42F7Aa6B57344A702c",
80
+ "VaultAggregator-WMON-aprMON": "0x9178DD72D8A107a41df5999D020A09CE0De8F556",
81
+ "VaultAggregator-WMON-shMON": "0xB51932732Dc39134a76470762BfF6ea03a9d3ecE",
82
+ "Apriori (aprMON) / wMON": {
83
+ "address": "0x18995Ac73428AfdC235a53e9cb8300b60531bED8",
84
+ "isMarket": true,
85
+ "plugins": {
86
+ "simplePositionManager": "0xA7d27DEFd5b867a901a01607CC3fEe1b1981C9EB",
87
+ "simpleZapper": "0x04B79bda04D50842db0417bB7d8F61Bab469F28E",
88
+ "vaultZapper": "0x164dB9323CDB678ff0866d941a0fA9b0c4FFb6A5"
89
+ },
90
+ "aprMON-DynamicIRM": "0x17A6450d29a81426BA29A3528Aaf1a68Da0C7213",
91
+ "tokens": {
92
+ "aprMON": "0xc55BD51072B7a5e9FED92BBa16B4f941Ee98dac9",
93
+ "WMON": "0x22Ee2102E6CBD66Fbfa7975A38C4057256669E8f"
94
+ },
95
+ "WMON-DynamicIRM": "0xFcCc4436631033A2F6eFa96606AeBdCAaaC4F38E"
96
+ },
97
+ "Fastlane (shMON) / wMON": {
98
+ "address": "0x4852ed73752b067763D892f9739415B827032700",
99
+ "isMarket": true,
100
+ "plugins": {
101
+ "simplePositionManager": "0x5D3C300F53c930048Fda62dAe33CD06a8cb8fa9D",
102
+ "simpleZapper": "0x422b45afF524DcDcDD160e9A08335bD5bb443418",
103
+ "vaultZapper": "0x413229Fb1b4Ad0BAfF27279129bd5B2ff7aaD8e5"
104
+ },
105
+ "shMON-DynamicIRM": "0xbaAdD2B7DA075F914aB0e9aF73cACcFcC8Ac0945",
106
+ "tokens": {
107
+ "shMON": "0x97A8dCa463012fB8f0474275b6A01116f0B5e241",
108
+ "WMON": "0x92ADB5814694621b66E24733B1444905DeeFD696"
109
+ },
110
+ "WMON-DynamicIRM": "0x59ab057c7423FbFb8f32a47dd6B071Eb1559fa58"
111
+ },
112
+ "Magma (gMON) / wMON": {
113
+ "address": "0x1D28a85CE8ee376A554881d50Ff704c49bDAd77d",
114
+ "isMarket": true,
115
+ "plugins": {
116
+ "simplePositionManager": "0x0570E6E5b312f0898EA910FCba5b070e414EDF04",
117
+ "simpleZapper": "0xe043bae09929C30364bA8915D5829223f3D6CE35",
118
+ "vaultZapper": "0xa321C56d47eCFa4c0D2f590F2E72C2c6D114aDb7"
119
+ },
120
+ "gMON-DynamicIRM": "0xD01D27d65624F860be4D6A64e896b6FC793e4567",
121
+ "tokens": {
122
+ "gMON": "0x854980041Ede58c05EbFDb42Fc178e718141A563",
123
+ "WMON": "0x9f80711b0301eA64d5C34BC726FA44061138D977"
124
+ },
125
+ "WMON-DynamicIRM": "0x397ff8a58c5feA29BD8777a9bB7CDDE51EE0C424"
126
+ },
127
+ "Kintsu (sMON) / wMON": {
128
+ "address": "0x7380B7361F1C1cc7EFC95C33F344588d4FCC7199",
129
+ "isMarket": true,
130
+ "plugins": {
131
+ "simplePositionManager": "0xb59075963Ec98C8a6a565eBe1aFAd35072BfDAe1",
132
+ "simpleZapper": "0xeCbC17ce67Ab79e7c022b273741B8084a383511C",
133
+ "vaultZapper": "0x9B17FFB9B59A29F22A4761F8519569c2f262eAfe"
134
+ },
135
+ "sMON-DynamicIRM": "0xda29123B2370A8131635C37338F7638cA9c8e09A",
136
+ "tokens": {
137
+ "sMON": "0x174A21f9149E6aE76D7d67aA15825D4709966b6b",
138
+ "WMON": "0x8907c83FD08B76971868999C7e56ADAE1952cf7d"
139
+ },
140
+ "WMON-DynamicIRM": "0x644641e90698b269a6FC431FBDAE37377eBFC994"
141
+ },
142
+ "ProtocolReader": "0xf53eA10100e18D8DA642204D31ec356133c87baE"
143
+ }
package/dist/helpers.d.ts CHANGED
@@ -3,6 +3,7 @@ import { BorrowableCToken, CToken } from "./classes/CToken";
3
3
  import { Contract } from "ethers";
4
4
  import { Decimal } from "decimal.js";
5
5
  import { address } from "./types";
6
+ import { chains } from "./chains";
6
7
  export declare const WAD: bigint;
7
8
  export declare const WAD_DECIMAL: Decimal;
8
9
  export declare enum AdaptorTypes {
@@ -11,11 +12,150 @@ export declare enum AdaptorTypes {
11
12
  REDSTONE_CLASSIC = 3,
12
13
  MOCK = 1337
13
14
  }
14
- export declare function toDecimal(amount: bigint, decimals?: bigint): bigint;
15
- export declare function toInteger(amount: bigint, decimals?: bigint): bigint;
16
15
  export declare function contractSetup<I>(signer: JsonRpcSigner | Wallet, contractAddress: address, abi: any): Contract & I;
17
- export declare function getContractAddresses(chain: ChainRpcPrefix): any;
16
+ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
17
+ CentralRegistry: string;
18
+ OracleManager: string;
19
+ ChainlinkAdaptor: string;
20
+ RedstoneClassicAdaptor: string;
21
+ RedstoneCoreAdaptor: string;
22
+ RedstoneAdaptorMulticallChecker: string;
23
+ Faucet: string;
24
+ MockOracle: string;
25
+ USDC: string;
26
+ WBTC: string;
27
+ SWETH: string;
28
+ DAI: string;
29
+ LUSD: string;
30
+ mkUSD: string;
31
+ mETH: string;
32
+ mUSD: string;
33
+ "Test WBTC / Test USDC": {
34
+ address: string;
35
+ isMarket: boolean;
36
+ plugins: {
37
+ simplePositionManager: string;
38
+ simpleZapper: string;
39
+ };
40
+ "WBTC-DynamicIRM": string;
41
+ tokens: {
42
+ WBTC: string;
43
+ USDC: string;
44
+ };
45
+ "USDC-DynamicIRM": string;
46
+ };
47
+ "Test LUSD / Test SWETH": {
48
+ address: string;
49
+ isMarket: boolean;
50
+ plugins: {
51
+ simplePositionManager: string;
52
+ simpleZapper: string;
53
+ };
54
+ "LUSD-DynamicIRM": string;
55
+ tokens: {
56
+ LUSD: string;
57
+ SWETH: string;
58
+ };
59
+ };
60
+ "Test mUSD / Test mETH": {
61
+ address: string;
62
+ isMarket: boolean;
63
+ plugins: {
64
+ simplePositionManager: string;
65
+ simpleZapper: string;
66
+ };
67
+ tokens: {
68
+ mUSD: string;
69
+ mETH: string;
70
+ };
71
+ "mETH-DynamicIRM": string;
72
+ };
73
+ "Test DAI / Test mkUSD": {
74
+ address: string;
75
+ isMarket: boolean;
76
+ plugins: {
77
+ simplePositionManager: string;
78
+ simpleZapper: string;
79
+ };
80
+ "DAI-DynamicIRM": string;
81
+ tokens: {
82
+ DAI: string;
83
+ mkUSD: string;
84
+ };
85
+ "mkUSD-DynamicIRM": string;
86
+ };
87
+ MessagingHub: string;
88
+ CVE: string;
89
+ RewardManager: string;
90
+ VeCVE: string;
91
+ GaugeManager: string;
92
+ VotingHub: string;
93
+ "WMON-MockPermissionV3Aggregator": string;
94
+ "WMON-ChainlinkAdaptor": string;
95
+ "VaultAggregator-WMON-aprMON": string;
96
+ "VaultAggregator-WMON-shMON": string;
97
+ "Apriori (aprMON) / wMON": {
98
+ address: string;
99
+ isMarket: boolean;
100
+ plugins: {
101
+ simplePositionManager: string;
102
+ simpleZapper: string;
103
+ vaultZapper: string;
104
+ };
105
+ "aprMON-DynamicIRM": string;
106
+ tokens: {
107
+ aprMON: string;
108
+ WMON: string;
109
+ };
110
+ "WMON-DynamicIRM": string;
111
+ };
112
+ "Fastlane (shMON) / wMON": {
113
+ address: string;
114
+ isMarket: boolean;
115
+ plugins: {
116
+ simplePositionManager: string;
117
+ simpleZapper: string;
118
+ vaultZapper: string;
119
+ };
120
+ "shMON-DynamicIRM": string;
121
+ tokens: {
122
+ shMON: string;
123
+ WMON: string;
124
+ };
125
+ "WMON-DynamicIRM": string;
126
+ };
127
+ "Magma (gMON) / wMON": {
128
+ address: string;
129
+ isMarket: boolean;
130
+ plugins: {
131
+ simplePositionManager: string;
132
+ simpleZapper: string;
133
+ vaultZapper: string;
134
+ };
135
+ "gMON-DynamicIRM": string;
136
+ tokens: {
137
+ gMON: string;
138
+ WMON: string;
139
+ };
140
+ "WMON-DynamicIRM": string;
141
+ };
142
+ "Kintsu (sMON) / wMON": {
143
+ address: string;
144
+ isMarket: boolean;
145
+ plugins: {
146
+ simplePositionManager: string;
147
+ simpleZapper: string;
148
+ vaultZapper: string;
149
+ };
150
+ "sMON-DynamicIRM": string;
151
+ tokens: {
152
+ sMON: string;
153
+ WMON: string;
154
+ };
155
+ "WMON-DynamicIRM": string;
156
+ };
157
+ ProtocolReader: string;
158
+ };
18
159
  export declare function handleTransactionWithOracles<T>(exec_func: Function, token: CToken | BorrowableCToken, adaptor: AdaptorTypes): Promise<T>;
19
- export declare const AVAILABLE_CHAINS: string[];
20
- export type ChainRpcPrefix = typeof AVAILABLE_CHAINS[number];
160
+ export type ChainRpcPrefix = keyof typeof chains;
21
161
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,eAAO,MAAM,GAAG,QAAqB,CAAC;AACtC,eAAO,MAAM,WAAW,SAAmB,CAAC;AAE5C,oBAAY,YAAY;IACpB,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,gBAAgB,IAAI;IACpB,IAAI,OAAO;CACd;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,CAMjH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,OAOzD;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxI;AAED,eAAO,MAAM,gBAAgB,UAE5B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,GAAG,QAAqB,CAAC;AACtC,eAAO,MAAM,WAAW,SAAmB,CAAC;AAE5C,oBAAY,YAAY;IACpB,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,gBAAgB,IAAI;IACpB,IAAI,OAAO;CACd;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,CAMjH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQzD;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxI;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC"}
package/dist/helpers.js CHANGED
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AVAILABLE_CHAINS = exports.AdaptorTypes = exports.WAD_DECIMAL = exports.WAD = void 0;
7
- exports.toDecimal = toDecimal;
8
- exports.toInteger = toInteger;
3
+ exports.AdaptorTypes = exports.WAD_DECIMAL = exports.WAD = void 0;
9
4
  exports.contractSetup = contractSetup;
10
5
  exports.getContractAddresses = getContractAddresses;
11
6
  exports.handleTransactionWithOracles = handleTransactionWithOracles;
12
7
  const ethers_1 = require("ethers");
13
8
  const decimal_js_1 = require("decimal.js");
14
- const path_1 = __importDefault(require("path"));
15
- const fs_1 = __importDefault(require("fs"));
9
+ const chains_1 = require("./chains");
16
10
  exports.WAD = BigInt(10n ** 18n);
17
11
  exports.WAD_DECIMAL = new decimal_js_1.Decimal(exports.WAD);
18
12
  var AdaptorTypes;
@@ -22,12 +16,6 @@ var AdaptorTypes;
22
16
  AdaptorTypes[AdaptorTypes["REDSTONE_CLASSIC"] = 3] = "REDSTONE_CLASSIC";
23
17
  AdaptorTypes[AdaptorTypes["MOCK"] = 1337] = "MOCK";
24
18
  })(AdaptorTypes || (exports.AdaptorTypes = AdaptorTypes = {}));
25
- function toDecimal(amount, decimals = 18n) {
26
- return amount / BigInt(10n ** BigInt(decimals));
27
- }
28
- function toInteger(amount, decimals = 18n) {
29
- return amount * BigInt(10n ** BigInt(decimals));
30
- }
31
19
  function contractSetup(signer, contractAddress, abi) {
32
20
  const contract = new ethers_1.Contract(contractAddress, abi, signer);
33
21
  if (contract == undefined || contract == null) {
@@ -36,11 +24,11 @@ function contractSetup(signer, contractAddress, abi) {
36
24
  return contract;
37
25
  }
38
26
  function getContractAddresses(chain) {
39
- const file_path = path_1.default.join(__dirname, 'chains', `${chain}.json`);
40
- if (!fs_1.default.existsSync(file_path)) {
27
+ const config = chains_1.chains[chain];
28
+ if (!config) {
41
29
  throw new Error(`No configuration found for chain ${chain}`);
42
30
  }
43
- return JSON.parse(fs_1.default.readFileSync(file_path, 'utf-8'));
31
+ return config;
44
32
  }
45
33
  function handleTransactionWithOracles(exec_func, token, adaptor) {
46
34
  if (adaptor == AdaptorTypes.REDSTONE_CORE) {
@@ -49,7 +37,4 @@ function handleTransactionWithOracles(exec_func, token, adaptor) {
49
37
  }
50
38
  return exec_func();
51
39
  }
52
- exports.AVAILABLE_CHAINS = [
53
- 'monad-testnet',
54
- ];
55
40
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;AAkBA,8BAEC;AAED,8BAEC;AAED,sCAMC;AAED,oDAOC;AAED,oEAOC;AAhDD,mCAAkC;AAClC,2CAAqC;AAErC,gDAAwB;AACxB,4CAAoB;AAEP,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACzB,QAAA,WAAW,GAAG,IAAI,oBAAO,CAAC,WAAG,CAAC,CAAC;AAE5C,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,yDAAa,CAAA;IACb,iEAAiB,CAAA;IACjB,uEAAoB,CAAA;IACpB,kDAAW,CAAA;AACf,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,QAAQ,GAAG,GAAG;IACpD,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,QAAQ,GAAG,GAAG;IACpD,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,aAAa,CAAI,MAA8B,EAAE,eAAwB,EAAE,GAAQ;IAC/F,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,eAAe,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAwB,CAAC;AACpC,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAqB;IACtD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAClE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,4BAA4B,CAAI,SAAmB,EAAE,KAAgC,EAAE,OAAqB;IACxH,IAAG,OAAO,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QACvC,QAAQ;QACR,sCAAsC;IAC1C,CAAC;IAED,OAAO,SAAS,EAAgB,CAAC;AACrC,CAAC;AAEY,QAAA,gBAAgB,GAAG;IAC5B,eAAe;CAClB,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAiBA,sCAMC;AAED,oDAQC;AAED,oEAOC;AAxCD,mCAAkC;AAClC,2CAAqC;AAErC,qCAAkC;AAErB,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACzB,QAAA,WAAW,GAAG,IAAI,oBAAO,CAAC,WAAG,CAAC,CAAC;AAE5C,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,yDAAa,CAAA;IACb,iEAAiB,CAAA;IACjB,uEAAoB,CAAA;IACpB,kDAAW,CAAA;AACf,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,SAAgB,aAAa,CAAI,MAA8B,EAAE,eAAwB,EAAE,GAAQ;IAC/F,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,eAAe,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAwB,CAAC;AACpC,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAqB;IACtD,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,4BAA4B,CAAI,SAAmB,EAAE,KAAgC,EAAE,OAAqB;IACxH,IAAG,OAAO,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QACvC,QAAQ;QACR,sCAAsC;IAC1C,CAAC;IAED,OAAO,SAAS,EAAgB,CAAC;AACrC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './classes/Faucet';
3
3
  export * from './classes/OracleManager';
4
4
  export * from './classes/Market';
5
5
  export * from './classes/CToken';
6
+ export * from './classes/ERC20';
6
7
  export * from './helpers';
7
8
  export * from './setup';
8
9
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ __exportStar(require("./classes/Faucet"), exports);
19
19
  __exportStar(require("./classes/OracleManager"), exports);
20
20
  __exportStar(require("./classes/Market"), exports);
21
21
  __exportStar(require("./classes/CToken"), exports);
22
+ __exportStar(require("./classes/ERC20"), exports);
22
23
  __exportStar(require("./helpers"), exports);
23
24
  __exportStar(require("./setup"), exports);
24
25
  __exportStar(require("./types"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,mDAAiC;AACjC,0DAAwC;AACxC,mDAAiC;AACjC,mDAAiC;AACjC,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,mDAAiC;AACjC,0DAAwC;AACxC,mDAAiC;AACjC,mDAAiC;AACjC,kDAAgC;AAChC,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAwB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;;;;GAWrF"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAwB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;;;;GAoBrF"}
package/dist/setup.js CHANGED
@@ -8,6 +8,15 @@ const Faucet_1 = require("./classes/Faucet");
8
8
  const OracleManager_1 = require("./classes/OracleManager");
9
9
  async function setupChain(chain, signer) {
10
10
  const chain_addresses = (0, helpers_1.getContractAddresses)(chain);
11
+ if (!("ProtocolReader" in chain_addresses)) {
12
+ throw new Error(`Chain configuration for ${chain} is missing ProtocolReader address.`);
13
+ }
14
+ else if (!("Faucet" in chain_addresses)) {
15
+ throw new Error(`Chain configuration for ${chain} is missing Faucet address.`);
16
+ }
17
+ else if (!("OracleManager" in chain_addresses)) {
18
+ throw new Error(`Chain configuration for ${chain} is missing OracleManager address.`);
19
+ }
11
20
  const reader = new ProtocolReader_1.ProtocolReader(signer, chain_addresses.ProtocolReader);
12
21
  const faucet = new Faucet_1.Faucet(signer, chain_addresses.Faucet);
13
22
  const oracle_manager = new OracleManager_1.OracleManager(signer, chain_addresses.OracleManager);
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AAQA,gCAWC;AAlBD,uCAAiE;AACjE,6CAA0C;AAE1C,6DAA0D;AAC1D,6CAA0C;AAC1C,2DAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,KAAqB,EAAE,MAA8B;IAClF,MAAM,eAAe,GAAG,IAAA,8BAAoB,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,eAAe,CAAC,cAAyB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,eAAe,CAAC,aAAwB,CAAC,CAAC;IAE3F,OAAO;QACH,OAAO,EAAE,MAAM,eAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;QAC5D,MAAM;QACN,MAAM;KACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AAQA,gCAoBC;AA3BD,uCAAiE;AACjE,6CAA0C;AAE1C,6DAA0D;AAC1D,6CAA0C;AAC1C,2DAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,KAAqB,EAAE,MAA8B;IAClF,MAAM,eAAe,GAAG,IAAA,8BAAoB,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAG,CAAC,CAAC,gBAAgB,IAAI,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,qCAAqC,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,6BAA6B,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,oCAAoC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,eAAe,CAAC,cAAyB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,eAAe,CAAC,aAAwB,CAAC,CAAC;IAE3F,OAAO;QACH,OAAO,EAAE,MAAM,eAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;QAC5D,MAAM;QACN,MAAM;KACT,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "curvance",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
- "files": ["dist", "README.md"],
7
- "repository": { "type": "git", "url": "https://github.com/curvance-web/contract-sdk.git" },
6
+ "files": [
7
+ "dist",
8
+ "README.md"
9
+ ],
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/curvance-web/contract-sdk.git"
13
+ },
8
14
  "author": "Austinhs",
9
15
  "description": "A SDK to explore the curvance protocol efficently & easily.",
10
16
  "license": "MIT",