@mento-protocol/mento-sdk 1.10.3 → 1.11.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/README.md +16 -18
- package/dist/cjs/constants/addresses.js +48 -32
- package/dist/cjs/constants/currencies.d.ts +5 -0
- package/dist/cjs/constants/currencies.js +29 -0
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/tradablePairs.11142220.d.ts +2 -0
- package/dist/cjs/constants/tradablePairs.11142220.js +7391 -0
- package/dist/cjs/constants/tradablePairs.42220.js +1 -1
- package/dist/cjs/constants/tradablePairs.44787.js +1 -1
- package/dist/cjs/enums/chainId.d.ts +3 -1
- package/dist/cjs/enums/chainId.js +2 -0
- package/dist/cjs/mento.d.ts +4 -0
- package/dist/cjs/mento.js +15 -1
- package/dist/cjs/types/contractAddressMap.d.ts +1 -1
- package/dist/cjs/utils.d.ts +1 -6
- package/dist/cjs/utils.js +5 -22
- package/dist/esm/constants/addresses.js +48 -32
- package/dist/esm/constants/currencies.d.ts +5 -0
- package/dist/esm/constants/currencies.js +26 -0
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +1 -0
- package/dist/esm/constants/tradablePairs.11142220.d.ts +2 -0
- package/dist/esm/constants/tradablePairs.11142220.js +7388 -0
- package/dist/esm/constants/tradablePairs.42220.js +1 -1
- package/dist/esm/constants/tradablePairs.44787.js +1 -1
- package/dist/esm/enums/chainId.d.ts +3 -1
- package/dist/esm/enums/chainId.js +2 -0
- package/dist/esm/mento.d.ts +4 -0
- package/dist/esm/mento.js +16 -2
- package/dist/esm/types/contractAddressMap.d.ts +1 -1
- package/dist/esm/utils.d.ts +1 -6
- package/dist/esm/utils.js +4 -21
- package/package.json +10 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file is auto-generated. Do not edit manually.
|
|
3
|
-
// Generated on 2025-
|
|
3
|
+
// Generated on 2025-09-12T16:06:28.873Z
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.tradablePairs42220 = void 0;
|
|
6
6
|
exports.tradablePairs42220 = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file is auto-generated. Do not edit manually.
|
|
3
|
-
// Generated on 2025-
|
|
3
|
+
// Generated on 2025-09-12T16:07:04.390Z
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.tradablePairs44787 = void 0;
|
|
6
6
|
exports.tradablePairs44787 = [
|
|
@@ -4,5 +4,7 @@ exports.ChainId = void 0;
|
|
|
4
4
|
var ChainId;
|
|
5
5
|
(function (ChainId) {
|
|
6
6
|
ChainId[ChainId["CELO"] = 42220] = "CELO";
|
|
7
|
+
ChainId[ChainId["CELO_SEPOLIA"] = 11142220] = "CELO_SEPOLIA";
|
|
7
8
|
ChainId[ChainId["ALFAJORES"] = 44787] = "ALFAJORES";
|
|
9
|
+
ChainId[ChainId["BASE"] = 8453] = "BASE";
|
|
8
10
|
})(ChainId = exports.ChainId || (exports.ChainId = {}));
|
package/dist/cjs/mento.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IBroker } from '@mento-protocol/mento-core-ts';
|
|
2
2
|
import { BigNumber, BigNumberish, providers, Signer } from 'ethers';
|
|
3
3
|
import { Address, TradingLimit, TradingLimitsConfig, TradingLimitsState } from './interfaces';
|
|
4
|
+
import { Identifier } from './constants/addresses';
|
|
4
5
|
import { TradablePairWithSpread } from './constants/tradablePairs';
|
|
5
6
|
export interface Exchange {
|
|
6
7
|
providerAddr: Address;
|
|
@@ -26,6 +27,7 @@ export declare class Mento {
|
|
|
26
27
|
private readonly broker;
|
|
27
28
|
private readonly router;
|
|
28
29
|
private exchanges;
|
|
30
|
+
private cachedChainId;
|
|
29
31
|
/**
|
|
30
32
|
* This constructor is private, use the static create or createWithParams methods
|
|
31
33
|
* to create a new Mento instance
|
|
@@ -235,4 +237,6 @@ export declare class Mento {
|
|
|
235
237
|
* @returns the trading limits state
|
|
236
238
|
*/
|
|
237
239
|
getTradingLimitState(exchangeId: string): Promise<TradingLimitsState[]>;
|
|
240
|
+
getAddress(identifier: Identifier): Promise<Address>;
|
|
241
|
+
chainId(): Promise<number>;
|
|
238
242
|
}
|
package/dist/cjs/mento.js
CHANGED
|
@@ -28,6 +28,7 @@ class Mento {
|
|
|
28
28
|
* @param exchanges exchange data for the broker
|
|
29
29
|
*/
|
|
30
30
|
constructor(signerOrProvider, brokerAddress, routerAddress, exchanges) {
|
|
31
|
+
this.cachedChainId = null;
|
|
31
32
|
this.signerOrProvider = signerOrProvider;
|
|
32
33
|
this.broker = mento_core_ts_1.IBroker__factory.connect(brokerAddress, signerOrProvider);
|
|
33
34
|
this.router = mento_router_ts_1.IMentoRouter__factory.connect(routerAddress, signerOrProvider);
|
|
@@ -42,7 +43,7 @@ class Mento {
|
|
|
42
43
|
static create(signerOrProvider) {
|
|
43
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
45
|
(0, utils_1.validateSignerOrProvider)(signerOrProvider);
|
|
45
|
-
return new Mento(signerOrProvider, yield (0, utils_1.
|
|
46
|
+
return new Mento(signerOrProvider, (0, addresses_1.getAddress)('Broker', yield (0, utils_1.getChainId)(signerOrProvider)), (0, addresses_1.getAddress)('MentoRouter', yield (0, utils_1.getChainId)(signerOrProvider)));
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
@@ -555,5 +556,18 @@ class Mento {
|
|
|
555
556
|
return yield Promise.all(configuredLimitCfgs.map((cfg) => __awaiter(this, void 0, void 0, function* () { return yield (0, limits_1.getLimitsState)(broker, exchangeId, cfg.asset); })));
|
|
556
557
|
});
|
|
557
558
|
}
|
|
559
|
+
getAddress(identifier) {
|
|
560
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
561
|
+
return (0, addresses_1.getAddress)(identifier, yield this.chainId());
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
chainId() {
|
|
565
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
566
|
+
if (this.cachedChainId == null) {
|
|
567
|
+
this.cachedChainId = yield (0, utils_1.getChainId)(this.signerOrProvider);
|
|
568
|
+
}
|
|
569
|
+
return this.cachedChainId;
|
|
570
|
+
});
|
|
571
|
+
}
|
|
558
572
|
}
|
|
559
573
|
exports.Mento = Mento;
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -19,12 +19,6 @@ export declare function validateSigner(signer: Signer): void;
|
|
|
19
19
|
* @throws if signerOrProvider is invalid or not connected
|
|
20
20
|
*/
|
|
21
21
|
export declare function validateSignerOrProvider(signerOrProvider: Signer | providers.Provider): void;
|
|
22
|
-
/**
|
|
23
|
-
* Returns the broker address from the Celo registry
|
|
24
|
-
* @param signerOrProvider an ethers provider or signer
|
|
25
|
-
* @returns the broker address
|
|
26
|
-
*/
|
|
27
|
-
export declare function getBrokerAddressFromRegistry(signerOrProvider: Signer | providers.Provider): Promise<Address>;
|
|
28
22
|
/**
|
|
29
23
|
* Returns the symbol of an erc20 token
|
|
30
24
|
* @param tokenAddr the address of the erc20 token
|
|
@@ -48,3 +42,4 @@ export declare function increaseAllowance(tokenAddr: string, spender: string, am
|
|
|
48
42
|
* @returns the token address if found, null otherwise
|
|
49
43
|
*/
|
|
50
44
|
export declare function findTokenBySymbol(pairs: readonly TradablePair[], symbol: string): string | null;
|
|
45
|
+
export declare function capitalize(str: string): string;
|
package/dist/cjs/utils.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.capitalize = exports.findTokenBySymbol = exports.increaseAllowance = exports.getSymbolFromTokenAddress = exports.validateSignerOrProvider = exports.validateSigner = exports.getChainId = void 0;
|
|
13
13
|
const ethers_1 = require("ethers");
|
|
14
14
|
/**
|
|
15
15
|
* Gets the chain ID from a signer or provider
|
|
@@ -55,27 +55,6 @@ function validateSignerOrProvider(signerOrProvider) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
exports.validateSignerOrProvider = validateSignerOrProvider;
|
|
58
|
-
/**
|
|
59
|
-
* Returns the broker address from the Celo registry
|
|
60
|
-
* @param signerOrProvider an ethers provider or signer
|
|
61
|
-
* @returns the broker address
|
|
62
|
-
*/
|
|
63
|
-
function getBrokerAddressFromRegistry(signerOrProvider) {
|
|
64
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const celoRegistryAddress = '0x000000000000000000000000000000000000ce10';
|
|
66
|
-
const brokerIdentifier = 'Broker';
|
|
67
|
-
const registryAbi = [
|
|
68
|
-
'function getAddressForString(string calldata identifier) external view returns (address)',
|
|
69
|
-
];
|
|
70
|
-
const contract = new ethers_1.Contract(celoRegistryAddress, registryAbi, signerOrProvider);
|
|
71
|
-
const brokerAddress = yield contract.getAddressForString(brokerIdentifier);
|
|
72
|
-
if (brokerAddress === ethers_1.constants.AddressZero) {
|
|
73
|
-
throw Error('Broker address not found in the registry');
|
|
74
|
-
}
|
|
75
|
-
return brokerAddress;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
exports.getBrokerAddressFromRegistry = getBrokerAddressFromRegistry;
|
|
79
58
|
/**
|
|
80
59
|
* Returns the symbol of an erc20 token
|
|
81
60
|
* @param tokenAddr the address of the erc20 token
|
|
@@ -127,3 +106,7 @@ function findTokenBySymbol(pairs, symbol) {
|
|
|
127
106
|
return null;
|
|
128
107
|
}
|
|
129
108
|
exports.findTokenBySymbol = findTokenBySymbol;
|
|
109
|
+
function capitalize(str) {
|
|
110
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
111
|
+
}
|
|
112
|
+
exports.capitalize = capitalize;
|
|
@@ -1,51 +1,67 @@
|
|
|
1
1
|
import { ChainId } from './../enums';
|
|
2
2
|
export const addresses = {
|
|
3
3
|
[ChainId.CELO]: {
|
|
4
|
-
|
|
4
|
+
// Oracles & Breakers
|
|
5
|
+
BreakerBox: '0x303ED1df62Fa067659B586EbEe8De0EcE824Ab39',
|
|
6
|
+
MedianDeltaBreaker: '0x49349F92D2B17d491e42C8fdB02D19f072F9B5D9',
|
|
7
|
+
SortedOracles: '0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33',
|
|
8
|
+
ValueDeltaBreaker: '0x4DBC33B3abA78475A5AA4BC7A5B11445d387BF68',
|
|
9
|
+
// DEX
|
|
10
|
+
BiPoolManager: '0x22d9db95E6Ae61c104A7B6F6C78D7993B94ec901',
|
|
11
|
+
Broker: '0x777A8255cA72412f0d706dc03C9D1987306B4CaD',
|
|
12
|
+
ConstantProductPricingModule: '0x0c07126d0CB30E66eF7553Cc7C37143B4f06DddB',
|
|
13
|
+
ConstantSumPricingModule: '0xDebED1F6f6ce9F6e73AA25F95acBFFE2397550Fb',
|
|
14
|
+
MentoRouter: '0xbe729350f8cdfc19db6866e8579841188ee57f67',
|
|
15
|
+
Reserve: '0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9',
|
|
16
|
+
// Governance
|
|
5
17
|
Airgrab: '0x7D8E73deafDBAfc98fDBe7974168cFA6d8B9AE0C',
|
|
6
18
|
Emission: '0x5C789592E2611df1873b46D394c69f75faB99778',
|
|
19
|
+
Locking: '0x001Bb66636dCd149A1A2bA8C50E408BdDd80279C',
|
|
7
20
|
MentoGovernor: '0x47036d78bB3169b4F5560dD77BF93f4412A59852',
|
|
8
21
|
MentoToken: '0x7FF62f59e3e89EA34163EA1458EEBCc81177Cfb6',
|
|
9
22
|
TimelockController: '0x890DB8A597940165901372Dd7DB61C9f246e2147',
|
|
10
|
-
Locking: '0x001Bb66636dCd149A1A2bA8C50E408BdDd80279C',
|
|
11
|
-
MentoRouter: '0xbe729350f8cdfc19db6866e8579841188ee57f67',
|
|
12
|
-
Broker: '0x777A8255cA72412f0d706dc03C9D1987306B4CaD',
|
|
13
|
-
BiPoolManager: '0x22d9db95E6Ae61c104A7B6F6C78D7993B94ec901',
|
|
14
|
-
BreakerBox: '0x303ED1df62Fa067659B586EbEe8De0EcE824Ab39',
|
|
15
|
-
Reserve: '0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9',
|
|
16
|
-
ConstantSumPricingModule: '0xDebED1F6f6ce9F6e73AA25F95acBFFE2397550Fb',
|
|
17
|
-
ConstantProductPricingModule: '0x0c07126d0CB30E66eF7553Cc7C37143B4f06DddB',
|
|
18
|
-
MedianDeltaBreaker: '0x49349F92D2B17d491e42C8fdB02D19f072F9B5D9',
|
|
19
|
-
ValueDeltaBreaker: '0x4DBC33B3abA78475A5AA4BC7A5B11445d387BF68',
|
|
20
|
-
StableToken: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
|
|
21
|
-
StableTokenEUR: '0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73',
|
|
22
|
-
StableTokenBRL: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
|
|
23
|
-
StableTokenXOF: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
|
|
24
|
-
SortedOracles: '0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33',
|
|
25
23
|
},
|
|
26
24
|
[ChainId.ALFAJORES]: {
|
|
27
|
-
|
|
25
|
+
// Oracles & Breakers
|
|
26
|
+
BreakerBox: '0xC76BDf0AFb654888728003683cf748A8B1b4f5fD',
|
|
27
|
+
MedianDeltaBreaker: '0x6B0a2076713fDAef4F9301fe8404a228e3682DE4',
|
|
28
|
+
SortedOracles: '0xFdd8bD58115FfBf04e47411c1d228eCC45E93075',
|
|
29
|
+
ValueDeltaBreaker: '0xfa6fFf746a5E74055e432f3bba26138956AEfbFe',
|
|
30
|
+
// DEX
|
|
31
|
+
BiPoolManager: '0x9B64E8EaBD1a035b148cE970d3319c5C3Ad53EC3',
|
|
32
|
+
Broker: '0xD3Dff18E465bCa6241A244144765b4421Ac14D09',
|
|
33
|
+
ConstantProductPricingModule: '0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519',
|
|
34
|
+
ConstantSumPricingModule: '0x474DBf1eDF845410bdaC6aeE97C3CC403651ba2E',
|
|
35
|
+
MentoRouter: '0xe6101a457a69b53e298e35a7f6e3dcb0390df02a',
|
|
36
|
+
Reserve: '0xa7ed835288Aa4524bB6C73DD23c0bF4315D9Fe3e',
|
|
37
|
+
// Governance
|
|
28
38
|
Airgrab: '0x8dC9282F0a74A2a36F41440e009AA0EADFe490c5',
|
|
29
39
|
Emission: '0xe62cc88ca2A5E7Dd3Fe5ce8511C874e610Ddb0b6',
|
|
40
|
+
Locking: '0x537CaE97C588C6DA64A385817F3D3563DDCf0591',
|
|
30
41
|
MentoGovernor: '0x558e92236f85Bb4e8A63ec0D5Bf9d34087Eab744',
|
|
31
42
|
MentoToken: '0x3eDd2f7c90e2E931c817a44302Af7112E84be6Cc',
|
|
32
43
|
TimelockController: '0xa0Ad8DD40104556122c21dF50eD14bb1B53A3338',
|
|
33
|
-
Locking: '0x537CaE97C588C6DA64A385817F3D3563DDCf0591',
|
|
34
|
-
MentoRouter: '0xe6101a457a69b53e298e35a7f6e3dcb0390df02a',
|
|
35
|
-
Broker: '0xD3Dff18E465bCa6241A244144765b4421Ac14D09',
|
|
36
|
-
BiPoolManager: '0x9B64E8EaBD1a035b148cE970d3319c5C3Ad53EC3',
|
|
37
|
-
BreakerBox: '0xC76BDf0AFb654888728003683cf748A8B1b4f5fD',
|
|
38
|
-
Reserve: '0xa7ed835288Aa4524bB6C73DD23c0bF4315D9Fe3e',
|
|
39
|
-
ConstantSumPricingModule: '0x474DBf1eDF845410bdaC6aeE97C3CC403651ba2E',
|
|
40
|
-
ConstantProductPricingModule: '0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519',
|
|
41
|
-
MedianDeltaBreaker: '0x6B0a2076713fDAef4F9301fe8404a228e3682DE4',
|
|
42
|
-
ValueDeltaBreaker: '0xfa6fFf746a5E74055e432f3bba26138956AEfbFe',
|
|
43
|
-
StableToken: '0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1',
|
|
44
|
-
StableTokenEUR: '0x10c892A6EC43a53E45D0B916B4b7D383B1b78C0F',
|
|
45
|
-
StableTokenBRL: '0xE4D517785D091D3c54818832dB6094bcc2744545',
|
|
46
|
-
StableTokenXOF: '0xB0FA15e002516d0301884059c0aaC0F0C72b019D',
|
|
47
|
-
SortedOracles: '0xFdd8bD58115FfBf04e47411c1d228eCC45E93075',
|
|
48
44
|
},
|
|
45
|
+
[ChainId.CELO_SEPOLIA]: {
|
|
46
|
+
// Oracles & Breakers
|
|
47
|
+
BreakerBox: '0x578bD46003B9D3fd4c3C3f47c98B329562a6a1dE',
|
|
48
|
+
MedianDeltaBreaker: '0xd29B4e743F7B84D63fBF9149B6D983DF2eF5C952',
|
|
49
|
+
SortedOracles: '0xfaa7Ca2B056E60F6733aE75AA0709140a6eAfD20',
|
|
50
|
+
ValueDeltaBreaker: '0x03CDf2966185Eb0b980f2481Ad386B8aFdAB4534',
|
|
51
|
+
// DEX
|
|
52
|
+
BiPoolManager: '0xeCB3C656C131fCd9bB8D1d80898716bD684feb78',
|
|
53
|
+
Broker: '0xB9Ae2065142EB79b6c5EB1E8778F883fad6B07Ba',
|
|
54
|
+
ConstantProductPricingModule: '0x2584a5835e3aE7E901e6462E1de06920c2C68028',
|
|
55
|
+
ConstantSumPricingModule: '0x3b199d9EbEbe509bb711BfFb455c2d79102A9602',
|
|
56
|
+
MentoRouter: '0x8e4Fb12D86D5DF911086a9153e79CA27e0c96156',
|
|
57
|
+
Reserve: '0x2bC2D48735842924C508468C5A02580aD4F6d99A',
|
|
58
|
+
// Governance
|
|
59
|
+
Emission: '0x3C1BEA0F35b5dcAc1065CA9b3b6877657dEa4A69',
|
|
60
|
+
Locking: '0xB72320fC501cb30E55bAF0DA48c20b11fAc9f79D',
|
|
61
|
+
MentoGovernor: '0x23173Ac37b8E4e5a60d787aC543B3F51e8f398b4',
|
|
62
|
+
MentoToken: '0x07867fd40EB56b4380bE39c88D0a7EA59Aa99A20',
|
|
63
|
+
TimelockController: '0x74c44Be99937815173A3C56274331e0A05611e0D',
|
|
64
|
+
}
|
|
49
65
|
};
|
|
50
66
|
export function getAddress(identifier, chainId) {
|
|
51
67
|
const addressesForChain = addresses[chainId];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of supported currencies for rate feed generation and validation
|
|
3
|
+
*/
|
|
4
|
+
export declare const CURRENCIES: readonly ["AUD", "USD", "PHP", "ZAR", "CAD", "EUR", "BRL", "XOF", "COP", "GHS", "CHF", "NGN", "JPY", "GBP", "KES", "CELO", "ETH", "EURC", "EUROC", "USDC", "USDT"];
|
|
5
|
+
export type Currency = typeof CURRENCIES[number];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of supported currencies for rate feed generation and validation
|
|
3
|
+
*/
|
|
4
|
+
export const CURRENCIES = [
|
|
5
|
+
"AUD",
|
|
6
|
+
"USD",
|
|
7
|
+
"PHP",
|
|
8
|
+
"ZAR",
|
|
9
|
+
"CAD",
|
|
10
|
+
"EUR",
|
|
11
|
+
"BRL",
|
|
12
|
+
"XOF",
|
|
13
|
+
"COP",
|
|
14
|
+
"GHS",
|
|
15
|
+
"CHF",
|
|
16
|
+
"NGN",
|
|
17
|
+
"JPY",
|
|
18
|
+
"GBP",
|
|
19
|
+
"KES",
|
|
20
|
+
"CELO",
|
|
21
|
+
"ETH",
|
|
22
|
+
"EURC",
|
|
23
|
+
"EUROC",
|
|
24
|
+
"USDC",
|
|
25
|
+
"USDT"
|
|
26
|
+
];
|