@across-protocol/sdk 4.3.56 → 4.3.57

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 (103) hide show
  1. package/dist/cjs/pool/poolClient.d.ts +9 -13
  2. package/dist/cjs/pool/poolClient.js +1 -1
  3. package/dist/cjs/pool/poolClient.js.map +1 -1
  4. package/dist/cjs/pool/uma/across/constants.d.ts +2 -0
  5. package/dist/cjs/pool/uma/across/constants.js +6 -0
  6. package/dist/cjs/pool/uma/across/constants.js.map +1 -0
  7. package/dist/cjs/pool/uma/across/index.d.ts +2 -0
  8. package/dist/cjs/pool/uma/across/index.js +8 -0
  9. package/dist/cjs/pool/uma/across/index.js.map +1 -0
  10. package/dist/cjs/pool/uma/across/transactionManager.d.ts +12 -0
  11. package/dist/cjs/pool/uma/across/transactionManager.js +121 -0
  12. package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -0
  13. package/dist/cjs/pool/uma/clients/erc20/client.d.ts +26 -0
  14. package/dist/cjs/pool/uma/clients/erc20/client.js +38 -0
  15. package/dist/cjs/pool/uma/clients/erc20/client.js.map +1 -0
  16. package/dist/cjs/pool/uma/clients/erc20/index.d.ts +1 -0
  17. package/dist/cjs/pool/uma/clients/erc20/index.js +5 -0
  18. package/dist/cjs/pool/uma/clients/erc20/index.js.map +1 -0
  19. package/dist/cjs/pool/uma/clients/index.d.ts +1 -0
  20. package/dist/cjs/pool/uma/clients/index.js +6 -0
  21. package/dist/cjs/pool/uma/clients/index.js.map +1 -0
  22. package/dist/cjs/pool/uma/index.d.ts +13 -0
  23. package/dist/cjs/pool/uma/index.js +9 -0
  24. package/dist/cjs/pool/uma/index.js.map +1 -0
  25. package/dist/cjs/pool/uma/oracle/index.d.ts +1 -0
  26. package/dist/cjs/pool/uma/oracle/index.js +6 -0
  27. package/dist/cjs/pool/uma/oracle/index.js.map +1 -0
  28. package/dist/cjs/pool/uma/oracle/utils.d.ts +7 -0
  29. package/dist/cjs/pool/uma/oracle/utils.js +20 -0
  30. package/dist/cjs/pool/uma/oracle/utils.js.map +1 -0
  31. package/dist/cjs/pool/uma/utils.d.ts +17 -0
  32. package/dist/cjs/pool/uma/utils.js +69 -0
  33. package/dist/cjs/pool/uma/utils.js.map +1 -0
  34. package/dist/esm/pool/poolClient.d.ts +9 -13
  35. package/dist/esm/pool/poolClient.js +1 -1
  36. package/dist/esm/pool/poolClient.js.map +1 -1
  37. package/dist/esm/pool/uma/across/constants.d.ts +2 -0
  38. package/dist/esm/pool/uma/across/constants.js +3 -0
  39. package/dist/esm/pool/uma/across/constants.js.map +1 -0
  40. package/dist/esm/pool/uma/across/index.d.ts +2 -0
  41. package/dist/esm/pool/uma/across/index.js +4 -0
  42. package/dist/esm/pool/uma/across/index.js.map +1 -0
  43. package/dist/esm/pool/uma/across/transactionManager.d.ts +12 -0
  44. package/dist/esm/pool/uma/across/transactionManager.js +122 -0
  45. package/dist/esm/pool/uma/across/transactionManager.js.map +1 -0
  46. package/dist/esm/pool/uma/clients/erc20/client.d.ts +26 -0
  47. package/dist/esm/pool/uma/clients/erc20/client.js +35 -0
  48. package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -0
  49. package/dist/esm/pool/uma/clients/erc20/index.d.ts +1 -0
  50. package/dist/esm/pool/uma/clients/erc20/index.js +2 -0
  51. package/dist/esm/pool/uma/clients/erc20/index.js.map +1 -0
  52. package/dist/esm/pool/uma/clients/index.d.ts +1 -0
  53. package/dist/esm/pool/uma/clients/index.js +3 -0
  54. package/dist/esm/pool/uma/clients/index.js.map +1 -0
  55. package/dist/esm/pool/uma/index.d.ts +13 -0
  56. package/dist/esm/pool/uma/index.js +9 -0
  57. package/dist/esm/pool/uma/index.js.map +1 -0
  58. package/dist/esm/pool/uma/oracle/index.d.ts +1 -0
  59. package/dist/esm/pool/uma/oracle/index.js +3 -0
  60. package/dist/esm/pool/uma/oracle/index.js.map +1 -0
  61. package/dist/esm/pool/uma/oracle/utils.d.ts +23 -0
  62. package/dist/esm/pool/uma/oracle/utils.js +33 -0
  63. package/dist/esm/pool/uma/oracle/utils.js.map +1 -0
  64. package/dist/esm/pool/uma/utils.d.ts +17 -0
  65. package/dist/esm/pool/uma/utils.js +68 -0
  66. package/dist/esm/pool/uma/utils.js.map +1 -0
  67. package/dist/types/pool/poolClient.d.ts +9 -13
  68. package/dist/types/pool/poolClient.d.ts.map +1 -1
  69. package/dist/types/pool/uma/across/constants.d.ts +3 -0
  70. package/dist/types/pool/uma/across/constants.d.ts.map +1 -0
  71. package/dist/types/pool/uma/across/index.d.ts +3 -0
  72. package/dist/types/pool/uma/across/index.d.ts.map +1 -0
  73. package/dist/types/pool/uma/across/transactionManager.d.ts +13 -0
  74. package/dist/types/pool/uma/across/transactionManager.d.ts.map +1 -0
  75. package/dist/types/pool/uma/clients/erc20/client.d.ts +27 -0
  76. package/dist/types/pool/uma/clients/erc20/client.d.ts.map +1 -0
  77. package/dist/types/pool/uma/clients/erc20/index.d.ts +2 -0
  78. package/dist/types/pool/uma/clients/erc20/index.d.ts.map +1 -0
  79. package/dist/types/pool/uma/clients/index.d.ts +2 -0
  80. package/dist/types/pool/uma/clients/index.d.ts.map +1 -0
  81. package/dist/types/pool/uma/index.d.ts +14 -0
  82. package/dist/types/pool/uma/index.d.ts.map +1 -0
  83. package/dist/types/pool/uma/oracle/index.d.ts +2 -0
  84. package/dist/types/pool/uma/oracle/index.d.ts.map +1 -0
  85. package/dist/types/pool/uma/oracle/utils.d.ts +24 -0
  86. package/dist/types/pool/uma/oracle/utils.d.ts.map +1 -0
  87. package/dist/types/pool/uma/utils.d.ts +18 -0
  88. package/dist/types/pool/uma/utils.d.ts.map +1 -0
  89. package/package.json +2 -2
  90. package/src/pool/poolClient.ts +1 -1
  91. package/src/pool/uma/across/constants.ts +2 -0
  92. package/src/pool/uma/across/index.ts +2 -0
  93. package/src/pool/uma/across/transactionManager.ts +73 -0
  94. package/src/pool/uma/clients/erc20/README.md +29 -0
  95. package/src/pool/uma/clients/erc20/client.e2e.ts +26 -0
  96. package/src/pool/uma/clients/erc20/client.ts +67 -0
  97. package/src/pool/uma/clients/erc20/index.ts +1 -0
  98. package/src/pool/uma/clients/index.ts +1 -0
  99. package/src/pool/uma/index.ts +33 -0
  100. package/src/pool/uma/oracle/index.ts +2 -0
  101. package/src/pool/uma/oracle/utils.ts +38 -0
  102. package/src/pool/uma/utils.test.ts +24 -0
  103. package/src/pool/uma/utils.ts +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/pool/uma/oracle/utils.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAIxB;;IACC,OAAO;QACL,+IAA+I;QAC/I,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;QAC9C,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;QACnD,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;QAC5C,4EAA4E;KAC7E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAI,KAAU,EAAE,OAAU,EAAE,OAAwC;IACxG,IAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { BigNumberish } from "../../utils";
