curvance 1.0.14 → 1.0.16

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 (47) hide show
  1. package/README.md +2 -0
  2. package/dist/abis/ProtocolReader.json +54 -10
  3. package/dist/abis/RedstoneCoreAdaptor.json +798 -0
  4. package/dist/chains/index.d.ts +0 -37
  5. package/dist/chains/index.d.ts.map +1 -1
  6. package/dist/chains/index.js +1 -2
  7. package/dist/chains/index.js.map +1 -1
  8. package/dist/chains/monad-testnet.json +65 -101
  9. package/dist/classes/CToken.d.ts +57 -23
  10. package/dist/classes/CToken.d.ts.map +1 -1
  11. package/dist/classes/CToken.js +122 -54
  12. package/dist/classes/CToken.js.map +1 -1
  13. package/dist/classes/ERC20.d.ts +5 -5
  14. package/dist/classes/ERC20.d.ts.map +1 -1
  15. package/dist/classes/ERC20.js +4 -4
  16. package/dist/classes/ERC20.js.map +1 -1
  17. package/dist/classes/Faucet.d.ts +4 -4
  18. package/dist/classes/Faucet.d.ts.map +1 -1
  19. package/dist/classes/Faucet.js +11 -6
  20. package/dist/classes/Faucet.js.map +1 -1
  21. package/dist/classes/Market.d.ts +85 -7
  22. package/dist/classes/Market.d.ts.map +1 -1
  23. package/dist/classes/Market.js +168 -17
  24. package/dist/classes/Market.js.map +1 -1
  25. package/dist/classes/OracleManager.d.ts +3 -3
  26. package/dist/classes/OracleManager.d.ts.map +1 -1
  27. package/dist/classes/OracleManager.js +4 -4
  28. package/dist/classes/OracleManager.js.map +1 -1
  29. package/dist/classes/ProtocolReader.d.ts +20 -10
  30. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  31. package/dist/classes/ProtocolReader.js +23 -12
  32. package/dist/classes/ProtocolReader.js.map +1 -1
  33. package/dist/classes/Redstone.d.ts +14 -0
  34. package/dist/classes/Redstone.d.ts.map +1 -0
  35. package/dist/classes/Redstone.js +57 -0
  36. package/dist/classes/Redstone.js.map +1 -0
  37. package/dist/helpers.d.ts +36 -49
  38. package/dist/helpers.d.ts.map +1 -1
  39. package/dist/helpers.js +119 -18
  40. package/dist/helpers.js.map +1 -1
  41. package/dist/setup.d.ts +5 -3
  42. package/dist/setup.d.ts.map +1 -1
  43. package/dist/setup.js +16 -8
  44. package/dist/setup.js.map +1 -1
  45. package/dist/types.d.ts +4 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +2 -1
@@ -3,17 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ProtocolReader = void 0;
6
+ exports.ProtocolReader = exports.AdaptorTypes = void 0;
7
7
  const helpers_1 = require("../helpers");
8
8
  const ProtocolReader_json_1 = __importDefault(require("../abis/ProtocolReader.json"));
