@mento-protocol/mento-sdk 1.0.0 → 2.0.0-beta.1

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 (196) hide show
  1. package/README.md +124 -8
  2. package/dist/abis/bipoolmanager.d.ts +15 -0
  3. package/dist/abis/bipoolmanager.d.ts.map +1 -0
  4. package/dist/abis/bipoolmanager.js +26 -0
  5. package/dist/abis/bipoolmanager.js.map +1 -0
  6. package/dist/abis/broker.d.ts +2 -0
  7. package/dist/abis/broker.d.ts.map +1 -0
  8. package/dist/abis/broker.js +8 -0
  9. package/dist/abis/broker.js.map +1 -0
  10. package/dist/abis/erc20.d.ts +2 -0
  11. package/dist/abis/erc20.d.ts.map +1 -0
  12. package/dist/abis/erc20.js +11 -0
  13. package/dist/abis/erc20.js.map +1 -0
  14. package/dist/abis/index.d.ts +4 -0
  15. package/dist/abis/index.d.ts.map +1 -0
  16. package/dist/{cjs → abis}/index.js +4 -5
  17. package/dist/abis/index.js.map +1 -0
  18. package/dist/abis/pricingmodule.d.ts +2 -0
  19. package/dist/abis/pricingmodule.d.ts.map +1 -0
  20. package/dist/abis/pricingmodule.js +5 -0
  21. package/dist/abis/pricingmodule.js.map +1 -0
  22. package/dist/abis/reserve.d.ts +2 -0
  23. package/dist/abis/reserve.d.ts.map +1 -0
  24. package/dist/abis/reserve.js +9 -0
  25. package/dist/abis/reserve.js.map +1 -0
  26. package/dist/adapters/implementations/ethersAdapter.d.ts +10 -0
  27. package/dist/adapters/implementations/ethersAdapter.d.ts.map +1 -0
  28. package/dist/adapters/implementations/ethersAdapter.js +22 -0
  29. package/dist/adapters/implementations/ethersAdapter.js.map +1 -0
  30. package/dist/adapters/implementations/ethersV5Adapter.d.ts +10 -0
  31. package/dist/adapters/implementations/ethersV5Adapter.d.ts.map +1 -0
  32. package/dist/adapters/implementations/ethersV5Adapter.js +22 -0
  33. package/dist/adapters/implementations/ethersV5Adapter.js.map +1 -0
  34. package/dist/adapters/implementations/viemAdapter.d.ts +10 -0
  35. package/dist/adapters/implementations/viemAdapter.d.ts.map +1 -0
  36. package/dist/adapters/implementations/viemAdapter.js +29 -0
  37. package/dist/adapters/implementations/viemAdapter.js.map +1 -0
  38. package/dist/adapters/index.d.ts +5 -0
  39. package/dist/adapters/index.d.ts.map +1 -0
  40. package/dist/adapters/index.js +10 -0
  41. package/dist/adapters/index.js.map +1 -0
  42. package/dist/adapters/proxies/ethersAdapterProxy.d.ts +27 -0
  43. package/dist/adapters/proxies/ethersAdapterProxy.d.ts.map +1 -0
  44. package/dist/adapters/proxies/ethersAdapterProxy.js +77 -0
  45. package/dist/adapters/proxies/ethersAdapterProxy.js.map +1 -0
  46. package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts +27 -0
  47. package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts.map +1 -0
  48. package/dist/adapters/proxies/ethersV5AdapterProxy.js +77 -0
  49. package/dist/adapters/proxies/ethersV5AdapterProxy.js.map +1 -0
  50. package/dist/adapters/proxies/viemAdapterProxy.d.ts +28 -0
  51. package/dist/adapters/proxies/viemAdapterProxy.d.ts.map +1 -0
  52. package/dist/adapters/proxies/viemAdapterProxy.js +77 -0
  53. package/dist/adapters/proxies/viemAdapterProxy.js.map +1 -0
  54. package/dist/constants/addresses.d.ts +14 -0
  55. package/dist/constants/addresses.d.ts.map +1 -0
  56. package/dist/{cjs/constants → constants}/addresses.js +14 -25
  57. package/dist/constants/addresses.js.map +1 -0
  58. package/dist/constants/chainId.d.ts +5 -0
  59. package/dist/constants/chainId.d.ts.map +1 -0
  60. package/dist/{cjs/enums → constants}/chainId.js +2 -2
  61. package/dist/constants/chainId.js.map +1 -0
  62. package/dist/constants/contractNames.d.ts +21 -0
  63. package/dist/constants/contractNames.d.ts.map +1 -0
  64. package/dist/constants/contractNames.js +24 -0
  65. package/dist/constants/contractNames.js.map +1 -0
  66. package/dist/constants/index.d.ts +6 -0
  67. package/dist/constants/index.d.ts.map +1 -0
  68. package/dist/{cjs/interfaces → constants}/index.js +6 -4
  69. package/dist/constants/index.js.map +1 -0
  70. package/dist/{cjs/enums → constants}/proposalState.d.ts +1 -0
  71. package/dist/constants/proposalState.d.ts.map +1 -0
  72. package/dist/{cjs/enums → constants}/proposalState.js +2 -1
  73. package/dist/constants/proposalState.js.map +1 -0
  74. package/dist/constants/stableTokenMetadata.d.ts +13 -0
  75. package/dist/constants/stableTokenMetadata.d.ts.map +1 -0
  76. package/dist/constants/stableTokenMetadata.js +30 -0
  77. package/dist/constants/stableTokenMetadata.js.map +1 -0
  78. package/dist/index.d.ts +67 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +122 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/services/collateralAssetService.d.ts +8 -0
  83. package/dist/services/collateralAssetService.d.ts.map +1 -0
  84. package/dist/services/collateralAssetService.js +44 -0
  85. package/dist/services/collateralAssetService.js.map +1 -0
  86. package/dist/services/exchangeService.d.ts +18 -0
  87. package/dist/services/exchangeService.d.ts.map +1 -0
  88. package/dist/services/exchangeService.js +78 -0
  89. package/dist/services/exchangeService.js.map +1 -0
  90. package/dist/services/index.d.ts +3 -0
  91. package/dist/services/index.d.ts.map +1 -0
  92. package/dist/{cjs/enums → services}/index.js +3 -2
  93. package/dist/services/index.js.map +1 -0
  94. package/dist/services/stableTokenService.d.ts +8 -0
  95. package/dist/services/stableTokenService.d.ts.map +1 -0
  96. package/dist/services/stableTokenService.js +35 -0
  97. package/dist/services/stableTokenService.js.map +1 -0
  98. package/dist/services/tokenMetadataService.d.ts +8 -0
  99. package/dist/services/tokenMetadataService.d.ts.map +1 -0
  100. package/dist/services/tokenMetadataService.js +45 -0
  101. package/dist/services/tokenMetadataService.js.map +1 -0
  102. package/dist/{esm/types → types}/contractAddresses.d.ts +1 -0
  103. package/dist/types/contractAddresses.d.ts.map +1 -0
  104. package/dist/{cjs/types → types}/contractAddresses.js +1 -0
  105. package/dist/types/contractAddresses.js.map +1 -0
  106. package/dist/types/exchange.d.ts +12 -0
  107. package/dist/types/exchange.d.ts.map +1 -0
  108. package/dist/{cjs/interfaces/tradingLimit.js → types/exchange.js} +1 -0
  109. package/dist/types/exchange.js.map +1 -0
  110. package/dist/types/index.d.ts +5 -0
  111. package/dist/types/index.d.ts.map +1 -0
  112. package/dist/{cjs/types → types}/index.js +4 -1
  113. package/dist/types/index.js.map +1 -0
  114. package/dist/types/provider.d.ts +12 -0
  115. package/dist/types/provider.d.ts.map +1 -0
  116. package/dist/{cjs/interfaces/tradingLimitsConfig.js → types/provider.js} +1 -0
  117. package/dist/types/provider.js.map +1 -0
  118. package/dist/types/token.d.ts +12 -0
  119. package/dist/types/token.d.ts.map +1 -0
  120. package/dist/{cjs/interfaces/IChainClient.js → types/token.js} +1 -0
  121. package/dist/types/token.js.map +1 -0
  122. package/dist/utils/index.d.ts +2 -0
  123. package/dist/utils/index.d.ts.map +1 -0
  124. package/dist/{cjs/constants → utils}/index.js +2 -1
  125. package/dist/utils/index.js.map +1 -0
  126. package/dist/utils/retry.d.ts +12 -0
  127. package/dist/utils/retry.d.ts.map +1 -0
  128. package/dist/utils/retry.js +28 -0
  129. package/dist/utils/retry.js.map +1 -0
  130. package/package.json +31 -43
  131. package/dist/cjs/ChainClient.d.ts +0 -9
  132. package/dist/cjs/ChainClient.js +0 -58
  133. package/dist/cjs/TestChainClient.d.ts +0 -7
  134. package/dist/cjs/TestChainClient.js +0 -41
  135. package/dist/cjs/constants/addresses.d.ts +0 -2
  136. package/dist/cjs/constants/index.d.ts +0 -1
  137. package/dist/cjs/enums/chainId.d.ts +0 -5
  138. package/dist/cjs/enums/index.d.ts +0 -2
  139. package/dist/cjs/governance.d.ts +0 -62
  140. package/dist/cjs/governance.js +0 -151
  141. package/dist/cjs/index.d.ts +0 -5
  142. package/dist/cjs/interfaces/IChainClient.d.ts +0 -6
  143. package/dist/cjs/interfaces/index.d.ts +0 -4
  144. package/dist/cjs/interfaces/tradingLimit.d.ts +0 -7
  145. package/dist/cjs/interfaces/tradingLimitsConfig.d.ts +0 -10
  146. package/dist/cjs/interfaces/tradingLimitsState.d.ts +0 -9
  147. package/dist/cjs/interfaces/tradingLimitsState.js +0 -2
  148. package/dist/cjs/limits.d.ts +0 -33
  149. package/dist/cjs/limits.js +0 -130
  150. package/dist/cjs/mento.d.ts +0 -152
  151. package/dist/cjs/mento.js +0 -318
  152. package/dist/cjs/types/contractAddressMap.d.ts +0 -4
  153. package/dist/cjs/types/contractAddressMap.js +0 -2
  154. package/dist/cjs/types/contractAddresses.d.ts +0 -22
  155. package/dist/cjs/types/index.d.ts +0 -2
  156. package/dist/cjs/utils.d.ts +0 -36
  157. package/dist/cjs/utils.js +0 -98
  158. package/dist/esm/ChainClient.d.ts +0 -9
  159. package/dist/esm/ChainClient.js +0 -54
  160. package/dist/esm/TestChainClient.d.ts +0 -7
  161. package/dist/esm/TestChainClient.js +0 -37
  162. package/dist/esm/constants/addresses.d.ts +0 -2
  163. package/dist/esm/constants/addresses.js +0 -69
  164. package/dist/esm/constants/index.d.ts +0 -1
  165. package/dist/esm/constants/index.js +0 -1
  166. package/dist/esm/enums/chainId.d.ts +0 -5
  167. package/dist/esm/enums/chainId.js +0 -6
  168. package/dist/esm/enums/index.d.ts +0 -2
  169. package/dist/esm/enums/index.js +0 -2
  170. package/dist/esm/enums/proposalState.d.ts +0 -10
  171. package/dist/esm/enums/proposalState.js +0 -11
  172. package/dist/esm/governance.d.ts +0 -62
  173. package/dist/esm/governance.js +0 -147
  174. package/dist/esm/index.d.ts +0 -5
  175. package/dist/esm/index.js +0 -5
  176. package/dist/esm/interfaces/IChainClient.d.ts +0 -6
  177. package/dist/esm/interfaces/IChainClient.js +0 -1
  178. package/dist/esm/interfaces/index.d.ts +0 -4
  179. package/dist/esm/interfaces/index.js +0 -4
  180. package/dist/esm/interfaces/tradingLimit.d.ts +0 -7
  181. package/dist/esm/interfaces/tradingLimit.js +0 -1
  182. package/dist/esm/interfaces/tradingLimitsConfig.d.ts +0 -10
  183. package/dist/esm/interfaces/tradingLimitsConfig.js +0 -1
  184. package/dist/esm/interfaces/tradingLimitsState.d.ts +0 -9
  185. package/dist/esm/interfaces/tradingLimitsState.js +0 -1
  186. package/dist/esm/limits.d.ts +0 -33
  187. package/dist/esm/limits.js +0 -123
  188. package/dist/esm/mento.d.ts +0 -152
  189. package/dist/esm/mento.js +0 -314
  190. package/dist/esm/types/contractAddressMap.d.ts +0 -4
  191. package/dist/esm/types/contractAddressMap.js +0 -1
  192. package/dist/esm/types/contractAddresses.js +0 -1
  193. package/dist/esm/types/index.d.ts +0 -2
  194. package/dist/esm/types/index.js +0 -2
  195. package/dist/esm/utils.d.ts +0 -36
  196. package/dist/esm/utils.js +0 -90