2
+ export { delay as sleep } from "../../utils";
3
+ export declare function exists<T>(value: T | null | undefined): value is NonNullable<T>;
4
+ export type Balances = {
5
+ [key: string]: string;
6
+ };
7
+ export declare function Balances(balances?: Balances): {
8
+ create: (id: string, amount?: string) => string;
9
+ add: (id: string, amount: BigNumberish) => string;
10
+ sub: (id: string, amount: BigNumberish) => string;
11
+ get: (id: string) => string;
12
+ balances: Balances;
13
+ set: (id: string, amount: string) => string;
14
+ has: (id: string) => boolean;
15
+ getOrCreate: (id: string) => string;
16
+ };
17
+ export declare function loop(fn: (...args: any[]) => any, delay: number, ...args: any[]): Promise<void>;
@@ -0,0 +1,68 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import assert from "assert";
3
+ import { BigNumber, delay as sleep } from "../../utils";
4
+ export { delay as sleep } from "../../utils";
5
+ // check if a value is not null or undefined, useful for numbers which could be 0.
6
+ // "is" syntax: https://stackoverflow.com/questions/40081332/what-does-the-is-keyword-do-in-typescript
7
+ /* eslint-disable-next-line @typescript-eslint/ban-types */
8
+ export function exists(value) {
9
+ return value !== null && value !== undefined;
10
+ }
11
+ export function Balances(balances) {
12
+ if (balances === void 0) { balances = {}; }
13
+ function create(id, amount) {
14
+ if (amount === void 0) { amount = "0"; }
15
+ assert(!has(id), "balance already exists");
16
+ return set(id, amount);
17
+ }
18
+ function has(id) {
19
+ return exists(balances[id]);
20
+ }
21
+ function set(id, amount) {
22
+ balances[id] = amount;
23
+ return amount;
24
+ }
25
+ function add(id, amount) {
26
+ return set(id, BigNumber.from(amount).add(getOrCreate(id)).toString());
27
+ }
28
+ function sub(id, amount) {
29
+ return set(id, BigNumber.from(getOrCreate(id)).sub(amount).toString());
30
+ }
31
+ function get(id) {
32
+ assert(has(id), "balance does not exist");
33
+ return balances[id];
34
+ }
35
+ function getOrCreate(id) {
36
+ if (has(id))
37
+ return get(id);
38
+ return create(id);
39
+ }
40
+ return { create: create, add: add, sub: sub, get: get, balances: balances, set: set, has: has, getOrCreate: getOrCreate };
41
+ }
42
+ // Loop forever but wait until execution is finished before starting next timer. Throw an error to break this
43
+ // or add another utlity function if you need it to end on condition.
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ export function loop(fn, delay) {
46
+ var args = [];
47
+ for (var _i = 2; _i < arguments.length; _i++) {
48
+ args[_i - 2] = arguments[_i];
49
+ }
50
+ return __awaiter(this, void 0, void 0, function () {
51
+ return __generator(this, function (_a) {
52
+ switch (_a.label) {
53
+ case 0: return [4 /*yield*/, fn.apply(void 0, args)];
54
+ case 1:
55
+ _a.sent();
56
+ return [4 /*yield*/, sleep(delay)];
57
+ case 2:
58
+ _a.sent();
59
+ _a.label = 3;
60
+ case 3:
61
+ if (true) return [3 /*break*/, 0];
62
+ _a.label = 4;
63
+ case 4: return [2 /*return*/];
64
+ }
65
+ });
66
+ });
67
+ }
68
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/pool/uma/utils.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAgB,KAAK,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,kFAAkF;AAClF,sGAAsG;AACtG,2DAA2D;AAC3D,MAAM,UAAU,MAAM,CAAI,KAA2B;IACnD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,QAAuB;IAAvB,yBAAA,EAAA,aAAuB;IAC9C,SAAS,MAAM,CAAC,EAAU,EAAE,MAAY;QAAZ,uBAAA,EAAA,YAAY;QACtC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,SAAS,GAAG,CAAC,EAAU;QACrB,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,GAAG,CAAC,EAAU,EAAE,MAAc;QACrC,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,SAAS,GAAG,CAAC,EAAU,EAAE,MAAoB;QAC3C,OAAO,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,SAAS,GAAG,CAAC,EAAU,EAAE,MAAoB;QAC3C,OAAO,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,SAAS,GAAG,CAAC,EAAU;QACrB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,WAAW,CAAC,EAAU;QAC7B,IAAI,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,MAAM,QAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,WAAW,aAAA,EAAE,CAAC;AACpE,CAAC;AAED,6GAA6G;AAC7G,qEAAqE;AACrE,8DAA8D;AAC9D,MAAM,UAAgB,IAAI,CAAC,EAA2B,EAAE,KAAa;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;;;;wBAEjF,qBAAM,EAAE,eAAI,IAAI,GAAC;;oBAAjB,SAAiB,CAAC;oBAClB,qBAAM,KAAK,CAAC,KAAK,CAAC,EAAA;;oBAAlB,SAAkB,CAAC;;;wBAEZ,IAAI;;;;;;CACd"}
@@ -1,4 +1,4 @@
1
- import * as uma from "@uma/sdk";
1
+ import * as uma from "./uma";
2
2
  import { BigNumber, BigNumberish } from "../utils";
