@mento-protocol/mento-sdk 1.10.3 → 1.12.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 +12 -17
- 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/constants/tradablePairs.js +2 -0
- package/dist/cjs/enums/chainId.d.ts +1 -0
- package/dist/cjs/enums/chainId.js +1 -0
- package/dist/cjs/mento.d.ts +20 -0
- package/dist/cjs/mento.js +45 -1
- package/dist/cjs/types/contractAddressMap.d.ts +1 -1
- package/dist/cjs/utils.d.ts +15 -6
- package/dist/cjs/utils.js +33 -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/constants/tradablePairs.js +2 -0
- package/dist/esm/enums/chainId.d.ts +1 -0
- package/dist/esm/enums/chainId.js +1 -0
- package/dist/esm/mento.d.ts +20 -0
- package/dist/esm/mento.js +46 -2
- package/dist/esm/types/contractAddressMap.d.ts +1 -1
- package/dist/esm/utils.d.ts +15 -6
- package/dist/esm/utils.js +29 -20
- package/package.json +12 -8
|
@@ -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 = [
|
|
@@ -45,6 +45,8 @@ function getCachedTradablePairs(chainId) {
|
|
|
45
45
|
return yield Promise.resolve().then(() => __importStar(require('./tradablePairs.42220'))).then((module) => module.tradablePairs42220);
|
|
46
46
|
case 44787:
|
|
47
47
|
return yield Promise.resolve().then(() => __importStar(require('./tradablePairs.44787'))).then((module) => module.tradablePairs44787);
|
|
48
|
+
case 11142220:
|
|
49
|
+
return yield Promise.resolve().then(() => __importStar(require('./tradablePairs.11142220'))).then((module) => module.tradablePairs11142220);
|
|
48
50
|
default:
|
|
49
51
|
return undefined;
|
|
50
52
|
}
|
|
@@ -4,5 +4,6 @@ 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";
|
|
8
9
|
})(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;
|
|
@@ -11,6 +12,12 @@ export interface Asset {
|
|
|
11
12
|
address: Address;
|
|
12
13
|
symbol: string;
|
|
13
14
|
}
|
|
15
|
+
export interface Token {
|
|
16
|
+
address: Address;
|
|
17
|
+
symbol: string;
|
|
18
|
+
name: string;
|
|
19
|
+
decimals: number;
|
|
20
|
+
}
|
|
14
21
|
export type TradablePairID = `${Address}-${Address}`;
|
|
15
22
|
export interface TradablePair {
|
|
16
23
|
id: TradablePairID;
|
|
@@ -26,6 +33,7 @@ export declare class Mento {
|
|
|
26
33
|
private readonly broker;
|
|
27
34
|
private readonly router;
|
|
28
35
|
private exchanges;
|
|
36
|
+
private cachedChainId;
|
|
29
37
|
/**
|
|
30
38
|
* This constructor is private, use the static create or createWithParams methods
|
|
31
39
|
* to create a new Mento instance
|
|
@@ -89,6 +97,16 @@ export declare class Mento {
|
|
|
89
97
|
* Attempts to get cached tradable pairs for the current chain
|
|
90
98
|
*/
|
|
91
99
|
private getCachedTradablePairs;
|
|
100
|
+
/**
|
|
101
|
+
* Returns a list of all unique tokens available on the current chain.
|
|
102
|
+
* Each token includes its address, symbol, name, and decimals.
|
|
103
|
+
* @param options - Optional parameters
|
|
104
|
+
* @param options.cached - Whether to use cached data (default: true)
|
|
105
|
+
* @returns An array of unique Token objects.
|
|
106
|
+
*/
|
|
107
|
+
getTokens({ cached, }?: {
|
|
108
|
+
cached?: boolean;
|
|
109
|
+
}): Promise<Token[]>;
|
|
92
110
|
/**
|
|
93
111
|
* Returns the amount of tokenIn to be sold to buy amountOut of tokenOut.
|
|
94
112
|
* If the provided tradablePair has a single (direct) pricing path, then direct pricing is used.
|
|
@@ -235,4 +253,6 @@ export declare class Mento {
|
|
|
235
253
|
* @returns the trading limits state
|
|
236
254
|
*/
|
|
237
255
|
getTradingLimitState(exchangeId: string): Promise<TradingLimitsState[]>;
|
|
256
|
+
getAddress(identifier: Identifier): Promise<Address>;
|
|
257
|
+
chainId(): Promise<number>;
|
|
238
258
|
}
|
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
|
/**
|
|
@@ -159,6 +160,36 @@ class Mento {
|
|
|
159
160
|
return yield (0, tradablePairs_1.getCachedTradablePairs)(chainId);
|
|
160
161
|
});
|
|
161
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Returns a list of all unique tokens available on the current chain.
|
|
165
|
+
* Each token includes its address, symbol, name, and decimals.
|
|
166
|
+
* @param options - Optional parameters
|
|
167
|
+
* @param options.cached - Whether to use cached data (default: true)
|
|
168
|
+
* @returns An array of unique Token objects.
|
|
169
|
+
*/
|
|
170
|
+
getTokens({ cached = true, } = {}) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
const tradablePairs = yield this.getTradablePairsWithPath({ cached });
|
|
173
|
+
// Collect unique token addresses
|
|
174
|
+
const uniqueAddresses = new Set(tradablePairs.flatMap(pair => pair.assets.map(asset => asset.address)));
|
|
175
|
+
// Fetch token metadata for each unique address
|
|
176
|
+
const tokens = yield Promise.all(Array.from(uniqueAddresses).map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
const [symbol, name, decimals] = yield Promise.all([
|
|
178
|
+
(0, utils_1.getSymbolFromTokenAddress)(address, this.signerOrProvider),
|
|
179
|
+
(0, utils_1.getNameFromTokenAddress)(address, this.signerOrProvider),
|
|
180
|
+
(0, utils_1.getDecimalsFromTokenAddress)(address, this.signerOrProvider),
|
|
181
|
+
]);
|
|
182
|
+
return {
|
|
183
|
+
address,
|
|
184
|
+
symbol,
|
|
185
|
+
name,
|
|
186
|
+
decimals,
|
|
187
|
+
};
|
|
188
|
+
})));
|
|
189
|
+
// Sort by symbol
|
|
190
|
+
return tokens.sort((a, b) => a.symbol.localeCompare(b.symbol));
|
|
191
|
+
});
|
|
192
|
+
}
|
|
162
193
|
/**
|
|
163
194
|
* Returns the amount of tokenIn to be sold to buy amountOut of tokenOut.
|
|
164
195
|
* If the provided tradablePair has a single (direct) pricing path, then direct pricing is used.
|
|
@@ -555,5 +586,18 @@ class Mento {
|
|
|
555
586
|
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
587
|
});
|
|
557
588
|
}
|
|
589
|
+
getAddress(identifier) {
|
|
590
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
591
|
+
return (0, addresses_1.getAddress)(identifier, yield this.chainId());
|
|
592
|
+
});
|
|
593
|
+
}
|
|
594
|
+
chainId() {
|
|
595
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
596
|
+
if (this.cachedChainId == null) {
|
|
597
|
+
this.cachedChainId = yield (0, utils_1.getChainId)(this.signerOrProvider);
|
|
598
|
+
}
|
|
599
|
+
return this.cachedChainId;
|
|
600
|
+
});
|
|
601
|
+
}
|
|
558
602
|
}
|
|
559
603
|
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
|
|
@@ -32,6 +26,20 @@ export declare function getBrokerAddressFromRegistry(signerOrProvider: Signer |
|
|
|
32
26
|
* @returns the symbol of the erc20 token
|
|
33
27
|
*/
|
|
34
28
|
export declare function getSymbolFromTokenAddress(tokenAddr: Address, signerOrProvider: Signer | providers.Provider): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the name of an erc20 token
|
|
31
|
+
* @param tokenAddr the address of the erc20 token
|
|
32
|
+
* @param signerOrProvider an ethers provider or signer
|
|
33
|
+
* @returns the name of the erc20 token
|
|
34
|
+
*/
|
|
35
|
+
export declare function getNameFromTokenAddress(tokenAddr: Address, signerOrProvider: Signer | providers.Provider): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Returns the decimals of an erc20 token
|
|
38
|
+
* @param tokenAddr the address of the erc20 token
|
|
39
|
+
* @param signerOrProvider an ethers provider or signer
|
|
40
|
+
* @returns the decimals of the erc20 token
|
|
41
|
+
*/
|
|
42
|
+
export declare function getDecimalsFromTokenAddress(tokenAddr: Address, signerOrProvider: Signer | providers.Provider): Promise<number>;
|
|
35
43
|
/**
|
|
36
44
|
* Returns a populated tx obj for increasing the allowance of a spender for a given erc20 token by a given amount
|
|
37
45
|
* @param tokenAddr the address of the erc20 token
|
|
@@ -48,3 +56,4 @@ export declare function increaseAllowance(tokenAddr: string, spender: string, am
|
|
|
48
56
|
* @returns the token address if found, null otherwise
|
|
49
57
|
*/
|
|
50
58
|
export declare function findTokenBySymbol(pairs: readonly TradablePair[], symbol: string): string | null;
|
|
59
|
+
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.findTokenBySymbol = exports.increaseAllowance = exports.
|
|
12
|
+
exports.capitalize = exports.findTokenBySymbol = exports.increaseAllowance = exports.getDecimalsFromTokenAddress = exports.getNameFromTokenAddress = 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
|
|
@@ -90,6 +69,34 @@ function getSymbolFromTokenAddress(tokenAddr, signerOrProvider) {
|
|
|
90
69
|
});
|
|
91
70
|
}
|
|
92
71
|
exports.getSymbolFromTokenAddress = getSymbolFromTokenAddress;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the name of an erc20 token
|
|
74
|
+
* @param tokenAddr the address of the erc20 token
|
|
75
|
+
* @param signerOrProvider an ethers provider or signer
|
|
76
|
+
* @returns the name of the erc20 token
|
|
77
|
+
*/
|
|
78
|
+
function getNameFromTokenAddress(tokenAddr, signerOrProvider) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const erc20Abi = ['function name() external view returns (string memory)'];
|
|
81
|
+
const contract = new ethers_1.Contract(tokenAddr, erc20Abi, signerOrProvider);
|
|
82
|
+
return contract.name();
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
exports.getNameFromTokenAddress = getNameFromTokenAddress;
|
|
86
|
+
/**
|
|
87
|
+
* Returns the decimals of an erc20 token
|
|
88
|
+
* @param tokenAddr the address of the erc20 token
|
|
89
|
+
* @param signerOrProvider an ethers provider or signer
|
|
90
|
+
* @returns the decimals of the erc20 token
|
|
91
|
+
*/
|
|
92
|
+
function getDecimalsFromTokenAddress(tokenAddr, signerOrProvider) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const erc20Abi = ['function decimals() external view returns (uint8)'];
|
|
95
|
+
const contract = new ethers_1.Contract(tokenAddr, erc20Abi, signerOrProvider);
|
|
96
|
+
return contract.decimals();
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
exports.getDecimalsFromTokenAddress = getDecimalsFromTokenAddress;
|
|
93
100
|
/**
|
|
94
101
|
* Returns a populated tx obj for increasing the allowance of a spender for a given erc20 token by a given amount
|
|
95
102
|
* @param tokenAddr the address of the erc20 token
|
|
@@ -127,3 +134,7 @@ function findTokenBySymbol(pairs, symbol) {
|
|
|
127
134
|
return null;
|
|
128
135
|
}
|
|
129
136
|
exports.findTokenBySymbol = findTokenBySymbol;
|
|
137
|
+
function capitalize(str) {
|
|
138
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
139
|
+
}
|
|
140
|
+
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
|
+
];
|