9
+ var AdaptorTypes;
10
+ (function (AdaptorTypes) {
11
+ AdaptorTypes[AdaptorTypes["CHAINLINK"] = 1] = "CHAINLINK";
12
+ AdaptorTypes[AdaptorTypes["REDSTONE_CORE"] = 2] = "REDSTONE_CORE";
13
+ AdaptorTypes[AdaptorTypes["REDSTONE_CLASSIC"] = 3] = "REDSTONE_CLASSIC";
14
+ AdaptorTypes[AdaptorTypes["MOCK"] = 1337] = "MOCK";
15
+ })(AdaptorTypes || (exports.AdaptorTypes = AdaptorTypes = {}));
9
16
  class ProtocolReader {
10
- signer;
17
+ provider;
11
18
  address;
12
19
  contract;
13
- constructor(signer, address) {
14
- this.signer = signer;
20
+ constructor(provider, address) {
21
+ this.provider = provider;
15
22
  this.address = address;
16
- this.contract = (0, helpers_1.contractSetup)(signer, address, ProtocolReader_json_1.default);
23
+ this.contract = (0, helpers_1.contractSetup)(provider, address, ProtocolReader_json_1.default);
17
24
  }
18
25
  async getAllMarketData(account, use_api = true) {
19
26
  const all = await Promise.all([
@@ -34,7 +41,7 @@ class ProtocolReader {
34
41
  address: market._address,
35
42
  tokens: market.tokens.map((token) => ({
36
43
  address: token._address,
37
- tvl: BigInt(token.tvl),
44
+ totalSupply: BigInt(token.totalSupply),
38
45
  collateral: BigInt(token.collateral),
39
46
  debt: BigInt(token.debt),
40
47
  sharePrice: BigInt(token.sharePrice),
@@ -67,17 +74,21 @@ class ProtocolReader {
67
74
  cooldown: BigInt(market.cooldown),
68
75
  tokens: market.tokens.map((token) => ({
69
76
  address: token._address,
70
- assetAmount: BigInt(token.assetAmount),
71
- shareAmount: BigInt(token.shareAmount),
72
- collateral: BigInt(token.collateral),
73
- debt: BigInt(token.debt)
77
+ userAssetBalance: BigInt(token.userAssetBalance),
78
+ userShareBalance: BigInt(token.userShareBalance),
79
+ userCollateral: BigInt(token.userCollateral),
80
+ userDebt: BigInt(token.userDebt)
74
81
  }))
75
82
  }))
76
83
  };
77
84
  return typedData;
78
85
  }
79
- async getAllDynamicState(use_api = true) {
80
- // TODO: Implement API call
86
+ async previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount) {
87
+ const data = await this.contract.previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount);
88
+ return {
89
+ supply: BigInt(data[0]),
90
+ borrow: BigInt(data[1])
91
+ };
81
92
  }
82
93
  async hypotheticalMaxLeverage(account, borrowableCToken, cToken, assets) {
83
94
  const data = await this.contract.hypotheticalMaxLeverage(account, borrowableCToken, cToken, assets);
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolReader.js","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtocolReader.js","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { address, bytes } from "../types";
2
+ import { TransactionResponse } from "ethers";
3
+ import { BorrowableCToken, CToken, MulticallAction } from "./CToken";
4
+ export interface IRedstoneCoreAdaptor {
5
+ writePrice(asset: address, inUSD: boolean, redstoneTimestamp: bigint): Promise<TransactionResponse>;
6
+ }
7
+ export declare class Redstone {
8
+ static getPayload(symbol: string, log?: boolean): Promise<{
9
+ payload: bytes;
10
+ timestamp: number;
11
+ }>;
12
+ static buildMulticallStruct(ctoken: CToken | BorrowableCToken): Promise<MulticallAction>;
13
+ }
14
+ //# sourceMappingURL=Redstone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redstone.d.ts","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrE,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvG;AAED,qBAAa,QAAQ;WACJ,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe;iBAyBzB,KAAK;;;WAM3B,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;CAkBtE"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Redstone = void 0;
7
+ const sdk_1 = require("@redstone-finance/sdk");
8
+ const setup_1 = require("../setup");
9
+ const helpers_1 = require("../helpers");
10
+ const ethers_1 = require("ethers");
11
+ const RedstoneCoreAdaptor_json_1 = __importDefault(require("../abis/RedstoneCoreAdaptor.json"));
12
+ class Redstone {
13
+ static async getPayload(symbol, log = false) {
14
+ let payload_params = {
15
+ dataServiceId: "redstone-primary-prod",
16
+ dataPackagesIds: [symbol],
17
+ uniqueSignersCount: 3,
18
+ authorizedSigners: [
19
+ "0x8BB8F32Df04c8b654987DAaeD53D6B6091e3B774",
20
+ "0xdEB22f54738d54976C4c0fe5ce6d408E40d88499",
21
+ "0x51Ce04Be4b3E32572C4Ec9135221d0691Ba7d202",
22
+ "0xDD682daEC5A90dD295d14DA4b0bec9281017b5bE"
23
+ ]
24
+ };
25
+ const response = await (0, sdk_1.requestDataPackages)(payload_params);
26
+ const [payload, timestamp] = await Promise.all([
27
+ (0, sdk_1.convertDataPackagesResponse)(response),
28
+ (0, sdk_1.getResponseTimestamp)(response)
29
+ ]);
30
+ if (log) {
31
+ const json = await (0, sdk_1.convertDataPackagesResponse)(response, "json");
32
+ console.log(json);
33
+ }
34
+ return {
35
+ payload: `0x${payload}`,
36
+ timestamp
37
+ };
38
+ }
39
+ static async buildMulticallStruct(ctoken) {
40
+ const adaptor = setup_1.active_contracts.RedstoneCoreAdaptor;
41
+ const contract = (0, helpers_1.contractSetup)(ctoken.provider, adaptor, RedstoneCoreAdaptor_json_1.default);
42
+ const { payload, timestamp } = await Redstone.getPayload(ctoken.asset.symbol);
43
+ const writePrice = contract.interface.encodeFunctionData("writePrice", [
44
+ ctoken.asset.address,
45
+ true,
46
+ timestamp
47
+ ]);
48
+ const encodedWritePrice = (0, ethers_1.solidityPacked)(["bytes", "bytes"], [writePrice, payload]);
49
+ return {
50
+ target: adaptor,
51
+ isPriceUpdate: true,
52
+ data: encodedWritePrice
53
+ };
54
+ }
55
+ }
56
+ exports.Redstone = Redstone;
57
+ //# sourceMappingURL=Redstone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redstone.js","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+G;AAE/G,oCAA4C;AAC5C,wCAA2C;AAC3C,mCAA6D;AAE7D,gGAAmD;AAMnD,MAAa,QAAQ;IACjB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAe,KAAK;QACxD,IAAI,cAAc,GAAG;YACjB,aAAa,EAAE,uBAAuB;YACtC,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE;gBACf,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;aAC/C;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAmB,EAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,IAAA,iCAA2B,EAAC,QAAQ,CAAC;YACrC,IAAA,0BAAoB,EAAC,QAAQ,CAAC;SACjC,CAAC,CAAC;QAEH,IAAG,GAAG,EAAE,CAAC;YACL,MAAM,IAAI,GAAG,MAAM,IAAA,iCAA2B,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO;YACH,OAAO,EAAE,KAAK,OAAO,EAAW;YAChC,SAAS;SACZ,CAAC;IAEN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAiC;QAC/D,MAAM,OAAO,GAAG,wBAAgB,CAAC,mBAA8B,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAuB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,kCAAG,CAAC,CAAC;QACpF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACnE,MAAM,CAAC,KAAK,CAAC,OAAO;YACpB,IAAI;YACJ,SAAS;SACZ,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAA,uBAAc,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAEpF,OAAO;YACH,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,iBAAiB;SACP,CAAC;IACzB,CAAC;CACJ;AAlDD,4BAkDC"}
package/dist/helpers.d.ts CHANGED
@@ -1,19 +1,29 @@
1
- import { JsonRpcSigner, Wallet } from "ethers";
2
- import { BorrowableCToken, CToken } from "./classes/CToken";
3
1
  import { Contract } from "ethers";
4
2
  import { Decimal } from "decimal.js";
5
- import { address } from "./types";
3
+ import { address, curvance_provider, curvance_signer } from "./types";
6
4
  import { chains } from "./chains";
5
+ export type ChangeRate = "year" | "month" | "week" | "day";
6
+ export type ChainRpcPrefix = keyof typeof chains;
7
+ export declare const BPS: bigint;
8
+ export declare const BPS_SQUARED: bigint;
7
9
  export declare const WAD: bigint;
10
+ export declare const WAD_BPS: bigint;
11
+ export declare const RAY: bigint;
12
+ export declare const WAD_SQUARED: bigint;
13
+ export declare const WAD_CUBED_BPS_OFFSET: bigint;
8
14
  export declare const WAD_DECIMAL: Decimal;
9
- export declare enum AdaptorTypes {
10
- CHAINLINK = 1,
11
- REDSTONE_CORE = 2,
12
- REDSTONE_CLASSIC = 3,
13
- MOCK = 1337
14
- }
15
- export declare function contractSetup<I>(signer: JsonRpcSigner | Wallet, contractAddress: address, abi: any): Contract & I;
16
- export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
15
+ export declare const SECONDS_PER_YEAR = 31536000n;
16
+ export declare const SECONDS_PER_MONTH = 2592000n;
17
+ export declare const SECONDS_PER_WEEK = 604800n;
18
+ export declare const SECONDS_PER_DAY = 86400n;
19
+ export declare const UINT256_MAX = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
20
+ export declare const EMPTY_ADDRESS: address;
21
+ export declare function getRateSeconds(rate: ChangeRate): bigint;
22
+ export declare function toDecimal(value: bigint, decimals: bigint): Decimal;
23
+ export declare function toBigInt(value: number, decimals: bigint): bigint;
24
+ export declare function validateProviderAsSigner(provider: curvance_provider): curvance_signer;
25
+ export declare function contractSetup<I>(provider: curvance_provider, contractAddress: address, abi: any): Contract & I;
26
+ export declare function getContractAddresses(chain: ChainRpcPrefix): {
17
27
  CentralRegistry: string;
18
28
  OracleManager: string;
19
29
  ChainlinkAdaptor: string;
@@ -33,10 +43,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
33
43
  "Test WBTC / Test USDC": {
34
44
  address: string;
35
45
  isMarket: boolean;
36
- plugins: {
37
- simplePositionManager: string;
38
- simpleZapper: string;
39
- };
40
46
  "WBTC-DynamicIRM": string;
41
47
  tokens: {
42
48
  WBTC: string;
@@ -47,10 +53,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
47
53
  "Test LUSD / Test SWETH": {
48
54
  address: string;
49
55
  isMarket: boolean;
50
- plugins: {
51
- simplePositionManager: string;
52
- simpleZapper: string;
53
- };
54
56
  "LUSD-DynamicIRM": string;
55
57
  tokens: {
56
58
  LUSD: string;
@@ -60,10 +62,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
60
62
  "Test mUSD / Test mETH": {
61
63
  address: string;
62
64
  isMarket: boolean;
63
- plugins: {
64
- simplePositionManager: string;
65
- simpleZapper: string;
66
- };
67
65
  tokens: {
68
66
  mUSD: string;
69
67
  mETH: string;
@@ -73,10 +71,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
73
71
  "Test DAI / Test mkUSD": {
74
72
  address: string;
75
73
  isMarket: boolean;
76
- plugins: {
77
- simplePositionManager: string;
78
- simpleZapper: string;
79
- };
80
74
  "DAI-DynamicIRM": string;
81
75
  tokens: {
82
76
  DAI: string;
@@ -97,11 +91,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
97
91
  "Apriori (aprMON) / wMON": {
98
92
  address: string;
99
93
  isMarket: boolean;
100
- plugins: {
101
- simplePositionManager: string;
102
- simpleZapper: string;
103
- vaultZapper: string;
104
- };
105
94
  "aprMON-DynamicIRM": string;
106
95
  tokens: {
107
96
  aprMON: string;
@@ -112,11 +101,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
112
101
  "Fastlane (shMON) / wMON": {
113
102
  address: string;
114
103
  isMarket: boolean;
115
- plugins: {
116
- simplePositionManager: string;
117
- simpleZapper: string;
118
- vaultZapper: string;
119
- };
120
104
  "shMON-DynamicIRM": string;
121
105
  tokens: {
122
106
  shMON: string;
@@ -127,11 +111,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
127
111
  "Magma (gMON) / wMON": {
128
112
  address: string;
129
113
  isMarket: boolean;
130
- plugins: {
131
- simplePositionManager: string;
132
- simpleZapper: string;
133
- vaultZapper: string;
134
- };
135
114
  "gMON-DynamicIRM": string;
136
115
  tokens: {
137
116
  gMON: string;
@@ -142,11 +121,6 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
142
121
  "Kintsu (sMON) / wMON": {
143
122
  address: string;
144
123
  isMarket: boolean;
145
- plugins: {
146
- simplePositionManager: string;
147
- simpleZapper: string;
148
- vaultZapper: string;
149
- };
150
124
  "sMON-DynamicIRM": string;
151
125
  tokens: {
152
126
  sMON: string;
@@ -156,6 +130,19 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): never[] | {
156
130
  };
157
131
  ProtocolReader: string;
158
132
  };
159
- export declare function handleTransactionWithOracles<T>(exec_func: Function, token: CToken | BorrowableCToken, adaptor: AdaptorTypes): Promise<T>;
160
- export type ChainRpcPrefix = keyof typeof chains;
133
+ /**
134
+ * Wraps a contract instance so all write actions automatically add a gas buffer.
135
+ *
136
+ * How it works:
137
+ * 1. Creates a proxy around the contract
138
+ * 2. Intercepts all function calls
139
+ * 3. For contract methods that support it, estimates gas usage
140
+ * 4. Adds the specified buffer percentage to the gas limit
141
+ * 5. Calls the original method with the buffered gas limit
142
+ *
143
+ * @param contract The ethers contract instance to wrap
144
+ * @param bufferPercent The percentage buffer to add (default 20%)
145
+ * @returns The same contract but with automatic gas buffering
146
+ */
147
+ export declare function contractWithGasBuffer<T extends object>(contract: T, bufferPercent?: number): T;
161
148
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,GAAG,QAAqB,CAAC;AACtC,eAAO,MAAM,WAAW,SAAmB,CAAC;AAE5C,oBAAY,YAAY;IACpB,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,gBAAgB,IAAI;IACpB,IAAI,OAAO;CACd;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,CAMjH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQzD;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxI;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD,eAAO,MAAM,GAAG,QAAc,CAAC;AAC/B,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,eAAO,MAAM,GAAG,QAAe,CAAC;AAChC,eAAO,MAAM,OAAO,QAAe,CAAC;AACpC,eAAO,MAAM,GAAG,QAAe,CAAC;AAChC,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAe,CAAC;AACjD,eAAO,MAAM,WAAW,SAAmB,CAAC;AAE5C,eAAO,MAAM,gBAAgB,YAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,WAAa,CAAC;AAC5C,eAAO,MAAM,gBAAgB,UAAW,CAAC;AACzC,eAAO,MAAM,eAAe,SAAU,CAAA;AAEtC,eAAO,MAAM,WAAW,kFAAkF,CAAC;AAC3G,eAAO,MAAM,aAAa,EAAmD,OAAO,CAAC;AAErF,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAavD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAO7C,eAAe,CACrC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,CAM9G;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQzD;AA8CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,SAAK,GAAG,CAAC,CAoB1F"}
package/dist/helpers.js CHANGED
@@ -1,27 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptorTypes = exports.WAD_DECIMAL = exports.WAD = void 0;
3
+ exports.EMPTY_ADDRESS = exports.UINT256_MAX = exports.SECONDS_PER_DAY = exports.SECONDS_PER_WEEK = exports.SECONDS_PER_MONTH = exports.SECONDS_PER_YEAR = exports.WAD_DECIMAL = exports.WAD_CUBED_BPS_OFFSET = exports.WAD_SQUARED = exports.RAY = exports.WAD_BPS = exports.WAD = exports.BPS_SQUARED = exports.BPS = void 0;
4
+ exports.getRateSeconds = getRateSeconds;
5
+ exports.toDecimal = toDecimal;
6
+ exports.toBigInt = toBigInt;
7
+ exports.validateProviderAsSigner = validateProviderAsSigner;
4
8
  exports.contractSetup = contractSetup;
5
9
  exports.getContractAddresses = getContractAddresses;
6
- exports.handleTransactionWithOracles = handleTransactionWithOracles;
10
+ exports.contractWithGasBuffer = contractWithGasBuffer;
7
11
  const ethers_1 = require("ethers");
8
12
  const decimal_js_1 = require("decimal.js");
9
13
  const chains_1 = require("./chains");
10
- exports.WAD = BigInt(10n ** 18n);
14
+ exports.BPS = BigInt(1e4);
15
+ exports.BPS_SQUARED = BigInt(1e8);
16
+ exports.WAD = BigInt(1e18);
17
+ exports.WAD_BPS = BigInt(1e22);
18
+ exports.RAY = BigInt(1e27);
19
+ exports.WAD_SQUARED = BigInt(1e36);
20
+ exports.WAD_CUBED_BPS_OFFSET = BigInt(1e50);
11
21
  exports.WAD_DECIMAL = new decimal_js_1.Decimal(exports.WAD);
12
- var AdaptorTypes;
13
- (function (AdaptorTypes) {
14
- AdaptorTypes[AdaptorTypes["CHAINLINK"] = 1] = "CHAINLINK";
15
- AdaptorTypes[AdaptorTypes["REDSTONE_CORE"] = 2] = "REDSTONE_CORE";
16
- AdaptorTypes[AdaptorTypes["REDSTONE_CLASSIC"] = 3] = "REDSTONE_CLASSIC";
17
- AdaptorTypes[AdaptorTypes["MOCK"] = 1337] = "MOCK";
18
- })(AdaptorTypes || (exports.AdaptorTypes = AdaptorTypes = {}));
19
- function contractSetup(signer, contractAddress, abi) {
20
- const contract = new ethers_1.Contract(contractAddress, abi, signer);
22
+ exports.SECONDS_PER_YEAR = 31536000n;
23
+ exports.SECONDS_PER_MONTH = 2592000n;
24
+ exports.SECONDS_PER_WEEK = 604800n;
25
+ exports.SECONDS_PER_DAY = 86400n;
26
+ exports.UINT256_MAX = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
27
+ exports.EMPTY_ADDRESS = "0x0000000000000000000000000000000000000000";
28
+ function getRateSeconds(rate) {
29
+ switch (rate) {
30
+ case "year":
31
+ return exports.SECONDS_PER_YEAR;
32
+ case "month":
33
+ return exports.SECONDS_PER_MONTH;
34
+ case "week":
35
+ return exports.SECONDS_PER_WEEK;
36
+ case "day":
37
+ return exports.SECONDS_PER_DAY;
38
+ default:
39
+ throw new Error(`Unknown rate: ${rate}`);
40
+ }
41
+ }
42
+ function toDecimal(value, decimals) {
43
+ return new decimal_js_1.Decimal(value).div(new decimal_js_1.Decimal(10).pow(decimals));
44
+ }
45
+ function toBigInt(value, decimals) {
46
+ return (0, ethers_1.parseUnits)(value.toString(), decimals);
47
+ }
48
+ function validateProviderAsSigner(provider) {
49
+ const isSigner = "address" in provider;
50
+ if (!isSigner) {
51
+ throw new Error("Provider is not a signer, therefor this action is not available. Please connect a wallet to execute this action.");
52
+ }
53
+ return provider;
54
+ }
55
+ function contractSetup(provider, contractAddress, abi) {
56
+ const contract = new ethers_1.Contract(contractAddress, abi, provider);
21
57
  if (contract == undefined || contract == null) {
22
58
  throw new Error(`Failed to load contract at address ${contractAddress}.`);
23
59
  }
24
- return contract;
60
+ return contractWithGasBuffer(contract);
25
61
  }
26
62
  function getContractAddresses(chain) {
27
63
  const config = chains_1.chains[chain];
@@ -30,11 +66,76 @@ function getContractAddresses(chain) {
30
66
  }
31
67
  return config;
32
68
  }
33
- function handleTransactionWithOracles(exec_func, token, adaptor) {
34
- if (adaptor == AdaptorTypes.REDSTONE_CORE) {
35
- // TODO:
36
- // Handle Redstone Core specific logic
69
+ /**
70
+ * Calculates the gas limit with a buffer percentage added
71
+ * @param estimatedGas The original gas estimate from ethers
72
+ * @param bufferPercent The percentage buffer to add (e.g., 20 for 20%)
73
+ * @returns The gas limit with buffer applied
74
+ */
75
+ function calculateGasWithBuffer(estimatedGas, bufferPercent) {
76
+ return (estimatedGas * BigInt(100 + bufferPercent)) / BigInt(100);
77
+ }
78
+ /**
79
+ * Checks if a contract method supports gas estimation
80
+ * @param method The contract method to check
81
+ * @returns true if the method has an estimateGas function
82
+ */
83
+ function canEstimateGas(method) {
84
+ return typeof method?.estimateGas === 'function';
85
+ }
86
+ /**
87
+ * Attempts to estimate gas and add buffer to transaction arguments
88
+ * @param method The contract method to estimate gas for
89
+ * @param args The transaction arguments
90
+ * @param bufferPercent The gas buffer percentage
91
+ * @returns true if gas estimation was successful and added to args
92
+ */
93
+ async function tryAddGasBuffer(method, args, bufferPercent) {
94
+ if (!canEstimateGas(method)) {
95
+ return false;
96
+ }
97
+ try {
98
+ const estimatedGas = await method.estimateGas(...args);
99
+ const gasLimit = calculateGasWithBuffer(estimatedGas, bufferPercent);
100
+ // Add the gas limit as transaction overrides
101
+ args.push({ gasLimit });
102
+ return true;
37
103
  }
38
- return exec_func();
104
+ catch (error) {
105
+ // If gas estimation fails, continue without buffer
106
+ return false;
107
+ }
108
+ }
109
+ /**
110
+ * Wraps a contract instance so all write actions automatically add a gas buffer.
111
+ *
112
+ * How it works:
113
+ * 1. Creates a proxy around the contract
114
+ * 2. Intercepts all function calls
115
+ * 3. For contract methods that support it, estimates gas usage
116
+ * 4. Adds the specified buffer percentage to the gas limit
117
+ * 5. Calls the original method with the buffered gas limit
118
+ *
119
+ * @param contract The ethers contract instance to wrap
120
+ * @param bufferPercent The percentage buffer to add (default 20%)
121
+ * @returns The same contract but with automatic gas buffering
122
+ */
123
+ function contractWithGasBuffer(contract, bufferPercent = 10) {
124
+ return new Proxy(contract, {
125
+ get(target, methodName, receiver) {
126
+ const originalMethod = Reflect.get(target, methodName, receiver);
127
+ // Only wrap functions, skip special properties like populateTransaction
128
+ if (typeof originalMethod !== 'function' || methodName === 'populateTransaction') {
129
+ return originalMethod;
130
+ }
131
+ // Return a wrapped version of the method
132
+ return async (...args) => {
133
+ // Try to add gas buffer before calling the method
134
+ await tryAddGasBuffer(originalMethod, args, bufferPercent);
135
+ // Call the original method with potentially modified args
136
+ return originalMethod.apply(target, args);
137
+ };
138
+ }
139
+ });
39
140
  }
40
141
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAiBA,sCAMC;AAED,oDAQC;AAED,oEAOC;AAxCD,mCAAkC;AAClC,2CAAqC;AAErC,qCAAkC;AAErB,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACzB,QAAA,WAAW,GAAG,IAAI,oBAAO,CAAC,WAAG,CAAC,CAAC;AAE5C,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,yDAAa,CAAA;IACb,iEAAiB,CAAA;IACjB,uEAAoB,CAAA;IACpB,kDAAW,CAAA;AACf,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,SAAgB,aAAa,CAAI,MAA8B,EAAE,eAAwB,EAAE,GAAQ;IAC/F,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,eAAe,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAwB,CAAC;AACpC,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAqB;IACtD,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,4BAA4B,CAAI,SAAmB,EAAE,KAAgC,EAAE,OAAqB;IACxH,IAAG,OAAO,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QACvC,QAAQ;QACR,sCAAsC;IAC1C,CAAC;IAED,OAAO,SAAS,EAAgB,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/setup.d.ts CHANGED
@@ -1,9 +1,11 @@
1
- import { JsonRpcSigner, Wallet } from "ethers";
2
- import { ChainRpcPrefix } from "./helpers";
1
+ import { JsonRpcProvider, JsonRpcSigner, Wallet } from "ethers";
2
+ import { ChainRpcPrefix, getContractAddresses } from "./helpers";
3
3
  import { Market } from "./classes/Market";
4
4
  import { ProtocolReader } from "./classes/ProtocolReader";
5
5
  import { Faucet } from "./classes/Faucet";
6
- export declare function setupChain(chain: ChainRpcPrefix, signer: JsonRpcSigner | Wallet): Promise<{
6
+ export declare const backup_providers: Record<ChainRpcPrefix, JsonRpcProvider>;
7
+ export declare let active_contracts: ReturnType<typeof getContractAddresses>;
8
+ export declare function setupChain(chain: ChainRpcPrefix, signer: JsonRpcSigner | Wallet | JsonRpcProvider | null): Promise<{
7
9
  markets: Market[];
8
10
  faucet: Faucet;
9
11
  reader: ProtocolReader;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAwB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;;;;GAoBrF"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,eAAe,CAEpE,CAAC;AACF,eAAO,IAAI,gBAAgB,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,IAAI;;;;GAwB9G"}
package/dist/setup.js CHANGED
@@ -1,27 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.active_contracts = exports.backup_providers = void 0;
3
4
  exports.setupChain = setupChain;
5
+ const ethers_1 = require("ethers");
4
6
  const helpers_1 = require("./helpers");
5
7
  const Market_1 = require("./classes/Market");
6
8
  const ProtocolReader_1 = require("./classes/ProtocolReader");
7
9
  const Faucet_1 = require("./classes/Faucet");
8
10
  const OracleManager_1 = require("./classes/OracleManager");
11
+ exports.backup_providers = {
12
+ "monad-testnet": new ethers_1.JsonRpcProvider("https://rpc.ankr.com/monad_testnet")
13
+ };
9
14
  async function setupChain(chain, signer) {
10
- const chain_addresses = (0, helpers_1.getContractAddresses)(chain);
11
- if (!("ProtocolReader" in chain_addresses)) {
15
+ exports.active_contracts = (0, helpers_1.getContractAddresses)(chain);
16
+ if (signer == null) {
17
+ signer = exports.backup_providers[chain];
18
+ }
19
+ if (!("ProtocolReader" in exports.active_contracts)) {
12
20
  throw new Error(`Chain configuration for ${chain} is missing ProtocolReader address.`);
13
21
  }
14
- else if (!("Faucet" in chain_addresses)) {
22
+ else if (!("Faucet" in exports.active_contracts)) {
15
23
  throw new Error(`Chain configuration for ${chain} is missing Faucet address.`);
16
24
  }
17
- else if (!("OracleManager" in chain_addresses)) {
25
+ else if (!("OracleManager" in exports.active_contracts)) {
18
26
  throw new Error(`Chain configuration for ${chain} is missing OracleManager address.`);
19
27
  }
20
- const reader = new ProtocolReader_1.ProtocolReader(signer, chain_addresses.ProtocolReader);
21
- const faucet = new Faucet_1.Faucet(signer, chain_addresses.Faucet);
22
- const oracle_manager = new OracleManager_1.OracleManager(signer, chain_addresses.OracleManager);
28
+ const reader = new ProtocolReader_1.ProtocolReader(signer, exports.active_contracts.ProtocolReader);
29
+ const faucet = new Faucet_1.Faucet(signer, exports.active_contracts.Faucet);
30
+ const oracle_manager = new OracleManager_1.OracleManager(signer, exports.active_contracts.OracleManager);
23
31
  return {
24
- markets: await Market_1.Market.getAll(signer, reader, oracle_manager),
32
+ markets: await Market_1.Market.getAll(signer, reader, oracle_manager, exports.active_contracts),
25
33
  faucet,
26
34
  reader,
27
35
  };
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AAQA,gCAoBC;AA3BD,uCAAiE;AACjE,6CAA0C;AAE1C,6DAA0D;AAC1D,6CAA0C;AAC1C,2DAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,KAAqB,EAAE,MAA8B;IAClF,MAAM,eAAe,GAAG,IAAA,8BAAoB,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAG,CAAC,CAAC,gBAAgB,IAAI,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,qCAAqC,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,6BAA6B,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,oCAAoC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,eAAe,CAAC,cAAyB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,eAAe,CAAC,aAAwB,CAAC,CAAC;IAE3F,OAAO;QACH,OAAO,EAAE,MAAM,eAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;QAC5D,MAAM;QACN,MAAM;KACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;;AAaA,gCAwBC;AArCD,mCAAgE;AAChE,uCAAiE;AACjE,6CAA0C;AAE1C,6DAA0D;AAC1D,6CAA0C;AAC1C,2DAAwD;AAE3C,QAAA,gBAAgB,GAA4C;IACrE,eAAe,EAAE,IAAI,wBAAe,CAAC,oCAAoC,CAAC;CAC7E,CAAC;AAGK,KAAK,UAAU,UAAU,CAAC,KAAqB,EAAE,MAAuD;IAC3G,wBAAgB,GAAG,IAAA,8BAAoB,EAAC,KAAK,CAAC,CAAC;IAE/C,IAAG,MAAM,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,GAAG,wBAAgB,CAAC,KAAK,CAAE,CAAC;IACtC,CAAC;IAED,IAAG,CAAC,CAAC,gBAAgB,IAAI,wBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,qCAAqC,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,wBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,6BAA6B,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,CAAC,CAAC,eAAe,IAAI,wBAAgB,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,oCAAoC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,wBAAgB,CAAC,cAAyB,CAAC,CAAA;IACrF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,EAAE,wBAAgB,CAAC,MAAiB,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,wBAAgB,CAAC,aAAwB,CAAC,CAAC;IAE5F,OAAO;QACH,OAAO,EAAE,MAAM,eAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,wBAAgB,CAAC;QAC9E,MAAM;QACN,MAAM;KACT,CAAC;AACN,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { JsonRpcSigner, Wallet } from "ethers";
1
+ import Decimal from "decimal.js";
2
+ import { JsonRpcProvider, JsonRpcSigner, Wallet } from "ethers";
2
3
  export type address = `0x${string}`;
3
4
  export type bytes = `0x${string}`;
4
5
  export type uint = bigint | number;
@@ -6,5 +7,7 @@ export type uint240 = uint;
6
7
  export type uint8 = uint;
7
8
  export type uint256 = uint;
8
9
  export type uint128 = uint;
10
+ export type percentage = Decimal;
11
+ export type curvance_provider = JsonRpcSigner | Wallet | JsonRpcProvider;
9
12
  export type curvance_signer = JsonRpcSigner | Wallet;
10
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;AACpC,MAAM,MAAM,KAAK,GAAG,KAAK,MAAM,EAAE,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC;AACzB,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhE,MAAM,MAAM,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;AACpC,MAAM,MAAM,KAAK,GAAG,KAAK,MAAM,EAAE,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC;AACzB,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC;AAC3B,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,MAAM,GAAG,eAAe,CAAC;AACzE,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "curvance",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -23,6 +23,7 @@
23
23
  "crypto"
24
24
  ],
25
25
  "scripts": {
26
+ "up": "npm run build && npm publish",
26
27
  "fetch": "ts-node fetch-deployment.ts",
27
28
  "build": "tsc",
28
29
  "test": "node --test --require ts-node/register tests/*.test.ts",