3
3
  import { Signer } from "ethers";
4
4
  import type { Overrides } from "@ethersproject/contracts";
@@ -130,14 +130,10 @@ declare class UserState {
130
130
  * @param {number} endBlock
131
131
  */
132
132
  read(endBlock: number): Promise<{
133
- transferEvents: import("@uma/contracts-frontend").TypedEventEthers<[string, string, uma.oracle.types.ethers.BigNumber] & {
134
- from: string;
135
- to: string;
136
- value: BigNumber;
137
- }>[];
133
+ transferEvents: import("@uma/contracts-node").TypedEventEthers<any>[];
138
134
  balanceTransferred: string;
139
135
  address: string;
140
- balanceOf: uma.oracle.types.ethers.BigNumber;
136
+ balanceOf: BigNumber;
141
137
  }>;
142
138
  }
143
139
  export declare function calculateRemoval(amountWei: BigNumber, percentWei: BigNumber): {
@@ -179,13 +175,13 @@ export declare class ReadPoolClient {
179
175
  l1Token: string;
180
176
  latestBlock: number;
181
177
  previousBlock: number | undefined;
182
- exchangeRatePrevious: uma.oracle.types.ethers.BigNumber;
183
- exchangeRateCurrent: uma.oracle.types.ethers.BigNumber;
184
- liquidityUtilizationCurrent: uma.oracle.types.ethers.BigNumber;
178
+ exchangeRatePrevious: BigNumber;
179
+ exchangeRateCurrent: BigNumber;
180
+ liquidityUtilizationCurrent: BigNumber;
185
181
  }>;
186
182
  }