package/dist/cjs/utils.js DELETED
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.increaseAllowance = exports.getSymbolFromTokenAddress = exports.getBrokerAddressFromRegistry = exports.validateSignerOrProvider = exports.validateSigner = void 0;
13
- const ethers_1 = require("ethers");
14
- /**
15
- * Ensures that given signer is truly a a connected signer
16
- * @param signer an ethers signer
17
- * @throws if signer is invalid or not connected
18
- */
19
- function validateSigner(signer) {
20
- if (!ethers_1.Signer.isSigner(signer)) {
21
- throw new Error('A valid signer must be provided');
22
- }
23
- if (!ethers_1.providers.Provider.isProvider(signer.provider)) {
24
- throw new Error('Signer must be connected to a provider');
25
- }
26
- }
27
- exports.validateSigner = validateSigner;
28
- /**
29
- * Ensures that given signerOrProvider is truly a provider or a connected signer
30
- * @param signerOrProvider an ethers provider or signer
31
- * @throws if signerOrProvider is invalid or not connected
32
- */
33
- function validateSignerOrProvider(signerOrProvider) {
34
- const isSigner = ethers_1.Signer.isSigner(signerOrProvider);
35
- const isProvider = ethers_1.providers.Provider.isProvider(signerOrProvider);
36
- if (!isSigner && !isProvider) {
37
- throw new Error('A valid signer or provider must be provided');
38
- }
39
- if (isSigner && !ethers_1.providers.Provider.isProvider(signerOrProvider.provider)) {
40
- throw new Error('Signer must be connected to a provider');
41
- }
42
- }
43
- exports.validateSignerOrProvider = validateSignerOrProvider;
44
- /**
45
- * Returns the broker address from the Celo registry
46
- * @param signerOrProvider an ethers provider or signer
47
- * @returns the broker address
48
- */
49
- function getBrokerAddressFromRegistry(signerOrProvider) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const celoRegistryAddress = '0x000000000000000000000000000000000000ce10';
52
- const brokerIdentifier = 'Broker';
53
- const registryAbi = [
54
- 'function getAddressForString(string calldata identifier) external view returns (address)',
55
- ];
56
- const contract = new ethers_1.Contract(celoRegistryAddress, registryAbi, signerOrProvider);
57
- const brokerAddress = yield contract.getAddressForString(brokerIdentifier);
58
- if (brokerAddress === ethers_1.constants.AddressZero) {
59
- throw Error('Broker address not found in the registry');
60
- }
61
- return brokerAddress;
62
- });
63
- }
64
- exports.getBrokerAddressFromRegistry = getBrokerAddressFromRegistry;
65
- /**
66
- * Returns the symbol of an erc20 token
67
- * @param tokenAddr the address of the erc20 token
68
- * @param signerOrProvider an ethers provider or signer
69
- * @returns the symbol of the erc20 token
70
- */
71
- function getSymbolFromTokenAddress(tokenAddr, signerOrProvider) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- const erc20Abi = ['function symbol() external view returns (string memory)'];
74
- const contract = new ethers_1.Contract(tokenAddr, erc20Abi, signerOrProvider);
75
- return contract.symbol();
76
- });
77
- }
78
- exports.getSymbolFromTokenAddress = getSymbolFromTokenAddress;
79
- /**
80
- * Returns a populated tx obj for increasing the allowance of a spender for a given erc20 token by a given amount
81
- * @param tokenAddr the address of the erc20 token
82
- * @param spender the address of the spender
83
- * @param amount the amount to increase the allowance by
84
- * @param signerOrProvider an ethers signer or provider
85
- * @returns the populated TransactionRequest object
86
- */
87
- function increaseAllowance(tokenAddr, spender, amount, signerOrProvider) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const abi = [
90
- 'function increaseAllowance(address spender, uint256 value) external returns (bool)',
91
- ];
92
- // TODO, not all ERC-20 contracts support increaseAllowance
93
- // Add a check for that here
94
- const contract = new ethers_1.Contract(tokenAddr, abi, signerOrProvider);
95
- return yield contract.populateTransaction.increaseAllowance(spender, amount);
96
- });
97
- }
98
- exports.increaseAllowance = increaseAllowance;
@@ -1,9 +0,0 @@
1
- import { PopulatedTransaction, ethers, providers } from 'ethers';
2
- import { IChainClient } from './interfaces';
3
- export declare class ChainClient implements IChainClient {
4
- private readonly signerOrProvider;
5
- constructor(signerOrProvider: ethers.Signer | providers.Provider);
6
- getSigner(): Promise<ethers.Signer | providers.Provider>;
7
- getChainId(): Promise<number>;
8
- populateTransaction(tx: PopulatedTransaction): Promise<providers.TransactionRequest>;
9
- }
@@ -1,54 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Signer, providers } from 'ethers';
11
- import { validateSignerOrProvider } from './utils';
12
- export class ChainClient {
13
- constructor(signerOrProvider) {
14
- validateSignerOrProvider(signerOrProvider);
15
- this.signerOrProvider = signerOrProvider;
16
- }
17
- getSigner() {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- return this.signerOrProvider;
20
- });
21
- }
22
- getChainId() {
23
- var _a;
24
- return __awaiter(this, void 0, void 0, function* () {
25
- let chainId = 0;
26
- if (Signer.isSigner(this.signerOrProvider)) {
27
- const network = yield ((_a = this.signerOrProvider.provider) === null || _a === void 0 ? void 0 : _a.getNetwork());
28
- if (network) {
29
- chainId = network.chainId;
30
- }
31
- }
32
- else if (providers.Provider.isProvider(this.signerOrProvider)) {
33
- const network = yield this.signerOrProvider.getNetwork();
34
- if (network) {
35
- chainId = network.chainId;
36
- }
37
- }
38
- if (chainId === 0) {
39
- throw new Error('Could not get chainId from signer or provider');
40
- }
41
- return chainId;
42
- });
43
- }
44
- populateTransaction(tx) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- if (Signer.isSigner(this.signerOrProvider)) {
47
- return this.signerOrProvider.populateTransaction(tx);
48
- }
49
- else {
50
- return tx;
51
- }
52
- });
53
- }
54
- }
@@ -1,7 +0,0 @@
1
- import { PopulatedTransaction, ethers, providers } from 'ethers';
2
- import { IChainClient } from './interfaces';
3
- export declare class TestChainClient implements IChainClient {
4
- getSigner(): Promise<ethers.Signer | providers.Provider>;
5
- getChainId(): Promise<number>;
6
- populateTransaction(tx: PopulatedTransaction): Promise<providers.TransactionRequest>;
7
- }
@@ -1,37 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- export class TestChainClient {
11
- getSigner() {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- const fakeProvider = {};
14
- return fakeProvider;
15
- });
16
- }
17
- getChainId() {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- return 44787;
20
- });
21
- }
22
- populateTransaction(tx) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const fakeTx = {
25
- to: tx.to,
26
- from: tx.from,
27
- data: tx.data,
28
- value: tx.value,
29
- nonce: 0,
30
- gasLimit: 0,
31
- gasPrice: 0,
32
- chainId: 1,
33
- };
34
- return fakeTx;
35
- });
36
- }
37
- }
@@ -1,2 +0,0 @@
1
- import { ContractAddressMap } from '../types';
2
- export declare const addresses: ContractAddressMap;
@@ -1,69 +0,0 @@
1
- import { ChainId } from './../enums';
2
- export const addresses = {
3
- [ChainId.CELO]: {
4
- GovernanceFactory: '0xee6CE2dbe788dFC38b8F583Da86cB9caf2C8cF5A',
5
- Airgrab: '0x7D8E73deafDBAfc98fDBe7974168cFA6d8B9AE0C',
6
- Emission: '0x5C789592E2611df1873b46D394c69f75faB99778',
7
- MentoGovernor: '0x47036d78bB3169b4F5560dD77BF93f4412A59852',
8
- MentoToken: '0x7FF62f59e3e89EA34163EA1458EEBCc81177Cfb6',
9
- TimelockController: '0x890DB8A597940165901372Dd7DB61C9f246e2147',
10
- Locking: '0x001Bb66636dCd149A1A2bA8C50E408BdDd80279C',
11
- Broker: '0x777A8255cA72412f0d706dc03C9D1987306B4CaD',
12
- BiPoolManager: '0x22d9db95E6Ae61c104A7B6F6C78D7993B94ec901',
13
- BreakerBox: '0x303ED1df62Fa067659B586EbEe8De0EcE824Ab39',
14
- Reserve: '0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9',
15
- ConstantSumPricingModule: '0xDebED1F6f6ce9F6e73AA25F95acBFFE2397550Fb',
16
- ConstantProductPricingModule: '0x0c07126d0CB30E66eF7553Cc7C37143B4f06DddB',
17
- MedianDeltaBreaker: '0x49349F92D2B17d491e42C8fdB02D19f072F9B5D9',
18
- ValueDeltaBreaker: '0x4DBC33B3abA78475A5AA4BC7A5B11445d387BF68',
19
- StableToken: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
20
- StableTokenEUR: '0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73',
21
- StableTokenBRL: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
22
- StableTokenXOF: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
23
- SortedOracles: '0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33',
24
- },
25
- [ChainId.ALFAJORES]: {
26
- GovernanceFactory: '0x96Fe03DBFEc1EB419885a01d2335bE7c1a45e33b',
27
- Airgrab: '0x8dC9282F0a74A2a36F41440e009AA0EADFe490c5',
28
- Emission: '0xe62cc88ca2A5E7Dd3Fe5ce8511C874e610Ddb0b6',
29
- MentoGovernor: '0x558e92236f85Bb4e8A63ec0D5Bf9d34087Eab744',
30
- MentoToken: '0x3eDd2f7c90e2E931c817a44302Af7112E84be6Cc',
31
- TimelockController: '0xa0Ad8DD40104556122c21dF50eD14bb1B53A3338',
32
- Locking: '0x537CaE97C588C6DA64A385817F3D3563DDCf0591',
33
- Broker: '0xD3Dff18E465bCa6241A244144765b4421Ac14D09',
34
- BiPoolManager: '0x9B64E8EaBD1a035b148cE970d3319c5C3Ad53EC3',
35
- BreakerBox: '0xC76BDf0AFb654888728003683cf748A8B1b4f5fD',
36
- Reserve: '0xa7ed835288Aa4524bB6C73DD23c0bF4315D9Fe3e',
37
- ConstantSumPricingModule: '0x474DBf1eDF845410bdaC6aeE97C3CC403651ba2E',
38
- ConstantProductPricingModule: '0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519',
39
- MedianDeltaBreaker: '0x6B0a2076713fDAef4F9301fe8404a228e3682DE4',
40
- ValueDeltaBreaker: '0xfa6fFf746a5E74055e432f3bba26138956AEfbFe',
41
- StableToken: '0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1',
42
- StableTokenEUR: '0x10c892A6EC43a53E45D0B916B4b7D383B1b78C0F',
43
- StableTokenBRL: '0xE4D517785D091D3c54818832dB6094bcc2744545',
44
- StableTokenXOF: '0xB0FA15e002516d0301884059c0aaC0F0C72b019D',
45
- SortedOracles: '0xFdd8bD58115FfBf04e47411c1d228eCC45E93075',
46
- },
47
- [ChainId.BAKLAVA]: {
48
- GovernanceFactory: '0x77645271665AdDF195202dEf1ad3cA678B442411',
49
- Airgrab: '0x349aa8910577A6fE16cA7b98b5A135d14CE4dF9f',
50
- Emission: '0xcd427DDB27D835E5353312e7897bb9ad35F0E214',
51
- MentoGovernor: '0x5dFE8CC7743C636a86bED8F8d0de982d502E22fC',
52
- MentoToken: '0xD2f4f160BAF7D88a7A9189b03D0B3AA6A5D9775B',
53
- TimelockController: '0xb5977b1d208ef35FAf97A9534Dd849c356F362C5',
54
- Locking: '0x831DAfC0912e1c2aBa2Da90668c0856d48a8C06b',
55
- Broker: '0x6723749339e320E1EFcd9f1B0D997ecb45587208',
56
- BiPoolManager: '0xFF9a3da00F42839CD6D33AD7adf50bCc97B41411',
57
- BreakerBox: '0x5Ea5A5F694F10de979BEeC7b8041E9f931F54bc7',
58
- Reserve: '0x68Dd816611d3DE196FDeb87438B74A9c29fd649f',
59
- ConstantSumPricingModule: '0x2901da88dd444a3c41AF51696548DEe3524Cf8Dc',
60
- ConstantProductPricingModule: '0x7586680Dd2e4F977C33cDbd597fa2490e342CbA2',
61
- MedianDeltaBreaker: '0x286a8137EE9EE6dE8B5e5be334706fA812400994',
62
- ValueDeltaBreaker: '0xf631F58b1B51E99dF3Ad1CE18f5C42ab41e4A17a',
63
- StableToken: '0x62492A644A588FD904270BeD06ad52B9abfEA1aE',
64
- StableTokenEUR: '0xf9ecE301247aD2CE21894941830A2470f4E774ca',
65
- StableTokenBRL: '0x6a0EEf2bed4C30Dc2CB42fe6c5f01F80f7EF16d1',
66
- StableTokenXOF: '0x64c1D812673E93Bc036AdC3D547d9950696DA5Af',
67
- SortedOracles: '0x88A187a876290E9843175027902B9f7f1B092c88',
68
- },
69
- };
@@ -1 +0,0 @@
1
- export * from './addresses';
@@ -1 +0,0 @@
1
- export * from './addresses';
@@ -1,5 +0,0 @@
1
- export declare enum ChainId {
2
- CELO = 42220,
3
- ALFAJORES = 44787,
4
- BAKLAVA = 62320
5
- }
@@ -1,6 +0,0 @@
1
- export var ChainId;
2
- (function (ChainId) {
3
- ChainId[ChainId["CELO"] = 42220] = "CELO";
4
- ChainId[ChainId["ALFAJORES"] = 44787] = "ALFAJORES";
5
- ChainId[ChainId["BAKLAVA"] = 62320] = "BAKLAVA";
6
- })(ChainId || (ChainId = {}));
@@ -1,2 +0,0 @@
1
- export * from './proposalState';
2
- export * from './chainId';
@@ -1,2 +0,0 @@
1
- export * from './proposalState';
2
- export * from './chainId';
@@ -1,10 +0,0 @@
1
- export declare enum ProposalState {
2
- PENDING = 0,
3
- ACTIVE = 1,
4
- CANCELED = 2,
5
- DEFEATED = 3,
6
- SUCCEEDED = 4,
7
- QUEUED = 5,
8
- EXPIRED = 6,
9
- EXECUTED = 7
10
- }
@@ -1,11 +0,0 @@
1
- export var ProposalState;
2
- (function (ProposalState) {
3
- ProposalState[ProposalState["PENDING"] = 0] = "PENDING";
4
- ProposalState[ProposalState["ACTIVE"] = 1] = "ACTIVE";
5
- ProposalState[ProposalState["CANCELED"] = 2] = "CANCELED";
6
- ProposalState[ProposalState["DEFEATED"] = 3] = "DEFEATED";
7
- ProposalState[ProposalState["SUCCEEDED"] = 4] = "SUCCEEDED";
8
- ProposalState[ProposalState["QUEUED"] = 5] = "QUEUED";
9
- ProposalState[ProposalState["EXPIRED"] = 6] = "EXPIRED";
10
- ProposalState[ProposalState["EXECUTED"] = 7] = "EXECUTED";
11
- })(ProposalState || (ProposalState = {}));
@@ -1,62 +0,0 @@
1
- import { BigNumberish, Signer, providers } from 'ethers';
2
- import { MentoGovernor } from '@mento-protocol/mento-core-ts';
3
- import { IChainClient } from './interfaces';
4
- export declare class Governance {
5
- private chainClient;
6
- constructor(chainClient: IChainClient);
7
- constructor(signerOrProvider: Signer | providers.Provider);
8
- /**
9
- * This function retrieves the MentoGovernor contract.
10
- * @returns The MentoGovernor contract.
11
- */
12
- getGovernorContract(): Promise<MentoGovernor>;
13
- /**
14
- * Generates a transaction that submits a proposal to be created to the Mento Governor contract using the specified values.
15
- * @param targets The addresses of the contracts to be called during proposal execution.
16
- * @param values The values to be passed to the calls to the target contracts.
17
- * @param calldatas The calldata to be passed to the calls to the target contracts.
18
- * @param description A human readable description of the proposal.
19
- * @returns The transaction request.
20
- */
21
- createProposal(targets: string[], values: BigNumberish[], calldatas: string[], description: string): Promise<providers.TransactionRequest>;
22
- /**
23
- * Generates a transaction that will queue the proposal with the specified id to be executed.
24
- * @param proposalId The id of the proposal to queue.
25
- * @returns The transaction request.
26
- */
27
- queueProposal(proposalId: BigNumberish): Promise<providers.TransactionRequest>;
28
- /**
29
- * Executes the proposal with the specified id.
30
- * @param proposalId The id of the proposal to execute.
31
- * @returns The transaction request.
32
- */
33
- executeProposal(proposalId: BigNumberish): Promise<providers.TransactionRequest>;
34
- /**
35
- * Submits a vote to the Mento Governor contract for the specified proposal.
36
- * @param proposalId The id of the proposal to vote on.
37
- * @param support Whether or not to support the proposal.
38
- * @returns The transaction request.
39
- */
40
- castVote(proposalId: BigNumberish, support: BigNumberish): Promise<providers.TransactionRequest>;
41
- /**
42
- * Cancels the proposal with the specified id.
43
- * @param proposalId The id of the proposal to vote on.
44
- * @param support Whether or not to support the proposal.
45
- * @returns The transaction request.
46
- */
47
- cancelProposal(proposalId: BigNumberish): Promise<providers.TransactionRequest>;
48
- /**
49
- * Returns the state of the proposal with the specified id.
50
- * @param proposalId The id of the proposal to get the state of.
51
- * @returns The state of the proposal.
52
- */
53
- getProposalState(proposalId: BigNumberish): Promise<string>;
54
- /**
55
- * This function validates the args that are to be used in the createProposal function.
56
- * @param targets The addresses of the contracts to be called during proposal execution.
57
- * @param values The values to be passed to the calls to the target contracts.
58
- * @param calldatas The calldata to be passed to the calls to the target contracts.
59
- * @param description A human readable description of the proposal.
60
- */
61
- private validateProposalArgs;
62
- }
@@ -1,147 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Signer, providers } from 'ethers';
11
- import { MentoGovernor__factory, } from '@mento-protocol/mento-core-ts';
12
- import { ChainClient } from './ChainClient';
13
- import { TestChainClient } from './TestChainClient';
14
- import { ProposalState } from './enums';
15
- import { addresses } from './constants';
16
- export class Governance {
17
- constructor(arg) {
18
- // TODO: Remove use of TestChainClient in future this is only meant for testing
19
- if (arg instanceof ChainClient || arg instanceof TestChainClient) {
20
- this.chainClient = arg;
21
- }
22
- else if (Signer.isSigner(arg) || providers.Provider.isProvider(arg)) {
23
- this.chainClient = new ChainClient(arg);
24
- }
25
- else {
26
- throw new Error('Invalid constructor argument');
27
- }
28
- }
29
- /**
30
- * This function retrieves the MentoGovernor contract.
31
- * @returns The MentoGovernor contract.
32
- */
33
- getGovernorContract() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const chainId = yield this.chainClient.getChainId();
36
- const contracts = addresses[chainId];
37
- if (!contracts) {
38
- throw new Error(`Contracts not deployed on network with chain id ${chainId}`);
39
- }
40
- const mentoGovernorAddress = contracts.MentoGovernor;
41
- return MentoGovernor__factory.connect(mentoGovernorAddress, yield this.chainClient.getSigner());
42
- });
43
- }
44
- /**
45
- * Generates a transaction that submits a proposal to be created to the Mento Governor contract using the specified values.
46
- * @param targets The addresses of the contracts to be called during proposal execution.
47
- * @param values The values to be passed to the calls to the target contracts.
48
- * @param calldatas The calldata to be passed to the calls to the target contracts.
49
- * @param description A human readable description of the proposal.
50
- * @returns The transaction request.
51
- */
52
- createProposal(targets, values, calldatas, description) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- this.validateProposalArgs(targets, values, calldatas, description);
55
- const governor = yield this.getGovernorContract();
56
- const tx = yield governor.populateTransaction['propose(address[],uint256[],bytes[],string)'](targets, values, calldatas, description);
57
- return yield this.chainClient.populateTransaction(tx);
58
- });
59
- }
60
- /**
61
- * Generates a transaction that will queue the proposal with the specified id to be executed.
62
- * @param proposalId The id of the proposal to queue.
63
- * @returns The transaction request.
64
- */
65
- queueProposal(proposalId) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- const governor = yield this.getGovernorContract();
68
- const tx = yield governor.populateTransaction['queue(uint256)'](proposalId);
69
- return yield this.chainClient.populateTransaction(tx);
70
- });
71
- }
72
- /**
73
- * Executes the proposal with the specified id.
74
- * @param proposalId The id of the proposal to execute.
75
- * @returns The transaction request.
76
- */
77
- executeProposal(proposalId) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- const governor = yield this.getGovernorContract();
80
- const tx = yield governor.populateTransaction['execute(uint256)'](proposalId);
81
- return yield this.chainClient.populateTransaction(tx);
82
- });
83
- }
84
- /**
85
- * Submits a vote to the Mento Governor contract for the specified proposal.
86
- * @param proposalId The id of the proposal to vote on.
87
- * @param support Whether or not to support the proposal.
88
- * @returns The transaction request.
89
- */
90
- castVote(proposalId, support) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- const governor = yield this.getGovernorContract();
93
- const tx = yield governor.populateTransaction.castVote(proposalId, support);
94
- return yield this.chainClient.populateTransaction(tx);
95
- });
96
- }
97
- /**
98
- * Cancels the proposal with the specified id.
99
- * @param proposalId The id of the proposal to vote on.
100
- * @param support Whether or not to support the proposal.
101
- * @returns The transaction request.
102
- */
103
- cancelProposal(proposalId) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- const governor = yield this.getGovernorContract();
106
- const tx = yield governor.populateTransaction.cancel(proposalId);
107
- return yield this.chainClient.populateTransaction(tx);
108
- });
109
- }
110
- /**
111
- * Returns the state of the proposal with the specified id.
112
- * @param proposalId The id of the proposal to get the state of.
113
- * @returns The state of the proposal.
114
- */
115
- getProposalState(proposalId) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const governor = yield this.getGovernorContract();
118
- const state = (yield governor.functions.state(proposalId))[0];
119
- return ProposalState[state];
120
- });
121
- }
122
- /**
123
- * This function validates the args that are to be used in the createProposal function.
124
- * @param targets The addresses of the contracts to be called during proposal execution.
125
- * @param values The values to be passed to the calls to the target contracts.
126
- * @param calldatas The calldata to be passed to the calls to the target contracts.
127
- * @param description A human readable description of the proposal.
128
- */
129
- validateProposalArgs(targets, values, calldatas, description) {
130
- if (!targets || targets.length === 0) {
131
- throw new Error('Targets must be specified');
132
- }
133
- if (!values || values.length === 0) {
134
- throw new Error('Values must be specified');
135
- }
136
- if (!calldatas || calldatas.length === 0) {
137
- throw new Error('Calldatas must be specified');
138
- }
139
- if (!description) {
140
- throw new Error('Description must be specified');
141
- }
142
- if (targets.length !== values.length ||
143
- targets.length !== calldatas.length) {
144
- throw new Error('Targets, values, and calldatas must all have the same length');
145
- }
146
- }
147
- }
@@ -1,5 +0,0 @@
1
- export * from './mento';
2
- export * from './governance';
3
- export * from './utils';
4
- export * from './constants';
5
- export { ContractAddresses } from './types';
package/dist/esm/index.js DELETED
@@ -1,5 +0,0 @@
1
- /* istanbul ignore file */
2
- export * from './mento';
3
- export * from './governance';
4
- export * from './utils';
5
- export * from './constants';
@@ -1,6 +0,0 @@
1
- import { ethers, providers } from 'ethers';
2
- export interface IChainClient {
3
- getSigner(): Promise<ethers.Signer | providers.Provider>;
4
- getChainId(): Promise<number>;
5
- populateTransaction(tx: ethers.PopulatedTransaction): Promise<providers.TransactionRequest>;
6
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,4 +0,0 @@
1
- export * from './tradingLimit';
2
- export * from './tradingLimitsConfig';
3
- export * from './tradingLimitsState';
4
- export * from './IChainClient';
@@ -1,4 +0,0 @@
1
- export * from './tradingLimit';
2
- export * from './tradingLimitsConfig';
3
- export * from './tradingLimitsState';
4
- export * from './IChainClient';
@@ -1,7 +0,0 @@
1
- export type Address = string;
2
- export interface TradingLimit {
3
- asset: Address;
4
- maxIn: number;
5
- maxOut: number;
6
- until: number;
7
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,10 +0,0 @@
1
- import { Address } from './tradingLimit';
2
- export interface TradingLimitsConfig {
3
- asset: Address;
4
- timestep0: number;
5
- timestep1: number;
6
- limit0: number;
7
- limit1: number;
8
- limitGlobal: number;
9
- flags: number;
10
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,9 +0,0 @@
1
- import { Address } from './tradingLimit';
2
- export interface TradingLimitsState {
3
- asset: Address;
4
- lastUpdated0: number;
5
- lastUpdated1: number;
6
- netflow0: number;
7
- netflow1: number;
8
- netflowGlobal: number;
9
- }
@@ -1 +0,0 @@
1
- export {};