@mento-protocol/mento-sdk 1.0.4 → 1.0.5
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/dist/abis/bipoolmanager.d.ts +15 -0
- package/dist/abis/bipoolmanager.d.ts.map +1 -0
- package/dist/abis/bipoolmanager.js +26 -0
- package/dist/abis/bipoolmanager.js.map +1 -0
- package/dist/abis/broker.d.ts +2 -0
- package/dist/abis/broker.d.ts.map +1 -0
- package/dist/abis/broker.js +8 -0
- package/dist/abis/broker.js.map +1 -0
- package/dist/abis/erc20.d.ts +2 -0
- package/dist/abis/erc20.d.ts.map +1 -0
- package/dist/abis/erc20.js +11 -0
- package/dist/abis/erc20.js.map +1 -0
- package/dist/abis/index.d.ts +5 -0
- package/dist/abis/index.d.ts.map +1 -0
- package/dist/abis/index.js +21 -0
- package/dist/abis/index.js.map +1 -0
- package/dist/abis/pricingmodule.d.ts +2 -0
- package/dist/abis/pricingmodule.d.ts.map +1 -0
- package/dist/abis/pricingmodule.js +5 -0
- package/dist/abis/pricingmodule.js.map +1 -0
- package/dist/abis/reserve.d.ts +2 -0
- package/dist/abis/reserve.d.ts.map +1 -0
- package/dist/abis/reserve.js +9 -0
- package/dist/abis/reserve.js.map +1 -0
- package/dist/abis/uniswapV3.d.ts +4 -0
- package/dist/abis/uniswapV3.d.ts.map +1 -0
- package/dist/abis/uniswapV3.js +15 -0
- package/dist/abis/uniswapV3.js.map +1 -0
- package/dist/adapters/implementations/ethersAdapter.d.ts +9 -0
- package/dist/adapters/implementations/ethersAdapter.d.ts.map +1 -0
- package/dist/adapters/implementations/ethersAdapter.js +19 -0
- package/dist/adapters/implementations/ethersAdapter.js.map +1 -0
- package/dist/adapters/implementations/ethersV5Adapter.d.ts +9 -0
- package/dist/adapters/implementations/ethersV5Adapter.d.ts.map +1 -0
- package/dist/adapters/implementations/ethersV5Adapter.js +19 -0
- package/dist/adapters/implementations/ethersV5Adapter.js.map +1 -0
- package/dist/adapters/implementations/viemAdapter.d.ts +9 -0
- package/dist/adapters/implementations/viemAdapter.d.ts.map +1 -0
- package/dist/adapters/implementations/viemAdapter.js +26 -0
- package/dist/adapters/implementations/viemAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +10 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/proxies/ethersAdapterProxy.d.ts +25 -0
- package/dist/adapters/proxies/ethersAdapterProxy.d.ts.map +1 -0
- package/dist/adapters/proxies/ethersAdapterProxy.js +71 -0
- package/dist/adapters/proxies/ethersAdapterProxy.js.map +1 -0
- package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts +25 -0
- package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts.map +1 -0
- package/dist/adapters/proxies/ethersV5AdapterProxy.js +71 -0
- package/dist/adapters/proxies/ethersV5AdapterProxy.js.map +1 -0
- package/dist/adapters/proxies/viemAdapterProxy.d.ts +25 -0
- package/dist/adapters/proxies/viemAdapterProxy.d.ts.map +1 -0
- package/dist/adapters/proxies/viemAdapterProxy.js +71 -0
- package/dist/adapters/proxies/viemAdapterProxy.js.map +1 -0
- package/dist/cjs/constants/addresses.js +1 -1
- package/dist/cjs/constants/tradablePairs.js +0 -240
- package/dist/cjs/mento.d.ts +3 -7
- package/dist/cjs/mento.js +9 -15
- package/dist/constants/addresses.d.ts +14 -0
- package/dist/constants/addresses.d.ts.map +1 -0
- package/dist/constants/addresses.js +61 -0
- package/dist/constants/addresses.js.map +1 -0
- package/dist/constants/chainId.d.ts +5 -0
- package/dist/constants/chainId.d.ts.map +1 -0
- package/dist/constants/chainId.js +9 -0
- package/dist/constants/chainId.js.map +1 -0
- package/dist/constants/contractNames.d.ts +21 -0
- package/dist/constants/contractNames.d.ts.map +1 -0
- package/dist/constants/contractNames.js +24 -0
- package/dist/constants/contractNames.js.map +1 -0
- package/dist/constants/index.d.ts +8 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +24 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/mentoAddresses.d.ts +4 -0
- package/dist/constants/mentoAddresses.d.ts.map +1 -0
- package/dist/constants/mentoAddresses.js +7 -0
- package/dist/constants/mentoAddresses.js.map +1 -0
- package/dist/constants/proposalState.d.ts +11 -0
- package/dist/constants/proposalState.d.ts.map +1 -0
- package/dist/constants/proposalState.js +15 -0
- package/dist/constants/proposalState.js.map +1 -0
- package/dist/constants/protocolAddresses.d.ts +5 -0
- package/dist/constants/protocolAddresses.d.ts.map +1 -0
- package/dist/constants/protocolAddresses.js +8 -0
- package/dist/constants/protocolAddresses.js.map +1 -0
- package/dist/constants/stableTokenMetadata.d.ts +14 -0
- package/dist/constants/stableTokenMetadata.d.ts.map +1 -0
- package/dist/constants/stableTokenMetadata.js +32 -0
- package/dist/constants/stableTokenMetadata.js.map +1 -0
- package/dist/esm/constants/addresses.js +1 -1
- package/dist/esm/constants/tradablePairs.js +0 -240
- package/dist/esm/mento.d.ts +3 -7
- package/dist/esm/mento.js +9 -15
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/services/collateralAssetService.d.ts +8 -0
- package/dist/services/collateralAssetService.d.ts.map +1 -0
- package/dist/services/collateralAssetService.js +47 -0
- package/dist/services/collateralAssetService.js.map +1 -0
- package/dist/services/index.d.ts +6 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +22 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/stableTokenService.d.ts +9 -0
- package/dist/services/stableTokenService.d.ts.map +1 -0
- package/dist/services/stableTokenService.js +40 -0
- package/dist/services/stableTokenService.js.map +1 -0
- package/dist/services/supply/ISupplyCalculator.d.ts +4 -0
- package/dist/services/supply/ISupplyCalculator.d.ts.map +1 -0
- package/dist/services/supply/ISupplyCalculator.js +3 -0
- package/dist/services/supply/ISupplyCalculator.js.map +1 -0
- package/dist/services/supply/UniV3SupplyCalculator.d.ts +21 -0
- package/dist/services/supply/UniV3SupplyCalculator.d.ts.map +1 -0
- package/dist/services/supply/UniV3SupplyCalculator.js +233 -0
- package/dist/services/supply/UniV3SupplyCalculator.js.map +1 -0
- package/dist/services/supply/index.d.ts +4 -0
- package/dist/services/supply/index.d.ts.map +1 -0
- package/dist/services/supply/index.js +20 -0
- package/dist/services/supply/index.js.map +1 -0
- package/dist/services/supply/multisigSupplyCalculator.d.ts +9 -0
- package/dist/services/supply/multisigSupplyCalculator.d.ts.map +1 -0
- package/dist/services/supply/multisigSupplyCalculator.js +21 -0
- package/dist/services/supply/multisigSupplyCalculator.js.map +1 -0
- package/dist/services/supplyAdjustmentService.d.ts +12 -0
- package/dist/services/supplyAdjustmentService.d.ts.map +1 -0
- package/dist/services/supplyAdjustmentService.js +35 -0
- package/dist/services/supplyAdjustmentService.js.map +1 -0
- package/dist/services/tokenMetadataService.d.ts +8 -0
- package/dist/services/tokenMetadataService.d.ts.map +1 -0
- package/dist/services/tokenMetadataService.js +44 -0
- package/dist/services/tokenMetadataService.js.map +1 -0
- package/dist/types/contractAddresses.d.ts +23 -0
- package/dist/types/contractAddresses.d.ts.map +1 -0
- package/dist/types/contractAddresses.js +3 -0
- package/dist/types/contractAddresses.js.map +1 -0
- package/dist/types/exchange.d.ts +6 -0
- package/dist/types/exchange.d.ts.map +1 -0
- package/dist/types/exchange.js +3 -0
- package/dist/types/exchange.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/provider.d.ts +11 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +3 -0
- package/dist/types/provider.js.map +1 -0
- package/dist/types/token.d.ts +19 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +3 -0
- package/dist/types/token.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/retry.d.ts +12 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +28 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultisigSupplyCalculator = void 0;
|
|
4
|
+
const abis_1 = require("../../abis");
|
|
5
|
+
class MultisigSupplyCalculator {
|
|
6
|
+
constructor(provider, multisigAddress) {
|
|
7
|
+
this.provider = provider;
|
|
8
|
+
this.multisigAddress = multisigAddress;
|
|
9
|
+
}
|
|
10
|
+
async getAmount(tokenAddress) {
|
|
11
|
+
const balance = (await this.provider.readContract({
|
|
12
|
+
address: tokenAddress,
|
|
13
|
+
abi: abis_1.ERC20_ABI,
|
|
14
|
+
functionName: 'balanceOf',
|
|
15
|
+
args: [this.multisigAddress],
|
|
16
|
+
}));
|
|
17
|
+
return balance;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.MultisigSupplyCalculator = MultisigSupplyCalculator;
|
|
21
|
+
//# sourceMappingURL=multisigSupplyCalculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multisigSupplyCalculator.js","sourceRoot":"","sources":["../../../src/services/supply/multisigSupplyCalculator.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAItC,MAAa,wBAAwB;IACnC,YACU,QAAyB,EACzB,eAAuB;QADvB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,oBAAe,GAAf,eAAe,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,gBAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;SAC7B,CAAC,CAAW,CAAA;QAEb,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAhBD,4DAgBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProviderAdapter, StableToken } from '../types';
|
|
2
|
+
export declare class SupplyAdjustmentService {
|
|
3
|
+
private config;
|
|
4
|
+
constructor(provider: ProviderAdapter);
|
|
5
|
+
/**
|
|
6
|
+
* Get the adjusted supply of a stable token
|
|
7
|
+
* @param token - The stable token to get the adjusted supply for
|
|
8
|
+
* @returns The adjusted supply
|
|
9
|
+
*/
|
|
10
|
+
getAdjustedSupply(token: StableToken): Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=supplyAdjustmentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supplyAdjustmentService.d.ts","sourceRoot":"","sources":["../../src/services/supplyAdjustmentService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAA;AAQ1E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAmB;gBAErB,QAAQ,EAAE,eAAe;IAqBrC;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAa7D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SupplyAdjustmentService = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const supply_1 = require("./supply");
|
|
6
|
+
class SupplyAdjustmentService {
|
|
7
|
+
constructor(provider) {
|
|
8
|
+
const uniV3Calculator = new supply_1.UniV3SupplyCalculator(provider, constants_1.PROTOCOL_ADDRESSES.UNIV3_POSITION_MANAGER, constants_1.PROTOCOL_ADDRESSES.UNIV3_FACTORY, constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG);
|
|
9
|
+
const multisigCalculator = new supply_1.MultisigSupplyCalculator(provider, constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG);
|
|
10
|
+
this.config = {
|
|
11
|
+
[constants_1.STABLE_TOKEN_SYMBOLS.cUSD]: [
|
|
12
|
+
{ calculator: uniV3Calculator },
|
|
13
|
+
{ calculator: multisigCalculator },
|
|
14
|
+
],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get the adjusted supply of a stable token
|
|
19
|
+
* @param token - The stable token to get the adjusted supply for
|
|
20
|
+
* @returns The adjusted supply
|
|
21
|
+
*/
|
|
22
|
+
async getAdjustedSupply(token) {
|
|
23
|
+
const adjustments = this.config[token.symbol];
|
|
24
|
+
if (!adjustments)
|
|
25
|
+
return token.totalSupply;
|
|
26
|
+
let supply = BigInt(token.totalSupply);
|
|
27
|
+
for (const adjustment of adjustments) {
|
|
28
|
+
const amount = await adjustment.calculator.getAmount(token.address);
|
|
29
|
+
supply -= amount;
|
|
30
|
+
}
|
|
31
|
+
return supply.toString();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.SupplyAdjustmentService = SupplyAdjustmentService;
|
|
35
|
+
//# sourceMappingURL=supplyAdjustmentService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supplyAdjustmentService.js","sourceRoot":"","sources":["../../src/services/supplyAdjustmentService.ts"],"names":[],"mappings":";;;AACA,4CAIqB;AACrB,qCAA0E;AAE1E,MAAa,uBAAuB;IAGlC,YAAY,QAAyB;QACnC,MAAM,eAAe,GAAG,IAAI,8BAAqB,CAC/C,QAAQ,EACR,8BAAkB,CAAC,sBAAsB,EACzC,8BAAkB,CAAC,aAAa,EAChC,2BAAe,CAAC,iBAAiB,CAClC,CAAA;QAED,MAAM,kBAAkB,GAAG,IAAI,iCAAwB,CACrD,QAAQ,EACR,2BAAe,CAAC,iBAAiB,CAClC,CAAA;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,CAAC,gCAAoB,CAAC,IAAI,CAAC,EAAE;gBAC3B,EAAE,UAAU,EAAE,eAAe,EAAE;gBAC/B,EAAE,UAAU,EAAE,kBAAkB,EAAE;aACnC;SACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAkB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7C,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC,WAAW,CAAA;QAE1C,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACnE,MAAM,IAAI,MAAM,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC;CACF;AA1CD,0DA0CC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ProviderAdapter, BaseToken } from '../types';
|
|
2
|
+
export declare class TokenMetadataService {
|
|
3
|
+
private provider;
|
|
4
|
+
constructor(provider: ProviderAdapter);
|
|
5
|
+
getTokenMetadata(address: string): Promise<Pick<BaseToken, 'name' | 'symbol' | 'decimals'>>;
|
|
6
|
+
getTotalSupply(address: string): Promise<string>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=tokenMetadataService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenMetadataService.d.ts","sourceRoot":"","sources":["../../src/services/tokenMetadataService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIrD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEvC,gBAAgB,CACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;IAgCrD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWvD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenMetadataService = void 0;
|
|
4
|
+
const abis_1 = require("../abis");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
class TokenMetadataService {
|
|
7
|
+
constructor(provider) {
|
|
8
|
+
this.provider = provider;
|
|
9
|
+
}
|
|
10
|
+
async getTokenMetadata(address) {
|
|
11
|
+
const [name, symbol, decimals] = await Promise.all([
|
|
12
|
+
(0, utils_1.retryOperation)(() => this.provider.readContract({
|
|
13
|
+
address,
|
|
14
|
+
abi: abis_1.ERC20_ABI,
|
|
15
|
+
functionName: 'name',
|
|
16
|
+
})),
|
|
17
|
+
(0, utils_1.retryOperation)(() => this.provider.readContract({
|
|
18
|
+
address,
|
|
19
|
+
abi: abis_1.ERC20_ABI,
|
|
20
|
+
functionName: 'symbol',
|
|
21
|
+
})),
|
|
22
|
+
(0, utils_1.retryOperation)(() => this.provider.readContract({
|
|
23
|
+
address,
|
|
24
|
+
abi: abis_1.ERC20_ABI,
|
|
25
|
+
functionName: 'decimals',
|
|
26
|
+
})),
|
|
27
|
+
]);
|
|
28
|
+
return {
|
|
29
|
+
name: name,
|
|
30
|
+
symbol: symbol,
|
|
31
|
+
decimals: Number(decimals),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async getTotalSupply(address) {
|
|
35
|
+
const totalSupply = await (0, utils_1.retryOperation)(() => this.provider.readContract({
|
|
36
|
+
address,
|
|
37
|
+
abi: abis_1.ERC20_ABI,
|
|
38
|
+
functionName: 'totalSupply',
|
|
39
|
+
}));
|
|
40
|
+
return totalSupply.toString();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.TokenMetadataService = TokenMetadataService;
|
|
44
|
+
//# sourceMappingURL=tokenMetadataService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenMetadataService.js","sourceRoot":"","sources":["../../src/services/tokenMetadataService.ts"],"names":[],"mappings":";;;AACA,kCAAmC;AACnC,oCAAyC;AAEzC,MAAa,oBAAoB;IAC/B,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAEjD,KAAK,CAAC,gBAAgB,CACpB,OAAe;QAEf,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAA,sBAAc,EAAC,GAAG,EAAE,CAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzB,OAAO;gBACP,GAAG,EAAE,gBAAS;gBACd,YAAY,EAAE,MAAM;aACrB,CAAC,CACH;YACD,IAAA,sBAAc,EAAC,GAAG,EAAE,CAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzB,OAAO;gBACP,GAAG,EAAE,gBAAS;gBACd,YAAY,EAAE,QAAQ;aACvB,CAAC,CACH;YACD,IAAA,sBAAc,EAAC,GAAG,EAAE,CAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzB,OAAO;gBACP,GAAG,EAAE,gBAAS;gBACd,YAAY,EAAE,UAAU;aACzB,CAAC,CACH;SACF,CAAC,CAAA;QAEF,OAAO;YACL,IAAI,EAAE,IAAc;YACpB,MAAM,EAAE,MAAgB;YACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzB,OAAO;YACP,GAAG,EAAE,gBAAS;YACd,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAA;QAED,OAAQ,WAAsB,CAAC,QAAQ,EAAE,CAAA;IAC3C,CAAC;CACF;AAhDD,oDAgDC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ContractAddresses = {
|
|
2
|
+
GovernanceFactory: string;
|
|
3
|
+
Airgrab: string;
|
|
4
|
+
Emission: string;
|
|
5
|
+
MentoGovernor: string;
|
|
6
|
+
MentoToken: string;
|
|
7
|
+
TimelockController: string;
|
|
8
|
+
Locking: string;
|
|
9
|
+
Broker: string;
|
|
10
|
+
BiPoolManager: string;
|
|
11
|
+
BreakerBox: string;
|
|
12
|
+
Reserve: string;
|
|
13
|
+
ConstantSumPricingModule: string;
|
|
14
|
+
ConstantProductPricingModule: string;
|
|
15
|
+
MedianDeltaBreaker: string;
|
|
16
|
+
ValueDeltaBreaker: string;
|
|
17
|
+
StableToken: string;
|
|
18
|
+
StableTokenEUR: string;
|
|
19
|
+
StableTokenBRL: string;
|
|
20
|
+
StableTokenXOF: string;
|
|
21
|
+
SortedOracles: string;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=contractAddresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contractAddresses.d.ts","sourceRoot":"","sources":["../../src/types/contractAddresses.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contractAddresses.js","sourceRoot":"","sources":["../../src/types/contractAddresses.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./contractAddresses"), exports);
|
|
18
|
+
__exportStar(require("./provider"), exports);
|
|
19
|
+
__exportStar(require("./token"), exports);
|
|
20
|
+
__exportStar(require("./exchange"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,6CAA0B;AAC1B,0CAAuB;AACvB,6CAA0B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ContractCallOptions {
|
|
2
|
+
address: string;
|
|
3
|
+
abi: string[] | unknown[];
|
|
4
|
+
functionName: string;
|
|
5
|
+
args?: unknown[];
|
|
6
|
+
}
|
|
7
|
+
export interface ProviderAdapter {
|
|
8
|
+
readContract(options: ContractCallOptions): Promise<unknown>;
|
|
9
|
+
getChainId(): Promise<number>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ISupplyCalculator } from '../services';
|
|
2
|
+
export interface BaseToken {
|
|
3
|
+
name: string;
|
|
4
|
+
symbol: string;
|
|
5
|
+
address: string;
|
|
6
|
+
decimals: number;
|
|
7
|
+
}
|
|
8
|
+
export interface StableToken extends BaseToken {
|
|
9
|
+
totalSupply: string;
|
|
10
|
+
fiatTicker: string;
|
|
11
|
+
}
|
|
12
|
+
export type CollateralAsset = BaseToken;
|
|
13
|
+
export interface SupplyAdjustment {
|
|
14
|
+
calculator: ISupplyCalculator;
|
|
15
|
+
}
|
|
16
|
+
export interface TokenSupplyConfig {
|
|
17
|
+
[tokenSymbol: string]: SupplyAdjustment[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/types/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,CAAA;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/types/token.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./retry"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface RetryOptions {
|
|
2
|
+
maxAttempts?: number;
|
|
3
|
+
initialDelayMs?: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Retry an operation a number of times with exponential backoff.
|
|
7
|
+
* @param operation - The operation to retry
|
|
8
|
+
* @param options - The retry options
|
|
9
|
+
* @returns The result of the operation
|
|
10
|
+
*/
|
|
11
|
+
export declare function retryOperation<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
12
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAoBZ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retryOperation = retryOperation;
|
|
4
|
+
/**
|
|
5
|
+
* Retry an operation a number of times with exponential backoff.
|
|
6
|
+
* @param operation - The operation to retry
|
|
7
|
+
* @param options - The retry options
|
|
8
|
+
* @returns The result of the operation
|
|
9
|
+
*/
|
|
10
|
+
async function retryOperation(operation, options = {}) {
|
|
11
|
+
const maxAttempts = options.maxAttempts ?? 3;
|
|
12
|
+
const delayMs = options.initialDelayMs ?? 1000;
|
|
13
|
+
let lastError;
|
|
14
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
15
|
+
try {
|
|
16
|
+
return await operation();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
lastError = error;
|
|
20
|
+
if (attempt === maxAttempts)
|
|
21
|
+
break;
|
|
22
|
+
// Exponential backoff
|
|
23
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs * attempt));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
throw new Error(`Operation failed after ${maxAttempts} attempts: ${lastError?.message}`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;AAWA,wCAuBC;AA7BD;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,SAA2B,EAC3B,UAAwB,EAAE;IAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;IAC9C,IAAI,SAA4B,CAAA;IAEhC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAc,CAAA;YAC1B,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAK;YAElC,sBAAsB;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,cAAc,SAAS,EAAE,OAAO,EAAE,CACxE,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mento-protocol/mento-sdk",
|
|
3
3
|
"description": "Official SDK for interacting with the Mento Protocol",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.5",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Mento Labs",
|
|
7
7
|
"keywords": [
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@typescript-eslint/parser": "^5.53.0",
|
|
70
70
|
"eslint": "^8.34.0",
|
|
71
71
|
"eslint-config-prettier": "^8.6.0",
|
|
72
|
-
"ethers": "^5.7
|
|
72
|
+
"ethers": "^5.7",
|
|
73
73
|
"husky": "^8.0.2",
|
|
74
74
|
"jest": "^29.4.2",
|
|
75
75
|
"prettier": "^2.8.4",
|