187
183
  export declare function validateWithdraw(pool: Pool, user: User, lpTokenAmount: BigNumberish): {
188
- lpTokenAmount: uma.oracle.types.ethers.BigNumberish;
184
+ lpTokenAmount: BigNumberish;
189
185
  l1TokensToReturn: string;
190
186
  };
191
187
  export declare class Client {
@@ -215,12 +211,12 @@ export declare class Client {
215
211
  private getOrCreateUserService;
216
212
  private updateExchangeRateTable;
217
213
  resolveStakingData(lpToken: string, l1TokenAddress: string, userState: Awaited<ReturnType<UserState["read"]>>): Promise<StakeData>;
218
- calculateLpTransferValue(l1TokenAddress: string, userState: Awaited<ReturnType<UserState["read"]>>): Promise<uma.oracle.types.ethers.BigNumber>;
214
+ calculateLpTransferValue(l1TokenAddress: string, userState: Awaited<ReturnType<UserState["read"]>>): Promise<BigNumber>;
219
215
  private getOrCreateTransactionManager;
220
216
  addEthLiquidity(signer: Signer, l1TokenAmount: BigNumberish, overrides?: Overrides): Promise<string>;
221
217
  addTokenLiquidity(signer: Signer, l1Token: string, l1TokenAmount: BigNumberish, overrides?: Overrides): Promise<string>;
222
218
  validateWithdraw(l1Token: string, userAddress: string, lpAmount: BigNumberish): Promise<{
223
- lpTokenAmount: uma.oracle.types.ethers.BigNumberish;
219
+ lpTokenAmount: BigNumberish;
224
220
  l1TokensToReturn: string;
225
221
  }>;
226
222
  removeTokenLiquidity(signer: Signer, l1Token: string, lpTokenAmount: BigNumberish, overrides?: Overrides): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"poolClient.d.ts","sourceRoot":"","sources":["../../../src/pool/poolClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolClient.d.ts","sourceRoot":"","sources":["../../../src/pool/poolClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const SECONDS_PER_YEAR = 31557600;
2
+ export declare const DEFAULT_BLOCK_DELTA = 10;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/across/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,mBAAmB,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as TransactionManager } from "./transactionManager";
2
+ export * as constants from "./constants";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/across/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Signer } from "ethers";
2
+ import { TransactionRequest, TransactionReceipt } from "@ethersproject/abstract-provider";
3
+ type Config = {
4
+ confirmations?: number;
5
+ };
6
+ export type Emit = (event: string, key: string, data: TransactionReceipt | string | TransactionRequest | Error) => void;
7
+ declare const _default: (config: Config, signer: Signer, emit?: Emit) => {
8
+ request: (unsignedTx: TransactionRequest) => string;
9
+ isMined: (key: string) => Promise<TransactionReceipt | undefined>;
10
+ update: () => Promise<void>;
11
+ };
12
+ export default _default;
13
+ //# sourceMappingURL=transactionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionManager.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/across/transactionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAU1F,KAAK,MAAM,GAAG;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,kBAAkB,GAAG,KAAK,KAAK,IAAI,CAAC;yBACxG,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAM,IAAiB;0BAMxC,kBAAkB;mBAkCzB,MAAM;;;AAxC9B,wBAwDE"}
@@ -0,0 +1,27 @@
1
+ import { ERC20Ethers } from "@uma/contracts-node";
2
+ import { Event } from "ethers";
3
+ import { Balances } from "../../utils";
4
+ import type { Provider, GetEventType } from "../..";
5
+ export type Instance = ERC20Ethers;
6
+ export declare function connect(address: string, provider: Provider): Instance;
7
+ export interface EventState {
8
+ balances?: Balances;
9
+ approvalsByOwner?: {
10
+ [owner: string]: {
11
+ [spender: string]: {
12
+ amount: string;
13
+ };
14
+ };
15
+ };
16
+ approvalsBySpender?: {
17
+ [spender: string]: {
18
+ [owner: string]: {
19
+ amount: string;
20
+ };
21
+ };
22
+ };
23
+ }
24
+ export type Transfer = GetEventType<Instance, "Transfer">;
25
+ export type Approval = GetEventType<Instance, "Approval">;
26
+ export declare function getEventState(events: Event[], initialState?: EventState): EventState;
27
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/pool/uma/clients/erc20/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAGnC,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAErE;AAED,MAAM,WAAW,UAAU;IAEzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,gBAAgB,CAAC,EAAE;QACjB,CAAC,KAAK,EAAE,MAAM,GAAG;YACf,CAAC,OAAO,EAAE,MAAM,GAAG;gBACjB,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,CAAC,KAAK,EAAE,MAAM,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AA6B1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,GAAE,UAAe,GAAG,UAAU,CAExF"}
@@ -0,0 +1,2 @@
1
+ export * from "./client";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pool/uma/clients/erc20/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * as erc20 from "./erc20";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Contract, ethers, Event } from "ethers";
2
+ import type { TypedEventFilterEthers as TypedEventFilter, TypedEventEthers as TypedEvent } from "@uma/contracts-node";
3
+ export * as across from "./across";
4
+ export * as clients from "./clients";
5
+ export * as oracle from "./oracle";
6
+ export * as utils from "./utils";
7
+ export { type Provider } from "@ethersproject/providers";
8
+ type Result = ethers.utils.Result;
9
+ export interface Callable {
10
+ (...args: unknown[]): unknown;
11
+ }
12
+ export type SerializableEvent = Omit<Event, "decode" | "removeListener" | "getBlock" | "getTransaction" | "getTransactionReceipt">;
13
+ export type GetEventType<ContractType extends Contract, EventName extends string> = ReturnType<ContractType["filters"][EventName] extends Callable ? ContractType["filters"][EventName] : never> extends TypedEventFilter<infer T, infer S> ? TypedEvent<T & S extends Result ? T & S : any> : never;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pool/uma/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,KAAK,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AAElC,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,KAAK,EACL,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,gBAAgB,GAAG,uBAAuB,CACtF,CAAC;AAOF,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,QAAQ,EAAE,SAAS,SAAS,MAAM,IAAI,UAAU,CAC5F,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CACjG,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAExC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAC9C,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * as utils from "./utils";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/oracle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { BigNumberish } from "../../../utils";
2
+ /**
3
+ * eventKey. Make a unique and sortable identifier string for an event
4
+ * Used by poolClient.ts lines 166, 246
5
+ *
6
+ * @param {Event} event
7
+ * @returns {string} - the unique id
8
+ */
9
+ export declare function eventKey(event: {
10
+ blockNumber: BigNumberish;
11
+ transactionIndex: BigNumberish;
12
+ logIndex: BigNumberish;
13
+ }): string;
14
+ /**
15
+ * insertOrdered. Inserts items in an array maintaining sorted order, in this case lowest to highest. Does not check duplicates.
16
+ * Mainly used for caching all known events, in order of oldest to newest.
17
+ * Used by poolClient.ts line 181
18
+ *
19
+ * @param {T[]} array
20
+ * @param {T} element
21
+ * @param {Function} orderBy
22
+ */
23
+ export declare function insertOrderedAscending<T>(array: T[], element: T, orderBy: (element: T) => string | number): T[];
24
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/pool/uma/oracle/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,WAAW,EAAE,YAAY,CAAC;IAC1B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC;CACxB,GAAG,MAAM,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAI/G"}
@@ -0,0 +1,18 @@
1
+ import { BigNumberish } from "../../utils";
2
+ export { delay as sleep } from "../../utils";
3
+ export declare function exists<T>(value: T | null | undefined): value is NonNullable<T>;
4
+ export type Balances = {
5
+ [key: string]: string;
6
+ };
7
+ export declare function Balances(balances?: Balances): {
8
+ create: (id: string, amount?: string) => string;
9
+ add: (id: string, amount: BigNumberish) => string;
10
+ sub: (id: string, amount: BigNumberish) => string;
11
+ get: (id: string) => string;
12
+ balances: Balances;
13
+ set: (id: string, amount: string) => string;
14
+ has: (id: string) => boolean;
15
+ getOrCreate: (id: string) => string;
16
+ };
17
+ export declare function loop(fn: (...args: any[]) => any, delay: number, ...args: any[]): Promise<void>;
18
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/pool/uma/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAkB,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAK7C,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAE9E;AAGD,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACjD,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,QAAa;iBAC1B,MAAM;cAWT,MAAM,UAAU,YAAY;cAG5B,MAAM,UAAU,YAAY;cAG5B,MAAM;;cAVN,MAAM,UAAU,MAAM;cAHtB,MAAM;sBAiBE,MAAM;EAKhC;AAKD,wBAAsB,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,iBAMpF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.3.56",
4
+ "version": "4.3.57",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -118,7 +118,7 @@
118
118
  "@solana/web3.js": "^1.31.0",
119
119
  "@types/mocha": "^10.0.1",
120
120
  "@types/node": "^24.3.0",
121
- "@uma/sdk": "^0.34.10",
121
+ "@uma/contracts-node": "^0.4.26",
122
122
  "arweave": "^1.14.4",
123
123
  "async": "^3.2.5",
124
124
  "axios": "^0.27.2",
@@ -1,5 +1,5 @@
1
1
  import assert from "assert";
2
- import * as uma from "@uma/sdk";
2
+ import * as uma from "./uma";
3
3
  import {
4
4
  bnZero,
5
5
  toBNWei,
@@ -0,0 +1,2 @@
1
+ export const SECONDS_PER_YEAR = 31557600; // based on 365.25 days per year
2
+ export const DEFAULT_BLOCK_DELTA = 10; // look exchange rate up based on 10 block difference by default
@@ -0,0 +1,2 @@
1
+ export { default as TransactionManager } from "./transactionManager";
2
+ export * as constants from "./constants";
@@ -0,0 +1,73 @@
1
+ import assert from "assert";
2
+ import { Signer } from "ethers";
3
+ import { TransactionRequest, TransactionReceipt } from "@ethersproject/abstract-provider";
4
+
5
+ function makeKey(tx: TransactionRequest) {
6
+ return JSON.stringify(
7
+ Object.entries(tx).map(([key, value]) => {
8
+ return [key, (value || "").toString()];
9
+ })
10
+ );
11
+ }
12
+
13
+ type Config = {
14
+ confirmations?: number;
15
+ };
16
+ export type Emit = (event: string, key: string, data: TransactionReceipt | string | TransactionRequest | Error) => void;
17
+ export default (config: Config, signer: Signer, emit: Emit = () => null) => {
18
+ assert(signer.provider, "signer requires a provider, use signer.connect(provider)");
19
+ const { confirmations = 3 } = config;
20
+ const requests = new Map<string, TransactionRequest>();
21
+ const submissions = new Map<string, string>();
22
+ const mined = new Map<string, TransactionReceipt>();
23
+ function request(unsignedTx: TransactionRequest) {
24
+ // this no longer calls signer.populateTransaction, to allow metamask to fill in missing details instead
25
+ // use overrides if you want to manually fill in other tx details, including the overrides.customData field.
26
+ const populated = unsignedTx;
27
+ const key = makeKey(populated);
28
+ assert(!requests.has(key), "Transaction already in progress");
29
+ requests.set(key, populated);
30
+ return key;
31
+ }
32
+ async function processRequest(key: string) {
33
+ const request = requests.get(key);
34
+ assert(request, "invalid request");
35
+ // always delete request, it should only be submitted once
36
+ requests.delete(key);
37
+ try {
38
+ const sent = await signer.sendTransaction(request);
39
+ submissions.set(key, sent.hash);
40
+ emit("submitted", key, sent.hash);
41
+ } catch (err) {
42
+ emit("error", key, err as Error);
43
+ }
44
+ }
45
+ async function processSubmission(key: string) {
46
+ const hash = submissions.get(key);
47
+ assert(hash, "invalid submission");
48
+ assert(signer.provider, "signer requires a provider, use signer.connect(provider)");
49
+ // we look for this transaction, but it may never find it if its sped up
50
+ const receipt = await signer.provider.getTransactionReceipt(hash).catch(() => undefined);
51
+ if (receipt == null) return;
52
+ if (receipt.confirmations < confirmations) return;
53
+ submissions.delete(key);
54
+ mined.set(key, receipt);
55
+ emit("mined", key, receipt);
56
+ }
57
+ function isMined(key: string) {
58
+ return Promise.resolve(mined.get(key));
59
+ }
60
+ async function update() {
61
+ for (const key of Array.from(requests.keys())) {
62
+ await processRequest(key);
63
+ }
64
+ for (const key of Array.from(submissions.keys())) {
65
+ await processSubmission(key);
66
+ }
67
+ }
68
+ return {
69
+ request,
70
+ isMined,
71
+ update,
72
+ };
73
+ };
@@ -0,0 +1,29 @@
1
+ # UMA SDK ERC20 Client
2
+
3
+ Client to interface with ERC20 style tokens, based on Ethers and typechain.
4
+
5
+ ## Usage
6
+
7
+ ```js
8
+ import {ethers} from 'ethers'
9
+
10
+ // assume you have a url injected from env
11
+ const provider = new ethers.providers.WebSocketProvider(env.CUSTOM_NODE_URL)
12
+
13
+ // get the contract instance
14
+ const erc20Address:string = // assume you have an emp address you want to connect to
15
+ const erc20Instance:uma.clients.erc20.Instance = uma.clients.erc20.connect(erc20Address,provider)
16
+
17
+ // gets all emp events, see ethers queryFilter for details on contructing the query.
18
+ const events = await erc20Instance.queryFilter({})
19
+
20
+ // returns EventState, defined in the emp client. This can contain user balances as well as approval limits.
21
+ const state:uma.clients.erc20.EventState = uma.clients.erc20.getEventState(events)
22
+
23
+ // Types
24
+ types {Transfer,Approval, Instance, EventState} = uma.clients.erc20
25
+ // Transfer and Approval are event types
26
+ // Instance is the contract instance once connected
27
+ // Event state describes what the state reconstruction based on contract events will look like
28
+
29
+ ```
@@ -0,0 +1,26 @@
1
+ import assert from "assert";
2
+ import { ethers } from "ethers";
3
+ import * as Client from "./client";
4
+
5
+ const address = "0xeca82185adCE47f39c684352B0439f030f860318";
6
+ // these require integration testing, skip for ci
7
+ describe("erc20", function () {
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ let events: any;
10
+ let client: Client.Instance;
11
+ test("inits", function () {
12
+ const provider = ethers.providers.getDefaultProvider(process.env.CUSTOM_NODE_URL);
13
+ client = Client.connect(address, provider);
14
+ assert.ok(client);
15
+ });
16
+ test("getEventState between", async function () {
17
+ events = await client.queryFilter({}, 12477952, 12477952 + 1000);
18
+ assert.ok(events.length);
19
+ });
20
+ test("getEventState", async function () {
21
+ const state = await Client.getEventState(events);
22
+ assert.ok(state.balances);
23
+ assert.ok(state.approvalsByOwner);
24
+ assert.ok(state.approvalsBySpender);
25
+ });
26
+ });
@@ -0,0 +1,67 @@
1
+ import { ERC20Ethers, ERC20Ethers__factory } from "@uma/contracts-node";
2
+ // eslint-disable-next-line no-restricted-imports
3
+ import { Event } from "ethers";
4
+ import { set } from "lodash";
5
+ import { Balances } from "../../utils";
6
+ import type { Provider, GetEventType } from "../..";
7
+
8
+ export type Instance = ERC20Ethers;
9
+ const Factory = ERC20Ethers__factory;
10
+
11
+ export function connect(address: string, provider: Provider): Instance {
12
+ return Factory.connect(address, provider);
13
+ }
14
+
15
+ export interface EventState {
16
+ // any address that created a position, regardless of if they have closed it
17
+ balances?: Balances;
18
+ // approvals are keyed both ways here for ease of lookup by either owner or spender
19
+ approvalsByOwner?: {
20
+ [owner: string]: {
21
+ [spender: string]: {
22
+ amount: string;
23
+ };
24
+ };
25
+ };
26
+ approvalsBySpender?: {
27
+ [spender: string]: {
28
+ [owner: string]: {
29
+ amount: string;
30
+ };
31
+ };
32
+ };
33
+ }
34
+
35
+ export type Transfer = GetEventType<Instance, "Transfer">;
36
+ export type Approval = GetEventType<Instance, "Approval">;
37
+
38
+ // takes all events and returns user balances and approvals
39
+ function reduceEvents(state: EventState = {}, event: Event): EventState {
40
+ switch (event.event) {
41
+ case "Transfer": {
42
+ const typedEvent = event as Transfer;
43
+ const { from, to, value } = typedEvent.args;
44
+ const balances = Balances(state.balances || {});
45
+ balances.sub(from, value);
46
+ balances.add(to, value);
47
+ return {
48
+ ...state,
49
+ balances: balances.balances,
50
+ };
51
+ }
52
+ case "Approval": {
53
+ const typedEvent = event as Approval;
54
+ const { owner, spender, value } = typedEvent.args;
55
+ set(state, ["approvalsByOwner", owner, spender], value.toString());
56
+ set(state, ["approvalsBySpender", spender, owner], value.toString());
57
+ return {
58
+ ...state,
59
+ };
60
+ }
61
+ }
62
+ return state;
63
+ }
64
+
65
+ export function getEventState(events: Event[], initialState: EventState = {}): EventState {
66
+ return events.reduce(reduceEvents, initialState);
67
+ }
@@ -0,0 +1 @@
1
+ export * from "./client";
@@ -0,0 +1 @@
1
+ export * as erc20 from "./erc20";
@@ -0,0 +1,33 @@
1
+ // eslint-disable-next-line no-restricted-imports
2
+ import { Contract, ethers, Event } from "ethers";
3
+ import type { TypedEventFilterEthers as TypedEventFilter, TypedEventEthers as TypedEvent } from "@uma/contracts-node";
4
+
5
+ export * as across from "./across";
6
+ export * as clients from "./clients";
7
+ export * as oracle from "./oracle";
8
+ export * as utils from "./utils";
9
+
10
+ export { type Provider } from "@ethersproject/providers";
11
+
12
+ type Result = ethers.utils.Result;
13
+
14
+ export interface Callable {
15
+ (...args: unknown[]): unknown;
16
+ }
17
+
18
+ export type SerializableEvent = Omit<
19
+ Event,
20
+ "decode" | "removeListener" | "getBlock" | "getTransaction" | "getTransactionReceipt"
21
+ >;
22
+
23
+ // this convoluted type is meant to cast events to the types you need based on the contract and event name
24
+ // example: type NewContractRegistered = GetEventType<Registry,"NewContractRegistered">;
25
+ // TODO: the any below is a hacky solution because some typechain types fail to resolve due to
26
+ // incompatible TypedEventFilter and TypedEvent types. This will be fixed by upgrading typechain
27
+ // to a version where Ethers events are exported as first class types.
28
+ export type GetEventType<ContractType extends Contract, EventName extends string> = ReturnType<
29
+ ContractType["filters"][EventName] extends Callable ? ContractType["filters"][EventName] : never
30
+ > extends TypedEventFilter<infer T, infer S>
31
+ ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ TypedEvent<T & S extends Result ? T & S : any>
33
+ : never;
@@ -0,0 +1,2 @@
1
+ // Minimal oracle module - only export utils needed by poolClient
2
+ export * as utils from "./utils";