@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.
Files changed (36) hide show
  1. package/README.md +12 -17
  2. package/dist/cjs/constants/addresses.js +48 -32
  3. package/dist/cjs/constants/currencies.d.ts +5 -0
  4. package/dist/cjs/constants/currencies.js +29 -0
  5. package/dist/cjs/constants/index.d.ts +1 -0
  6. package/dist/cjs/constants/index.js +1 -0
  7. package/dist/cjs/constants/tradablePairs.11142220.d.ts +2 -0
  8. package/dist/cjs/constants/tradablePairs.11142220.js +7391 -0
  9. package/dist/cjs/constants/tradablePairs.42220.js +1 -1
  10. package/dist/cjs/constants/tradablePairs.44787.js +1 -1
  11. package/dist/cjs/constants/tradablePairs.js +2 -0
  12. package/dist/cjs/enums/chainId.d.ts +1 -0
  13. package/dist/cjs/enums/chainId.js +1 -0
  14. package/dist/cjs/mento.d.ts +20 -0
  15. package/dist/cjs/mento.js +45 -1
  16. package/dist/cjs/types/contractAddressMap.d.ts +1 -1
  17. package/dist/cjs/utils.d.ts +15 -6
  18. package/dist/cjs/utils.js +33 -22
  19. package/dist/esm/constants/addresses.js +48 -32
  20. package/dist/esm/constants/currencies.d.ts +5 -0
  21. package/dist/esm/constants/currencies.js +26 -0
  22. package/dist/esm/constants/index.d.ts +1 -0
  23. package/dist/esm/constants/index.js +1 -0
  24. package/dist/esm/constants/tradablePairs.11142220.d.ts +2 -0
  25. package/dist/esm/constants/tradablePairs.11142220.js +7388 -0
  26. package/dist/esm/constants/tradablePairs.42220.js +1 -1
  27. package/dist/esm/constants/tradablePairs.44787.js +1 -1
  28. package/dist/esm/constants/tradablePairs.js +2 -0
  29. package/dist/esm/enums/chainId.d.ts +1 -0
  30. package/dist/esm/enums/chainId.js +1 -0
  31. package/dist/esm/mento.d.ts +20 -0
  32. package/dist/esm/mento.js +46 -2
  33. package/dist/esm/types/contractAddressMap.d.ts +1 -1
  34. package/dist/esm/utils.d.ts +15 -6
  35. package/dist/esm/utils.js +29 -20
  36. 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-07-11T11:11:56.576Z
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-07-11T11:12:19.594Z
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
  }
@@ -1,4 +1,5 @@
1
1
  export declare enum ChainId {
2
2
  CELO = 42220,
3
+ CELO_SEPOLIA = 11142220,
3
4
  ALFAJORES = 44787
4
5
  }
@@ -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 = {}));
@@ -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.getBrokerAddressFromRegistry)(signerOrProvider), yield (0, addresses_1.getAddress)('MentoRouter', yield (0, utils_1.getChainId)(signerOrProvider)));
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;
@@ -1,4 +1,4 @@
1
1
  import { ContractAddresses } from '.';
2
2
  export type ContractAddressMap = {
3
- [chainId: number]: ContractAddresses;
3
+ [chainId: number]: Partial<ContractAddresses>;
4
4
  };
@@ -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.getSymbolFromTokenAddress = exports.getBrokerAddressFromRegistry = exports.validateSignerOrProvider = exports.validateSigner = exports.getChainId = void 0;
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
- GovernanceFactory: '0xee6CE2dbe788dFC38b8F583Da86cB9caf2C8cF5A',
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
- GovernanceFactory: '0x96Fe03DBFEc1EB419885a01d2335bE7c1a45e33b',
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
+ ];
@@ -1,2 +1,3 @@
1
1
  export * from './addresses';
2
+ export * from './currencies';
2
3
  export * from './tradablePairs';
@@ -1,2 +1,3 @@
1
1
  export * from './addresses';
2
+ export * from './currencies';
2
3
  export * from './tradablePairs';
@@ -0,0 +1,2 @@
1
+ import { TradablePairWithSpread } from './tradablePairs';
2
+ export declare const tradablePairs11142220: TradablePairWithSpread[];