@reyaxyz/sdk 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/services/lp/lp.js +28 -9
  2. package/dist/services/lp/lp.js.map +1 -1
  3. package/dist/services/lp/types.js.map +1 -1
  4. package/dist/services/margin-accounts/account.js.map +1 -1
  5. package/dist/services/margin-accounts/deposit.js.map +1 -1
  6. package/dist/services/margin-accounts/types.js.map +1 -1
  7. package/dist/services/margin-accounts/withdraw.js.map +1 -1
  8. package/dist/services/orders/order.js +1 -1
  9. package/dist/services/orders/order.js.map +1 -1
  10. package/dist/services/orders/types.js.map +1 -1
  11. package/dist/services/token/approve.js +4 -3
  12. package/dist/services/token/approve.js.map +1 -1
  13. package/dist/services/token/common.js.map +1 -1
  14. package/dist/services/token/getAllowance.js +4 -3
  15. package/dist/services/token/getAllowance.js.map +1 -1
  16. package/dist/services/token/types.js.map +1 -1
  17. package/dist/types/services/lp/lp.d.ts +3 -3
  18. package/dist/types/services/lp/lp.d.ts.map +1 -1
  19. package/dist/types/services/lp/types.d.ts +9 -8
  20. package/dist/types/services/lp/types.d.ts.map +1 -1
  21. package/dist/types/services/margin-accounts/account.d.ts +2 -2
  22. package/dist/types/services/margin-accounts/account.d.ts.map +1 -1
  23. package/dist/types/services/margin-accounts/deposit.d.ts +2 -2
  24. package/dist/types/services/margin-accounts/deposit.d.ts.map +1 -1
  25. package/dist/types/services/margin-accounts/types.d.ts +3 -3
  26. package/dist/types/services/margin-accounts/types.d.ts.map +1 -1
  27. package/dist/types/services/margin-accounts/withdraw.d.ts +2 -2
  28. package/dist/types/services/margin-accounts/withdraw.d.ts.map +1 -1
  29. package/dist/types/services/orders/order.d.ts +2 -2
  30. package/dist/types/services/orders/order.d.ts.map +1 -1
  31. package/dist/types/services/orders/types.d.ts +4 -4
  32. package/dist/types/services/orders/types.d.ts.map +1 -1
  33. package/dist/types/services/token/approve.d.ts +2 -2
  34. package/dist/types/services/token/approve.d.ts.map +1 -1
  35. package/dist/types/services/token/common.d.ts +2 -2
  36. package/dist/types/services/token/common.d.ts.map +1 -1
  37. package/dist/types/services/token/getAllowance.d.ts +2 -2
  38. package/dist/types/services/token/getAllowance.d.ts.map +1 -1
  39. package/dist/types/services/token/types.d.ts +3 -5
  40. package/dist/types/services/token/types.d.ts.map +1 -1
  41. package/dist/types/utils/lp.d.ts +4 -0
  42. package/dist/types/utils/lp.d.ts.map +1 -0
  43. package/dist/types/utils/trade.d.ts +2 -2
  44. package/dist/types/utils/trade.d.ts.map +1 -1
  45. package/dist/utils/lp.js +28 -0
  46. package/dist/utils/lp.js.map +1 -0
  47. package/dist/utils/trade.js +15 -9
  48. package/dist/utils/trade.js.map +1 -1
  49. package/package.json +3 -2
  50. package/src/services/lp/lp.ts +49 -16
  51. package/src/services/lp/types.ts +11 -8
  52. package/src/services/margin-accounts/account.ts +2 -2
  53. package/src/services/margin-accounts/deposit.ts +2 -2
  54. package/src/services/margin-accounts/types.ts +3 -3
  55. package/src/services/margin-accounts/withdraw.ts +2 -2
  56. package/src/services/orders/order.ts +3 -3
  57. package/src/services/orders/types.ts +4 -4
  58. package/src/services/token/approve.ts +7 -4
  59. package/src/services/token/common.ts +2 -2
  60. package/src/services/token/getAllowance.ts +7 -4
  61. package/src/services/token/types.ts +6 -8
  62. package/src/utils/lp.ts +27 -0
  63. package/src/utils/trade.ts +19 -11
@@ -40,30 +40,49 @@ exports.removeLiquidity = exports.provideLiquidity = void 0;
40
40
  var executeTransaction_1 = require("../executeTransaction");
41
41
  var encode_1 = require("./encode");
42
42
  var consts_1 = require("../../utils/consts");
43
+ var lp_1 = require("../../utils/lp");
43
44
  var provideLiquidity = function (params) { return __awaiter(void 0, void 0, void 0, function () {
44
- var _a, data, value, result;
45
+ var ownerAddrees, chainId, minShares, amount, _a, data, value, result;
45
46
  return __generator(this, function (_b) {
46
47
  switch (_b.label) {
47
- case 0:
48
- _a = (0, encode_1.encodeProvideLiquidityCall)(params.poolId, params.owner, params.amount, params.minShares), data = _a.calldata, value = _a.value;
49
- return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId, consts_1.TransactionType.LP)];
48
+ case 0: return [4 /*yield*/, params.signer.getAddress()];
50
49
  case 1:
50
+ ownerAddrees = _b.sent();
51
+ chainId = 80001;
52
+ minShares = (0, lp_1.calculateMinSharesForLp)(params.amount);
53
+ if (params.amount === 0) {
54
+ throw new Error('LP amount can not be 0');
55
+ }
56
+ amount = (0, lp_1.expandLpAmount)(params.amount);
57
+ _a = (0, encode_1.encodeProvideLiquidityCall)(params.poolId, ownerAddrees, amount, minShares), data = _a.calldata, value = _a.value;
58
+ return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, chainId, consts_1.TransactionType.LP)];
59
+ case 2:
51
60
  result = _b.sent();
52
- return [2 /*return*/, result];
61
+ return [2 /*return*/, {
62
+ transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
63
+ }];
53
64
  }
54
65
  });
55
66
  }); };
56
67
  exports.provideLiquidity = provideLiquidity;
57
68
  var removeLiquidity = function (params) { return __awaiter(void 0, void 0, void 0, function () {
58
- var _a, data, value, result;
69
+ var chainId, minOut, amount, _a, data, value, result;
59
70
  return __generator(this, function (_b) {
60
71
  switch (_b.label) {
61
72
  case 0:
62
- _a = (0, encode_1.encodeRemoveLiquidityCall)(params.poolId, params.sharesAmount, params.minOut), data = _a.calldata, value = _a.value;
63
- return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId, consts_1.TransactionType.LP)];
73
+ chainId = 80001;
74
+ if (params.sharesAmount === 0) {
75
+ throw new Error('Shares amount can not be 0');
76
+ }
77
+ minOut = (0, lp_1.calculateMinOutForLp)(params.sharesAmount);
78
+ amount = (0, lp_1.expandLpAmount)(params.sharesAmount);
79
+ _a = (0, encode_1.encodeRemoveLiquidityCall)(params.poolId, amount, minOut), data = _a.calldata, value = _a.value;
80
+ return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, chainId, consts_1.TransactionType.LP)];
64
81
  case 1:
65
82
  result = _b.sent();
66
- return [2 /*return*/, result];
83
+ return [2 /*return*/, {
84
+ transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
85
+ }];
67
86
  }
68
87
  });
69
88
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"lp.js","sourceRoot":"/","sources":["services/lp/lp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAGkB;AAElB,6CAAqD;AAE9C,IAAM,gBAAgB,GAAG,UAC9B,MAA4B;;;;;gBAGtB,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,CACjB,EALiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAK3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,EAAE,CACnB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AApBW,QAAA,gBAAgB,oBAoB3B;AAEK,IAAM,eAAe,GAAG,UAC7B,MAA2B;;;;;gBAGrB,KAA4B,IAAA,kCAAyB,EACzD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,MAAM,CACd,EAJiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAI3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,EAAE,CACnB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,eAAe,mBAmB1B","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport {\n encodeProvideLiquidityCall,\n encodeRemoveLiquidityCall,\n} from './encode';\nimport { ProvideLiquidityArgs, RemoveLiquidityArgs } from './types';\nimport { TransactionType } from '../../utils/consts';\n\nexport const provideLiquidity = async (\n params: ProvideLiquidityArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeProvideLiquidityCall(\n params.poolId,\n params.owner,\n params.amount,\n params.minShares,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.LP,\n );\n\n return result;\n};\n\nexport const removeLiquidity = async (\n params: RemoveLiquidityArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeRemoveLiquidityCall(\n params.poolId,\n params.sharesAmount,\n params.minOut,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.LP,\n );\n\n return result;\n};\n"]}
1
+ {"version":3,"file":"lp.js","sourceRoot":"/","sources":["services/lp/lp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAGkB;AAOlB,6CAAqD;AACrD,qCAIwB;AAEjB,IAAM,gBAAgB,GAAG,UAC9B,MAA8B;;;;oBAET,qBAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAA;;gBAA/C,YAAY,GAAG,SAAgC;gBAE/C,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS,GAAG,IAAA,4BAAuB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,CAAC;gBAEK,MAAM,GAAG,IAAA,mBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEvC,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,MAAM,EACN,SAAS,CACV,EALiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAK3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,wBAAe,CAAC,EAAE,CACnB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AAhCW,QAAA,gBAAgB,oBAgC3B;AAEK,IAAM,eAAe,GAAG,UAC7B,MAA6B;;;;;gBAGvB,OAAO,GAAG,KAAK,CAAC;gBAEtB,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBAEK,MAAM,GAAG,IAAA,yBAAoB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAEnD,MAAM,GAAG,IAAA,mBAAc,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7C,KAA4B,IAAA,kCAAyB,EACzD,MAAM,CAAC,MAAM,EACb,MAAM,EACN,MAAM,CACP,EAJiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAI3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,wBAAe,CAAC,EAAE,CACnB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA9BW,QAAA,eAAe,mBA8B1B","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport {\n encodeProvideLiquidityCall,\n encodeRemoveLiquidityCall,\n} from './encode';\nimport {\n ProvideLiquidityParams,\n ProvideLiquidityResult,\n RemoveLiquidityParams,\n RemoveLiquidityResult,\n} from './types';\nimport { TransactionType } from '../../utils/consts';\nimport {\n calculateMinOutForLp,\n calculateMinSharesForLp,\n expandLpAmount,\n} from '../../utils/lp';\n\nexport const provideLiquidity = async (\n params: ProvideLiquidityParams,\n): Promise<ProvideLiquidityResult> => {\n const ownerAddrees = await params.signer.getAddress();\n // @todo we might not have chainId for reya network, update once we have information\n const chainId = 80001;\n const minShares = calculateMinSharesForLp(params.amount);\n\n if (params.amount === 0) {\n throw new Error('LP amount can not be 0');\n }\n\n const amount = expandLpAmount(params.amount);\n\n const { calldata: data, value } = encodeProvideLiquidityCall(\n params.poolId,\n ownerAddrees,\n amount,\n minShares,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n TransactionType.LP,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n\nexport const removeLiquidity = async (\n params: RemoveLiquidityParams,\n): Promise<RemoveLiquidityResult> => {\n // @todo we might not have chainId for reya nework, update once we have information\n const chainId = 80001;\n\n if (params.sharesAmount === 0) {\n throw new Error('Shares amount can not be 0');\n }\n\n const minOut = calculateMinOutForLp(params.sharesAmount);\n\n const amount = expandLpAmount(params.sharesAmount);\n const { calldata: data, value } = encodeRemoveLiquidityCall(\n params.poolId,\n amount,\n minOut,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n TransactionType.LP,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport type ProvideLiquidityArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n poolId: number;\n owner: string;\n amount: number;\n minShares: number;\n};\n\nexport type RemoveLiquidityArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n poolId: number;\n sharesAmount: number;\n minOut: number;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport type ProvideLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n amount: number;\n poolId: number;\n};\n\nexport type RemoveLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n poolId: number;\n sharesAmount: number;\n};\n\nexport type ProvideLiquidityResult = {\n transactionHash: string | null;\n};\n\nexport type RemoveLiquidityResult = {\n transactionHash: string | null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"/","sources":["services/margin-accounts/account.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAAmD;AAEnD,6CAAqD;AAE9C,IAAM,aAAa,GAAG,UAC3B,MAAyB;;;;;gBAGnB,KAA4B,IAAA,gCAAuB,EACvD,MAAM,CAAC,YAAY,CACpB,EAFiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAE3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,cAAc,CAC/B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAjBW,QAAA,aAAa,iBAiBxB","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport { encodeCreateAccountCall } from './encode';\nimport { CreateAccountArgs } from './types';\nimport { TransactionType } from '../../utils/consts';\n\nexport const createAccount = async (\n params: CreateAccountArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeCreateAccountCall(\n params.ownerAddress,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.CREATE_ACCOUNT,\n );\n\n return result;\n};\n"]}
1
+ {"version":3,"file":"account.js","sourceRoot":"/","sources":["services/margin-accounts/account.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAAmD;AAEnD,6CAAqD;AAE9C,IAAM,aAAa,GAAG,UAC3B,MAA2B;;;;;gBAGrB,KAA4B,IAAA,gCAAuB,EACvD,MAAM,CAAC,YAAY,CACpB,EAFiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAE3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,cAAc,CAC/B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAjBW,QAAA,aAAa,iBAiBxB","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport { encodeCreateAccountCall } from './encode';\nimport { CreateAccountParams } from './types';\nimport { TransactionType } from '../../utils/consts';\n\nexport const createAccount = async (\n params: CreateAccountParams,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeCreateAccountCall(\n params.ownerAddress,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.CREATE_ACCOUNT,\n );\n\n return result;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.js","sourceRoot":"/","sources":["services/margin-accounts/deposit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAyC;AACzC,4DAA2D;AAC3D,6CAAqD;AAE9C,IAAM,OAAO,GAAG,UAAO,MAAmB;;;;;gBAEzC,KAA4B,IAAA,sBAAa,EAC7C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,OAAO,CACxB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,OAAO,WAmBlB","sourcesContent":["import { DepositArgs } from './types';\nimport { encodeDeposit } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\n\nexport const deposit = async (params: DepositArgs): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeDeposit(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.DEPOSIT,\n );\n\n return result;\n};\n"]}
1
+ {"version":3,"file":"deposit.js","sourceRoot":"/","sources":["services/margin-accounts/deposit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAyC;AACzC,4DAA2D;AAC3D,6CAAqD;AAE9C,IAAM,OAAO,GAAG,UAAO,MAAqB;;;;;gBAE3C,KAA4B,IAAA,sBAAa,EAC7C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,OAAO,CACxB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,OAAO,WAmBlB","sourcesContent":["import { DepositParams } from './types';\nimport { encodeDeposit } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\n\nexport const deposit = async (params: DepositParams): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeDeposit(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.DEPOSIT,\n );\n\n return result;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport type CreateAccountArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n ownerAddress: string;\n};\n\nexport type DepositArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n\nexport type WithdrawArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport type CreateAccountParams = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n ownerAddress: string;\n};\n\nexport type DepositParams = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n\nexport type WithdrawParams = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"/","sources":["services/margin-accounts/withdraw.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA0C;AAC1C,4DAA2D;AAC3D,6CAAqD;AAE9C,IAAM,QAAQ,GAAG,UAAO,MAAoB;;;;;gBAE3C,KAA4B,IAAA,uBAAc,EAC9C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,QAAQ,CACzB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,QAAQ,YAmBnB","sourcesContent":["import { WithdrawArgs } from './types';\nimport { encodeWithdraw } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\n\nexport const withdraw = async (params: WithdrawArgs): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeWithdraw(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.WITHDRAW,\n );\n\n return result;\n};\n"]}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"/","sources":["services/margin-accounts/withdraw.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA0C;AAC1C,4DAA2D;AAC3D,6CAAqD;AAE9C,IAAM,QAAQ,GAAG,UAAO,MAAsB;;;;;gBAE7C,KAA4B,IAAA,uBAAc,EAC9C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,EACd,wBAAe,CAAC,QAAQ,CACzB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,QAAQ,YAmBnB","sourcesContent":["import { WithdrawParams } from './types';\nimport { encodeWithdraw } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\n\nexport const withdraw = async (params: WithdrawParams): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeWithdraw(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n TransactionType.WITHDRAW,\n );\n\n return result;\n};\n"]}
@@ -46,7 +46,7 @@ var matchOrder = function (params) { return __awaiter(void 0, void 0, void 0, fu
46
46
  return __generator(this, function (_b) {
47
47
  switch (_b.label) {
48
48
  case 0:
49
- if (params.orderSize === BigInt(0)) {
49
+ if (params.orderSize === 0) {
50
50
  throw new Error('Position size can not be 0');
51
51
  }
52
52
  orderPriceLimit = (0, trade_1.calculatePriceLimitForTrade)(params.market.currentPrice, params.orderSize);
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sourceRoot":"/","sources":["services/orders/order.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA4C;AAC5C,4DAA2D;AAC3D,6CAAqD;AACrD,2CAG2B;AAEpB,IAAM,UAAU,GAAG,UACxB,MAAsB;;;;;gBAEtB,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACK,eAAe,GAAG,IAAA,mCAA2B,EACjD,MAAM,CAAC,MAAM,CAAC,YAAY,EAC1B,MAAM,CAAC,SAAS,CACjB,CAAC;gBAEI,SAAS,GAAG,IAAA,uCAA+B,EAC/C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;gBAEI,KAA4B,IAAA,yBAAgB,EAChD,MAAM,CAAC,eAAe,EACtB,SAAS,EACT,eAAe,EACf,MAAM,CAAC,MAAM,CAAC,sBAAsB,EACpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CACzB,EAPiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAO3B;gBAGI,OAAO,GAAG,KAAK,CAAC;gBACP,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,wBAAe,CAAC,KAAK,CACtB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AAtCW,QAAA,UAAU,cAsCrB","sourcesContent":["import { MatchOrderArgs, MatchOrderResult } from './types';\nimport { encodeMatchOrder } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\nimport {\n calculateOrderBaseFromOrderSize,\n calculatePriceLimitForTrade,\n} from '../../utils/trade';\n\nexport const matchOrder = async (\n params: MatchOrderArgs,\n): Promise<MatchOrderResult> => {\n if (params.orderSize === BigInt(0)) {\n throw new Error('Position size can not be 0');\n }\n const orderPriceLimit = calculatePriceLimitForTrade(\n params.market.currentPrice,\n params.orderSize,\n );\n\n const orderBase = calculateOrderBaseFromOrderSize(\n params.orderSize,\n params.market.currentPrice,\n );\n\n const { calldata: data, value } = encodeMatchOrder(\n params.marginAccountId,\n orderBase,\n orderPriceLimit,\n params.market.counterpartyAccountIds,\n params.market.id,\n params.market.exchangeId,\n );\n\n // @todo update it\n const chainId = 80001;\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n TransactionType.TRADE,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"order.js","sourceRoot":"/","sources":["services/orders/order.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA4C;AAC5C,4DAA2D;AAC3D,6CAAqD;AACrD,2CAG2B;AAEpB,IAAM,UAAU,GAAG,UACxB,MAAwB;;;;;gBAExB,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACK,eAAe,GAAG,IAAA,mCAA2B,EACjD,MAAM,CAAC,MAAM,CAAC,YAAY,EAC1B,MAAM,CAAC,SAAS,CACjB,CAAC;gBAEI,SAAS,GAAG,IAAA,uCAA+B,EAC/C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;gBAEI,KAA4B,IAAA,yBAAgB,EAChD,MAAM,CAAC,eAAe,EACtB,SAAS,EACT,eAAe,EACf,MAAM,CAAC,MAAM,CAAC,sBAAsB,EACpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CACzB,EAPiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAO3B;gBAGI,OAAO,GAAG,KAAK,CAAC;gBACP,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,wBAAe,CAAC,KAAK,CACtB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AAtCW,QAAA,UAAU,cAsCrB","sourcesContent":["import { MatchOrderParams, MatchOrderResult } from './types';\nimport { encodeMatchOrder } from './encode';\nimport { executeTransaction } from '../executeTransaction';\nimport { TransactionType } from '../../utils/consts';\nimport {\n calculateOrderBaseFromOrderSize,\n calculatePriceLimitForTrade,\n} from '../../utils/trade';\n\nexport const matchOrder = async (\n params: MatchOrderParams,\n): Promise<MatchOrderResult> => {\n if (params.orderSize === 0) {\n throw new Error('Position size can not be 0');\n }\n const orderPriceLimit = calculatePriceLimitForTrade(\n params.market.currentPrice,\n params.orderSize,\n );\n\n const orderBase = calculateOrderBaseFromOrderSize(\n params.orderSize,\n params.market.currentPrice,\n );\n\n const { calldata: data, value } = encodeMatchOrder(\n params.marginAccountId,\n orderBase,\n orderPriceLimit,\n params.market.counterpartyAccountIds,\n params.market.id,\n params.market.exchangeId,\n );\n\n // @todo update it\n const chainId = 80001;\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n TransactionType.TRADE,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/orders/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Signer, JsonRpcSigner } from 'ethers';\n\nexport type MarketArg = {\n id: number;\n exchangeId: number;\n counterpartyAccountIds: number[];\n currentPrice: number;\n};\n\nexport type MatchOrderArgs = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: number;\n orderSize: bigint;\n market: MarketArg;\n};\n\nexport type MatchOrderResult = {\n transactionHash: string | null;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/orders/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Signer, JsonRpcSigner } from 'ethers';\n\nexport type MarketParams = {\n id: number;\n exchangeId: number;\n counterpartyAccountIds: number[];\n currentPrice: number;\n};\n\nexport type MatchOrderParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: number;\n orderSize: number;\n market: MarketParams;\n};\n\nexport type MatchOrderResult = {\n transactionHash: string | null;\n};\n"]}
@@ -41,16 +41,17 @@ var types_1 = require("./types");
41
41
  var common_1 = require("./common");
42
42
  var contractAddresses_1 = require("../../utils/contractAddresses");
43
43
  var approveTokenSpending = function (params) { return __awaiter(void 0, void 0, void 0, function () {
44
- var underLyingTokenAddress, tokenContract, contractProxyAddress, maxUint256Bn, approvalTransaction, error_1, _a, error_2;
44
+ var underLyingTokenAddress, chainId, tokenContract, contractProxyAddress, maxUint256Bn, approvalTransaction, error_1, _a, error_2;
45
45
  var _b;
46
46
  return __generator(this, function (_c) {
47
47
  switch (_c.label) {
48
48
  case 0:
49
49
  underLyingTokenAddress = params.token;
50
+ chainId = 80001;
50
51
  tokenContract = (0, common_1.getERC20TokenContract)(underLyingTokenAddress, params.signer);
51
52
  contractProxyAddress = params.type === types_1.ApprovalType.DEPOSIT
52
- ? (0, contractAddresses_1.getAddress)(params.chainId, 'core_proxy')
53
- : (0, contractAddresses_1.getAddress)(params.chainId, 'passive_pool_proxy');
53
+ ? (0, contractAddresses_1.getAddress)(chainId, 'core_proxy')
54
+ : (0, contractAddresses_1.getAddress)(chainId, 'passive_pool_proxy');
54
55
  maxUint256Bn = BigInt('115792089237316195423570985008687907853269984665640564039457584007913129639935');
55
56
  return [4 /*yield*/, tokenContract
56
57
  .approve(contractProxyAddress, maxUint256Bn)
@@ -1 +1 @@
1
- {"version":3,"file":"approve.js","sourceRoot":"/","sources":["services/token/approve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AACzD,mCAAoE;AACpE,mEAA2D;AAEpD,IAAM,oBAAoB,GAAG,UAClC,MAAwB;;;;;;gBAElB,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC;gBAEtC,aAAa,GAAG,IAAA,8BAAqB,EACzC,sBAAsB,EACtB,MAAM,CAAC,MAAM,CACd,CAAC;gBAEI,oBAAoB,GACxB,MAAM,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO;oBAClC,CAAC,CAAC,IAAA,8BAAU,EAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;oBAC1C,CAAC,CAAC,IAAA,8BAAU,EAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAGjD,YAAY,GAAG,MAAM,CACzB,gFAAgF,CACjF,CAAC;gBAE0B,qBAAM,aAAa;yBAC5C,OAAO,CAAC,oBAAoB,EAAE,YAAY,CAAC;yBAC3C,KAAK,CAAC,UAAC,KAAK;wBACX,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;wBAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;oBACpD,CAAC,CAAC,EAAA;;gBANE,mBAAmB,GAAG,SAMxB;;;;gBAGF,qBAAM,mBAAmB,CAAC,IAAI,EAAE,EAAA;;gBAAhC,SAAgC,CAAC;;;;gBAEjC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;;;gBAI5B,KAAA,0BAAiB,CAAA;;gBACb,qBAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAA;oBAD1C,qBAAM,mBACX,gBAAa,GAAE,SAAgC;wBAC/C,eAAY,GAAE,sBAAsB;wBACpC,iBAAc,GAAE,oBAAoB;wBACpC,UAAO,GAAE,MAAM,CAAC,MAAM;6BACtB,EAAA;oBALF,sBAAO,SAKL,EAAC;;;gBAEH,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;;oBAG5C,sBAAO,CAAC,EAAC;;;KACV,CAAC;AA/CW,QAAA,oBAAoB,wBA+C/B","sourcesContent":["import { ApprovalType, ApproveTokenArgs } from './types';\nimport { getERC20Allowance, getERC20TokenContract } from './common';\nimport { getAddress } from '../../utils/contractAddresses';\n\nexport const approveTokenSpending = async (\n params: ApproveTokenArgs,\n): Promise<number> => {\n const underLyingTokenAddress = params.token;\n\n const tokenContract = getERC20TokenContract(\n underLyingTokenAddress,\n params.signer,\n );\n\n const contractProxyAddress =\n params.type === ApprovalType.DEPOSIT\n ? getAddress(params.chainId, 'core_proxy')\n : getAddress(params.chainId, 'passive_pool_proxy');\n\n // @todo validate if maxAllowance should be passed from UI\n const maxUint256Bn = BigInt(\n '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n );\n\n const approvalTransaction = await tokenContract\n .approve(contractProxyAddress, maxUint256Bn)\n .catch((error) => {\n console.warn('Transaction Confirmation Error');\n console.error(error);\n throw new Error('Transaction Confirmation Error');\n });\n\n try {\n await approvalTransaction.wait();\n } catch (error) {\n console.warn('Token approval failed');\n throw new Error('Token approval failed');\n }\n\n try {\n return await getERC20Allowance({\n walletAddress: await params.signer.getAddress(),\n tokenAddress: underLyingTokenAddress,\n spenderAddress: contractProxyAddress,\n subject: params.signer,\n });\n } catch (error) {\n console.warn('Fetching allowance failed');\n }\n\n return 0;\n};\n"]}
1
+ {"version":3,"file":"approve.js","sourceRoot":"/","sources":["services/token/approve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA2D;AAC3D,mCAAoE;AACpE,mEAA2D;AAEpD,IAAM,oBAAoB,GAAG,UAClC,MAA0B;;;;;;gBAEpB,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC;gBAGtC,OAAO,GAAG,KAAK,CAAC;gBAEhB,aAAa,GAAG,IAAA,8BAAqB,EACzC,sBAAsB,EACtB,MAAM,CAAC,MAAM,CACd,CAAC;gBAEI,oBAAoB,GACxB,MAAM,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO;oBAClC,CAAC,CAAC,IAAA,8BAAU,EAAC,OAAO,EAAE,YAAY,CAAC;oBACnC,CAAC,CAAC,IAAA,8BAAU,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAG1C,YAAY,GAAG,MAAM,CACzB,gFAAgF,CACjF,CAAC;gBAE0B,qBAAM,aAAa;yBAC5C,OAAO,CAAC,oBAAoB,EAAE,YAAY,CAAC;yBAC3C,KAAK,CAAC,UAAC,KAAK;wBACX,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;wBAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;oBACpD,CAAC,CAAC,EAAA;;gBANE,mBAAmB,GAAG,SAMxB;;;;gBAGF,qBAAM,mBAAmB,CAAC,IAAI,EAAE,EAAA;;gBAAhC,SAAgC,CAAC;;;;gBAEjC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;;;gBAI5B,KAAA,0BAAiB,CAAA;;gBACb,qBAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAA;oBAD1C,qBAAM,mBACX,gBAAa,GAAE,SAAgC;wBAC/C,eAAY,GAAE,sBAAsB;wBACpC,iBAAc,GAAE,oBAAoB;wBACpC,UAAO,GAAE,MAAM,CAAC,MAAM;6BACtB,EAAA;oBALF,sBAAO,SAKL,EAAC;;;gBAEH,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;;oBAG5C,sBAAO,CAAC,EAAC;;;KACV,CAAC;AAlDW,QAAA,oBAAoB,wBAkD/B","sourcesContent":["import { ApprovalType, ApproveTokenParams } from './types';\nimport { getERC20Allowance, getERC20TokenContract } from './common';\nimport { getAddress } from '../../utils/contractAddresses';\n\nexport const approveTokenSpending = async (\n params: ApproveTokenParams,\n): Promise<number> => {\n const underLyingTokenAddress = params.token;\n\n // @todo update once we know this\n const chainId = 80001;\n\n const tokenContract = getERC20TokenContract(\n underLyingTokenAddress,\n params.signer,\n );\n\n const contractProxyAddress =\n params.type === ApprovalType.DEPOSIT\n ? getAddress(chainId, 'core_proxy')\n : getAddress(chainId, 'passive_pool_proxy');\n\n // @todo validate if maxAllowance should be passed from UI\n const maxUint256Bn = BigInt(\n '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n );\n\n const approvalTransaction = await tokenContract\n .approve(contractProxyAddress, maxUint256Bn)\n .catch((error) => {\n console.warn('Transaction Confirmation Error');\n console.error(error);\n throw new Error('Transaction Confirmation Error');\n });\n\n try {\n await approvalTransaction.wait();\n } catch (error) {\n console.warn('Token approval failed');\n throw new Error('Token approval failed');\n }\n\n try {\n return await getERC20Allowance({\n walletAddress: await params.signer.getAddress(),\n tokenAddress: underLyingTokenAddress,\n spenderAddress: contractProxyAddress,\n subject: params.signer,\n });\n } catch (error) {\n console.warn('Fetching allowance failed');\n }\n\n return 0;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"/","sources":["services/token/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkD;AAClD,mCAAwC;AACxC,2CAAuD;AAGhD,IAAM,OAAO,GAAG,UAAC,aAAqB;IAC3C,IAAM,CAAC,GAAG,UAAC,KAAa;QACtB,OAAO,MAAM,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB;AAEK,IAAM,KAAK,GAAG,UAAC,aAAqB;IACzC,IAAM,CAAC,GAAG,UAAC,KAAa;QACtB,OAAO,MAAM,CACX,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAC/D,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB;AAEK,IAAM,qBAAqB,GAAG,UACnC,YAAoB,EACpB,OAAe;IAEf,IAAM,GAAG,GAAa;QACpB,4DAA4D;QAC5D,6DAA6D;QAC7D,qEAAqE;QACrE,2DAA2D;KAC5D,CAAC;IAEF,IAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAIK,IAAM,gBAAgB,GAAG,UAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,WAAW,EAAa,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,IAAM,eAAe,GAAG,UAC7B,oBAA4B;IAM5B,IAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC,oBAAoB,CAAC,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAA+B,OAAO,MAAG,CAAC,CAAC;IAC7D,CAAC;IAEK,IAAA,KAA+B,qBAAY,CAAC,OAAO,CAAC,EAAlD,SAAS,eAAA,EAAE,aAAa,mBAA0B,CAAC;IAE3D,OAAO;QACL,SAAS,WAAA;QACT,aAAa,eAAA;QACb,aAAa,EAAE,IAAA,eAAO,EAAC,aAAa,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,eAAe,mBAoB1B;AAEK,IAAM,iBAAiB,GAAG,UAAO,EAKhB;QAJtB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,OAAO,aAAA;;;;;;oBAED,aAAa,GAAG,IAAA,6BAAqB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC3D,aAAa,GAAK,IAAA,uBAAe,EAAC,YAAY,CAAC,cAAlC,CAAmC;oBAEtC,qBAAM,IAAA,0BAAkB,EAAC;4BACzC,OAAA,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;wBAAtD,CAAsD,CACvD,EAAA;;oBAFK,SAAS,GAAG,SAEjB;oBAED,sBAAO,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;4BACtE,CAAC,CAAC,MAAM,CAAC,gBAAgB;4BACzB,CAAC,CAAC,IAAA,eAAO,EAAC,aAAa,CAAC,CAAC,SAAS,CAAC,EAAC;;;;CACvC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B","sourcesContent":["import { Contract, ethers, Signer } from 'ethers';\nimport { tokenDetails } from './consts';\nimport { exponentialBackoff } from '../../utils/retry';\nimport { GetERC20AllowanceArgs } from './types';\n\nexport const descale = (tokenDecimals: number) => {\n const f = (value: bigint) => {\n return Number(ethers.formatUnits(value.toString(), tokenDecimals));\n };\n\n return f;\n};\n\nexport const scale = (tokenDecimals: number) => {\n const f = (value: number) => {\n return BigInt(\n ethers.parseUnits(value.toFixed(tokenDecimals), tokenDecimals),\n );\n };\n\n return f;\n};\n\nexport const getERC20TokenContract = (\n tokenAddress: string,\n subject: Signer,\n): Contract => {\n const abi: string[] = [\n `function approve(address, uint256) external returns (bool)`,\n `function balanceOf(address) external view returns (uint256)`,\n `function allowance(address,address) external view returns (uint256)`,\n `function approve(address,uint256) external returns (bool)`,\n ];\n\n const contract = new Contract(tokenAddress, abi, subject);\n\n return contract;\n};\n\nexport type Address = Lowercase<string>;\n\nexport const convertToAddress = (str: string): Address => {\n return str.toLowerCase() as Address;\n};\n\nexport const getTokenDetails = (\n caseSensitiveAddress: string,\n): {\n tokenName: Uppercase<string>;\n tokenDecimals: number;\n tokenDescaler: (value: bigint) => number;\n} => {\n const address = convertToAddress(caseSensitiveAddress);\n\n if (!Object.keys(tokenDetails).includes(address)) {\n throw new Error(`Token details not found for ${address}.`);\n }\n\n const { tokenName, tokenDecimals } = tokenDetails[address];\n\n return {\n tokenName,\n tokenDecimals,\n tokenDescaler: descale(tokenDecimals),\n };\n};\n\nexport const getERC20Allowance = async ({\n walletAddress,\n tokenAddress,\n spenderAddress,\n subject,\n}: GetERC20AllowanceArgs): Promise<number> => {\n const tokenContract = getERC20TokenContract(tokenAddress, subject);\n const { tokenDecimals } = getTokenDetails(tokenAddress);\n\n const allowance = await exponentialBackoff(() =>\n tokenContract.allowance(walletAddress, spenderAddress),\n );\n\n return BigInt(allowance) > scale(tokenDecimals)(Number.MAX_SAFE_INTEGER)\n ? Number.MAX_SAFE_INTEGER\n : descale(tokenDecimals)(allowance);\n};\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"/","sources":["services/token/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkD;AAClD,mCAAwC;AACxC,2CAAuD;AAGhD,IAAM,OAAO,GAAG,UAAC,aAAqB;IAC3C,IAAM,CAAC,GAAG,UAAC,KAAa;QACtB,OAAO,MAAM,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB;AAEK,IAAM,KAAK,GAAG,UAAC,aAAqB;IACzC,IAAM,CAAC,GAAG,UAAC,KAAa;QACtB,OAAO,MAAM,CACX,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAC/D,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB;AAEK,IAAM,qBAAqB,GAAG,UACnC,YAAoB,EACpB,OAAe;IAEf,IAAM,GAAG,GAAa;QACpB,4DAA4D;QAC5D,6DAA6D;QAC7D,qEAAqE;QACrE,2DAA2D;KAC5D,CAAC;IAEF,IAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAIK,IAAM,gBAAgB,GAAG,UAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,WAAW,EAAa,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,IAAM,eAAe,GAAG,UAC7B,oBAA4B;IAM5B,IAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC,oBAAoB,CAAC,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAA+B,OAAO,MAAG,CAAC,CAAC;IAC7D,CAAC;IAEK,IAAA,KAA+B,qBAAY,CAAC,OAAO,CAAC,EAAlD,SAAS,eAAA,EAAE,aAAa,mBAA0B,CAAC;IAE3D,OAAO;QACL,SAAS,WAAA;QACT,aAAa,eAAA;QACb,aAAa,EAAE,IAAA,eAAO,EAAC,aAAa,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,eAAe,mBAoB1B;AAEK,IAAM,iBAAiB,GAAG,UAAO,EAKd;QAJxB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,OAAO,aAAA;;;;;;oBAED,aAAa,GAAG,IAAA,6BAAqB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC3D,aAAa,GAAK,IAAA,uBAAe,EAAC,YAAY,CAAC,cAAlC,CAAmC;oBAEtC,qBAAM,IAAA,0BAAkB,EAAC;4BACzC,OAAA,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;wBAAtD,CAAsD,CACvD,EAAA;;oBAFK,SAAS,GAAG,SAEjB;oBAED,sBAAO,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;4BACtE,CAAC,CAAC,MAAM,CAAC,gBAAgB;4BACzB,CAAC,CAAC,IAAA,eAAO,EAAC,aAAa,CAAC,CAAC,SAAS,CAAC,EAAC;;;;CACvC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B","sourcesContent":["import { Contract, ethers, Signer } from 'ethers';\nimport { tokenDetails } from './consts';\nimport { exponentialBackoff } from '../../utils/retry';\nimport { GetERC20AllowanceParams } from './types';\n\nexport const descale = (tokenDecimals: number) => {\n const f = (value: bigint) => {\n return Number(ethers.formatUnits(value.toString(), tokenDecimals));\n };\n\n return f;\n};\n\nexport const scale = (tokenDecimals: number) => {\n const f = (value: number) => {\n return BigInt(\n ethers.parseUnits(value.toFixed(tokenDecimals), tokenDecimals),\n );\n };\n\n return f;\n};\n\nexport const getERC20TokenContract = (\n tokenAddress: string,\n subject: Signer,\n): Contract => {\n const abi: string[] = [\n `function approve(address, uint256) external returns (bool)`,\n `function balanceOf(address) external view returns (uint256)`,\n `function allowance(address,address) external view returns (uint256)`,\n `function approve(address,uint256) external returns (bool)`,\n ];\n\n const contract = new Contract(tokenAddress, abi, subject);\n\n return contract;\n};\n\nexport type Address = Lowercase<string>;\n\nexport const convertToAddress = (str: string): Address => {\n return str.toLowerCase() as Address;\n};\n\nexport const getTokenDetails = (\n caseSensitiveAddress: string,\n): {\n tokenName: Uppercase<string>;\n tokenDecimals: number;\n tokenDescaler: (value: bigint) => number;\n} => {\n const address = convertToAddress(caseSensitiveAddress);\n\n if (!Object.keys(tokenDetails).includes(address)) {\n throw new Error(`Token details not found for ${address}.`);\n }\n\n const { tokenName, tokenDecimals } = tokenDetails[address];\n\n return {\n tokenName,\n tokenDecimals,\n tokenDescaler: descale(tokenDecimals),\n };\n};\n\nexport const getERC20Allowance = async ({\n walletAddress,\n tokenAddress,\n spenderAddress,\n subject,\n}: GetERC20AllowanceParams): Promise<number> => {\n const tokenContract = getERC20TokenContract(tokenAddress, subject);\n const { tokenDecimals } = getTokenDetails(tokenAddress);\n\n const allowance = await exponentialBackoff(() =>\n tokenContract.allowance(walletAddress, spenderAddress),\n );\n\n return BigInt(allowance) > scale(tokenDecimals)(Number.MAX_SAFE_INTEGER)\n ? Number.MAX_SAFE_INTEGER\n : descale(tokenDecimals)(allowance);\n};\n"]}
@@ -41,14 +41,15 @@ var types_1 = require("./types");
41
41
  var common_1 = require("./common");
42
42
  var contractAddresses_1 = require("../../utils/contractAddresses");
43
43
  var getAllowance = function (params) { return __awaiter(void 0, void 0, void 0, function () {
44
- var underLyingTokenAddress, contractProxyAddress, walletAddress, allowance;
44
+ var underLyingTokenAddress, chainId, contractProxyAddress, walletAddress, allowance;
45
45
  return __generator(this, function (_a) {
46
46
  switch (_a.label) {
47
47
  case 0:
48
48
  underLyingTokenAddress = params.token;
49
+ chainId = 80001;
49
50
  contractProxyAddress = params.type === types_1.ApprovalType.DEPOSIT
50
- ? (0, contractAddresses_1.getAddress)(params.chainId, 'core_proxy')
51
- : (0, contractAddresses_1.getAddress)(params.chainId, 'passive_pool_proxy');
51
+ ? (0, contractAddresses_1.getAddress)(chainId, 'core_proxy')
52
+ : (0, contractAddresses_1.getAddress)(chainId, 'passive_pool_proxy');
52
53
  return [4 /*yield*/, params.signer.getAddress()];
53
54
  case 1:
54
55
  walletAddress = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"getAllowance.js","sourceRoot":"/","sources":["services/token/getAllowance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AACzD,mCAA6C;AAC7C,mEAA2D;AAEpD,IAAM,YAAY,GAAG,UAC1B,MAAwB;;;;;gBAElB,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC;gBAEtC,oBAAoB,GACxB,MAAM,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO;oBAClC,CAAC,CAAC,IAAA,8BAAU,EAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;oBAC1C,CAAC,CAAC,IAAA,8BAAU,EAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACzB,qBAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAA;;gBAAxD,aAAa,GAAW,SAAgC;gBAE5C,qBAAM,IAAA,0BAAiB,EAAC;wBACxC,aAAa,eAAA;wBACb,YAAY,EAAE,sBAAsB;wBACpC,cAAc,EAAE,oBAAoB;wBACpC,OAAO,EAAE,MAAM,CAAC,MAAM;qBACvB,CAAC,EAAA;;gBALI,SAAS,GAAG,SAKhB;gBAEF,sBAAO,SAAS,EAAC;;;KAClB,CAAC;AAnBW,QAAA,YAAY,gBAmBvB","sourcesContent":["import { ApprovalType, GetAllowanceArgs } from './types';\nimport { getERC20Allowance } from './common';\nimport { getAddress } from '../../utils/contractAddresses';\n\nexport const getAllowance = async (\n params: GetAllowanceArgs,\n): Promise<number> => {\n const underLyingTokenAddress = params.token;\n\n const contractProxyAddress =\n params.type === ApprovalType.DEPOSIT\n ? getAddress(params.chainId, 'core_proxy')\n : getAddress(params.chainId, 'passive_pool_proxy');\n const walletAddress: string = await params.signer.getAddress();\n\n const allowance = await getERC20Allowance({\n walletAddress,\n tokenAddress: underLyingTokenAddress,\n spenderAddress: contractProxyAddress,\n subject: params.signer,\n });\n\n return allowance;\n};\n"]}
1
+ {"version":3,"file":"getAllowance.js","sourceRoot":"/","sources":["services/token/getAllowance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA2D;AAC3D,mCAA6C;AAC7C,mEAA2D;AAEpD,IAAM,YAAY,GAAG,UAC1B,MAA0B;;;;;gBAEpB,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC;gBAGtC,OAAO,GAAG,KAAK,CAAC;gBAEhB,oBAAoB,GACxB,MAAM,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO;oBAClC,CAAC,CAAC,IAAA,8BAAU,EAAC,OAAO,EAAE,YAAY,CAAC;oBACnC,CAAC,CAAC,IAAA,8BAAU,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAClB,qBAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAA;;gBAAxD,aAAa,GAAW,SAAgC;gBAE5C,qBAAM,IAAA,0BAAiB,EAAC;wBACxC,aAAa,eAAA;wBACb,YAAY,EAAE,sBAAsB;wBACpC,cAAc,EAAE,oBAAoB;wBACpC,OAAO,EAAE,MAAM,CAAC,MAAM;qBACvB,CAAC,EAAA;;gBALI,SAAS,GAAG,SAKhB;gBAEF,sBAAO,SAAS,EAAC;;;KAClB,CAAC;AAtBW,QAAA,YAAY,gBAsBvB","sourcesContent":["import { ApprovalType, GetAllowanceParams } from './types';\nimport { getERC20Allowance } from './common';\nimport { getAddress } from '../../utils/contractAddresses';\n\nexport const getAllowance = async (\n params: GetAllowanceParams,\n): Promise<number> => {\n const underLyingTokenAddress = params.token;\n\n // @todo update\n const chainId = 80001;\n\n const contractProxyAddress =\n params.type === ApprovalType.DEPOSIT\n ? getAddress(chainId, 'core_proxy')\n : getAddress(chainId, 'passive_pool_proxy');\n const walletAddress: string = await params.signer.getAddress();\n\n const allowance = await getERC20Allowance({\n walletAddress,\n tokenAddress: underLyingTokenAddress,\n spenderAddress: contractProxyAddress,\n subject: params.signer,\n });\n\n return allowance;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAAE,CAAA;IACF,qDAAO,CAAA;AACT,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport enum ApprovalType {\n LP,\n DEPOSIT,\n}\n\nexport type ApproveTokenArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n token: string;\n type: ApprovalType;\n};\n\nexport type GetAllowanceArgs = {\n signer: Signer | JsonRpcSigner;\n chainId: number;\n token: string;\n type: ApprovalType;\n};\n\nexport type GetERC20AllowanceArgs = {\n walletAddress: string;\n tokenAddress: string;\n spenderAddress: string;\n subject: Signer;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAAE,CAAA;IACF,qDAAO,CAAA;AACT,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\n\nexport enum ApprovalType {\n LP,\n DEPOSIT,\n}\n\nexport type ApproveTokenParams = {\n signer: Signer | JsonRpcSigner;\n token: string; // token address\n type: ApprovalType;\n};\n\nexport type GetAllowanceParams = {\n signer: Signer | JsonRpcSigner;\n token: string; // token address\n type: ApprovalType;\n};\n\nexport type GetERC20AllowanceParams = {\n walletAddress: string;\n tokenAddress: string; // LP POOL entity tokean address\n spenderAddress: string;\n subject: Signer;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { ProvideLiquidityArgs, RemoveLiquidityArgs } from './types';
2
- export declare const provideLiquidity: (params: ProvideLiquidityArgs) => Promise<unknown>;
3
- export declare const removeLiquidity: (params: RemoveLiquidityArgs) => Promise<unknown>;
1
+ import { ProvideLiquidityParams, ProvideLiquidityResult, RemoveLiquidityParams, RemoveLiquidityResult } from './types';
2
+ export declare const provideLiquidity: (params: ProvideLiquidityParams) => Promise<ProvideLiquidityResult>;
3
+ export declare const removeLiquidity: (params: RemoveLiquidityParams) => Promise<RemoveLiquidityResult>;
4
4
  //# sourceMappingURL=lp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lp.d.ts","sourceRoot":"/","sources":["services/lp/lp.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,gBAAgB,WACnB,oBAAoB,KAC3B,QAAQ,OAAO,CAkBjB,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,mBAAmB,KAC1B,QAAQ,OAAO,CAiBjB,CAAC"}
1
+ {"version":3,"file":"lp.d.ts","sourceRoot":"/","sources":["services/lp/lp.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAQjB,eAAO,MAAM,gBAAgB,WACnB,sBAAsB,KAC7B,QAAQ,sBAAsB,CA8BhC,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,qBAAqB,KAC5B,QAAQ,qBAAqB,CA4B/B,CAAC"}
@@ -1,17 +1,18 @@
1
1
  import { JsonRpcSigner, Signer } from 'ethers';
2
- export type ProvideLiquidityArgs = {
2
+ export type ProvideLiquidityParams = {
3
3
  signer: Signer | JsonRpcSigner;
4
- chainId: number;
5
- poolId: number;
6
- owner: string;
7
4
  amount: number;
8
- minShares: number;
5
+ poolId: number;
9
6
  };
10
- export type RemoveLiquidityArgs = {
7
+ export type RemoveLiquidityParams = {
11
8
  signer: Signer | JsonRpcSigner;
12
- chainId: number;
13
9
  poolId: number;
14
10
  sharesAmount: number;
15
- minOut: number;
11
+ };
12
+ export type ProvideLiquidityResult = {
13
+ transactionHash: string | null;
14
+ };
15
+ export type RemoveLiquidityResult = {
16
+ transactionHash: string | null;
16
17
  };
17
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { CreateAccountArgs } from './types';
2
- export declare const createAccount: (params: CreateAccountArgs) => Promise<unknown>;
1
+ import { CreateAccountParams } from './types';
2
+ export declare const createAccount: (params: CreateAccountParams) => Promise<unknown>;
3
3
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"/","sources":["services/margin-accounts/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,eAAO,MAAM,aAAa,WAChB,iBAAiB,KACxB,QAAQ,OAAO,CAejB,CAAC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"/","sources":["services/margin-accounts/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,aAAa,WAChB,mBAAmB,KAC1B,QAAQ,OAAO,CAejB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { DepositArgs } from './types';
2
- export declare const deposit: (params: DepositArgs) => Promise<unknown>;
1
+ import { DepositParams } from './types';
2
+ export declare const deposit: (params: DepositParams) => Promise<unknown>;
3
3
  //# sourceMappingURL=deposit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.d.ts","sourceRoot":"/","sources":["services/margin-accounts/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,eAAO,MAAM,OAAO,WAAkB,WAAW,KAAG,QAAQ,OAAO,CAmBlE,CAAC"}
1
+ {"version":3,"file":"deposit.d.ts","sourceRoot":"/","sources":["services/margin-accounts/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKxC,eAAO,MAAM,OAAO,WAAkB,aAAa,KAAG,QAAQ,OAAO,CAmBpE,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { JsonRpcSigner, Signer } from 'ethers';
2
- export type CreateAccountArgs = {
2
+ export type CreateAccountParams = {
3
3
  signer: Signer | JsonRpcSigner;
4
4
  chainId: number;
5
5
  ownerAddress: string;
6
6
  };
7
- export type DepositArgs = {
7
+ export type DepositParams = {
8
8
  signer: Signer | JsonRpcSigner;
9
9
  chainId: number;
10
10
  accountId: number;
@@ -13,7 +13,7 @@ export type DepositArgs = {
13
13
  marketId: number;
14
14
  exchangeId: number;
15
15
  };
16
- export type WithdrawArgs = {
16
+ export type WithdrawParams = {
17
17
  signer: Signer | JsonRpcSigner;
18
18
  chainId: number;
19
19
  accountId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { WithdrawArgs } from './types';
2
- export declare const withdraw: (params: WithdrawArgs) => Promise<unknown>;
1
+ import { WithdrawParams } from './types';
2
+ export declare const withdraw: (params: WithdrawParams) => Promise<unknown>;
3
3
  //# sourceMappingURL=withdraw.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,eAAO,MAAM,QAAQ,WAAkB,YAAY,KAAG,QAAQ,OAAO,CAmBpE,CAAC"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,eAAO,MAAM,QAAQ,WAAkB,cAAc,KAAG,QAAQ,OAAO,CAmBtE,CAAC"}
@@ -1,3 +1,3 @@
1
- import { MatchOrderArgs, MatchOrderResult } from './types';
2
- export declare const matchOrder: (params: MatchOrderArgs) => Promise<MatchOrderResult>;
1
+ import { MatchOrderParams, MatchOrderResult } from './types';
2
+ export declare const matchOrder: (params: MatchOrderParams) => Promise<MatchOrderResult>;
3
3
  //# sourceMappingURL=order.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"order.d.ts","sourceRoot":"/","sources":["services/orders/order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAS3D,eAAO,MAAM,UAAU,WACb,cAAc,KACrB,QAAQ,gBAAgB,CAoC1B,CAAC"}
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"/","sources":["services/orders/order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAS7D,eAAO,MAAM,UAAU,WACb,gBAAgB,KACvB,QAAQ,gBAAgB,CAoC1B,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { Signer, JsonRpcSigner } from 'ethers';
2
- export type MarketArg = {
2
+ export type MarketParams = {
3
3
  id: number;
4
4
  exchangeId: number;
5
5
  counterpartyAccountIds: number[];
6
6
  currentPrice: number;
7
7
  };
8
- export type MatchOrderArgs = {
8
+ export type MatchOrderParams = {
9
9
  signer: Signer | JsonRpcSigner;
10
10
  marginAccountId: number;
11
- orderSize: bigint;
12
- market: MarketArg;
11
+ orderSize: number;
12
+ market: MarketParams;
13
13
  };
14
14
  export type MatchOrderResult = {
15
15
  transactionHash: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/orders/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/orders/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { ApproveTokenArgs } from './types';
2
- export declare const approveTokenSpending: (params: ApproveTokenArgs) => Promise<number>;
1
+ import { ApproveTokenParams } from './types';
2
+ export declare const approveTokenSpending: (params: ApproveTokenParams) => Promise<number>;
3
3
  //# sourceMappingURL=approve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approve.d.ts","sourceRoot":"/","sources":["services/token/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIzD,eAAO,MAAM,oBAAoB,WACvB,gBAAgB,KACvB,QAAQ,MAAM,CA6ChB,CAAC"}
1
+ {"version":3,"file":"approve.d.ts","sourceRoot":"/","sources":["services/token/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI3D,eAAO,MAAM,oBAAoB,WACvB,kBAAkB,KACzB,QAAQ,MAAM,CAgDhB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Contract, Signer } from 'ethers';
2
- import { GetERC20AllowanceArgs } from './types';
2
+ import { GetERC20AllowanceParams } from './types';
3
3
  export declare const descale: (tokenDecimals: number) => (value: bigint) => number;
4
4
  export declare const scale: (tokenDecimals: number) => (value: number) => bigint;
5
5
  export declare const getERC20TokenContract: (tokenAddress: string, subject: Signer) => Contract;
@@ -10,5 +10,5 @@ export declare const getTokenDetails: (caseSensitiveAddress: string) => {
10
10
  tokenDecimals: number;
11
11
  tokenDescaler: (value: bigint) => number;
12
12
  };
13
- export declare const getERC20Allowance: ({ walletAddress, tokenAddress, spenderAddress, subject, }: GetERC20AllowanceArgs) => Promise<number>;
13
+ export declare const getERC20Allowance: ({ walletAddress, tokenAddress, spenderAddress, subject, }: GetERC20AllowanceParams) => Promise<number>;
14
14
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"/","sources":["services/token/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,OAAO,kBAAmB,MAAM,aACzB,MAAM,WAKzB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAmB,MAAM,aACvB,MAAM,WAOzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,iBAClB,MAAM,WACX,MAAM,KACd,QAWF,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAExC,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,OAE9C,CAAC;AAEF,eAAO,MAAM,eAAe,yBACJ,MAAM;eAEjB,UAAU,MAAM,CAAC;mBACb,MAAM;2BACE,MAAM,KAAK,MAAM;CAezC,CAAC;AAEF,eAAO,MAAM,iBAAiB,8DAK3B,qBAAqB,KAAG,QAAQ,MAAM,CAWxC,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"/","sources":["services/token/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,OAAO,kBAAmB,MAAM,aACzB,MAAM,WAKzB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAmB,MAAM,aACvB,MAAM,WAOzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,iBAClB,MAAM,WACX,MAAM,KACd,QAWF,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAExC,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,OAE9C,CAAC;AAEF,eAAO,MAAM,eAAe,yBACJ,MAAM;eAEjB,UAAU,MAAM,CAAC;mBACb,MAAM;2BACE,MAAM,KAAK,MAAM;CAezC,CAAC;AAEF,eAAO,MAAM,iBAAiB,8DAK3B,uBAAuB,KAAG,QAAQ,MAAM,CAW1C,CAAC"}
@@ -1,3 +1,3 @@
1
- import { GetAllowanceArgs } from './types';
2
- export declare const getAllowance: (params: GetAllowanceArgs) => Promise<number>;
1
+ import { GetAllowanceParams } from './types';
2
+ export declare const getAllowance: (params: GetAllowanceParams) => Promise<number>;
3
3
  //# sourceMappingURL=getAllowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllowance.d.ts","sourceRoot":"/","sources":["services/token/getAllowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIzD,eAAO,MAAM,YAAY,WACf,gBAAgB,KACvB,QAAQ,MAAM,CAiBhB,CAAC"}
1
+ {"version":3,"file":"getAllowance.d.ts","sourceRoot":"/","sources":["services/token/getAllowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI3D,eAAO,MAAM,YAAY,WACf,kBAAkB,KACzB,QAAQ,MAAM,CAoBhB,CAAC"}
@@ -3,19 +3,17 @@ export declare enum ApprovalType {
3
3
  LP = 0,
4
4
  DEPOSIT = 1
5
5
  }
6
- export type ApproveTokenArgs = {
6
+ export type ApproveTokenParams = {
7
7
  signer: Signer | JsonRpcSigner;
8
- chainId: number;
9
8
  token: string;
10
9
  type: ApprovalType;
11
10
  };
12
- export type GetAllowanceArgs = {
11
+ export type GetAllowanceParams = {
13
12
  signer: Signer | JsonRpcSigner;
14
- chainId: number;
15
13
  token: string;
16
14
  type: ApprovalType;
17
15
  };
18
- export type GetERC20AllowanceArgs = {
16
+ export type GetERC20AllowanceParams = {
19
17
  walletAddress: string;
20
18
  tokenAddress: string;
21
19
  spenderAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,oBAAY,YAAY;IACtB,EAAE,IAAA;IACF,OAAO,IAAA;CACR;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,oBAAY,YAAY;IACtB,EAAE,IAAA;IACF,OAAO,IAAA;CACR;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function calculateMinSharesForLp(lpAmount: number): number;
2
+ export declare function calculateMinOutForLp(sharesAmount: number): number;
3
+ export declare function expandLpAmount(amount: number): number;
4
+ //# sourceMappingURL=lp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.d.ts","sourceRoot":"/","sources":["utils/lp.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD"}
@@ -1,3 +1,3 @@
1
- export declare function calculatePriceLimitForTrade(orderPrice: number, size: bigint): bigint;
2
- export declare function calculateOrderBaseFromOrderSize(orderSize: bigint, currentPrice: number): bigint;
1
+ export declare function calculatePriceLimitForTrade(orderPrice: number, size: number): bigint;
2
+ export declare function calculateOrderBaseFromOrderSize(orderSize: number, currentPrice: number): bigint;
3
3
  //# sourceMappingURL=trade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trade.d.ts","sourceRoot":"/","sources":["utils/trade.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,CAeR;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAOR"}
1
+ {"version":3,"file":"trade.d.ts","sourceRoot":"/","sources":["utils/trade.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,CAkBR;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAUR"}
@@ -0,0 +1,28 @@
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.expandLpAmount = exports.calculateMinOutForLp = exports.calculateMinSharesForLp = void 0;
7
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ function calculateMinSharesForLp(lpAmount) {
9
+ var amount = (0, bignumber_js_1.default)(lpAmount);
10
+ // Calculate 1% // @todo update this number once we have it
11
+ var offset = amount.times(0.99);
12
+ return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed
13
+ }
14
+ exports.calculateMinSharesForLp = calculateMinSharesForLp;
15
+ function calculateMinOutForLp(sharesAmount) {
16
+ var amount = (0, bignumber_js_1.default)(sharesAmount);
17
+ // Calculate 1% // @todo update once we have the exact number
18
+ var offset = amount.times(0.99);
19
+ return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed
20
+ }
21
+ exports.calculateMinOutForLp = calculateMinOutForLp;
22
+ function expandLpAmount(amount) {
23
+ var decimalFactor = (0, bignumber_js_1.default)('1000000'); // 10^6
24
+ var amountDenormalised = (0, bignumber_js_1.default)(amount).times(decimalFactor).toFixed(0);
25
+ return Number(amountDenormalised);
26
+ }
27
+ exports.expandLpAmount = expandLpAmount;
28
+ //# sourceMappingURL=lp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.js","sourceRoot":"/","sources":["utils/lp.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqC;AAErC,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,IAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC;IAEnC,2DAA2D;IAC3D,IAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,6CAA6C;AAClG,CAAC;AAPD,0DAOC;AAED,SAAgB,oBAAoB,CAAC,YAAoB;IACvD,IAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;IAEvC,6DAA6D;IAC7D,IAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,6CAA6C;AAClG,CAAC;AAPD,oDAOC;AAED,SAAgB,cAAc,CAAC,MAAc;IAC3C,IAAM,aAAa,GAAG,IAAA,sBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO;IAEnD,IAAM,kBAAkB,GAAG,IAAA,sBAAS,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACpC,CAAC;AAND,wCAMC","sourcesContent":["import BigNumber from 'bignumber.js';\n\nexport function calculateMinSharesForLp(lpAmount: number): number {\n const amount = BigNumber(lpAmount);\n\n // Calculate 1% // @todo update this number once we have it\n const offset = amount.times(0.99);\n\n return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed\n}\n\nexport function calculateMinOutForLp(sharesAmount: number): number {\n const amount = BigNumber(sharesAmount);\n\n // Calculate 1% // @todo update once we have the exact number\n const offset = amount.times(0.99);\n\n return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed\n}\n\nexport function expandLpAmount(amount: number): number {\n const decimalFactor = BigNumber('1000000'); // 10^6\n\n const amountDenormalised = BigNumber(amount).times(decimalFactor).toFixed(0);\n\n return Number(amountDenormalised);\n}\n"]}
@@ -1,27 +1,33 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.calculateOrderBaseFromOrderSize = exports.calculatePriceLimitForTrade = void 0;
7
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
4
8
  function calculatePriceLimitForTrade(orderPrice, size) {
5
9
  // Ensure orderPrice is BigInt
6
- var orderPriceBigInt = BigInt(orderPrice);
10
+ var orderPriceBigInt = (0, bignumber_js_1.default)(orderPrice);
7
11
  // Calculate 50% of the order price
8
- var offset = orderPriceBigInt / BigInt(2);
12
+ var offset = orderPriceBigInt.div(2);
9
13
  // Determine if the size is positive or negative and adjust the price accordingly
10
14
  if (size > 0) {
11
15
  // Trade is long, so add
12
- return (orderPriceBigInt + offset) * BigInt(1e18);
16
+ return BigInt((0, bignumber_js_1.default)(orderPriceBigInt).plus(offset).times(1e18).toFixed(0));
13
17
  }
14
18
  else {
15
- // Trade is short, so subtract
16
- return (orderPriceBigInt - offset) * BigInt(1e18);
19
+ return BigInt((0, bignumber_js_1.default)(orderPriceBigInt).minus(offset).times(1e18).toFixed(0));
17
20
  }
18
21
  }
19
22
  exports.calculatePriceLimitForTrade = calculatePriceLimitForTrade;
20
23
  function calculateOrderBaseFromOrderSize(orderSize, currentPrice) {
21
- var decimalFactor = BigInt('1000000'); // 10^6
22
- // @todo check decimal places handling
23
- var orderBase = (orderSize * decimalFactor) / BigInt(currentPrice);
24
- return orderBase;
24
+ var decimalFactor = (0, bignumber_js_1.default)('1000000'); // 10^6
25
+ // @todo check decimal places handling if this should stay hardcoded to 6
26
+ var orderBase = (0, bignumber_js_1.default)(orderSize)
27
+ .times(decimalFactor)
28
+ .div(currentPrice)
29
+ .toFixed(0);
30
+ return BigInt(orderBase);
25
31
  }
26
32
  exports.calculateOrderBaseFromOrderSize = calculateOrderBaseFromOrderSize;
27
33
  //# sourceMappingURL=trade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trade.js","sourceRoot":"/","sources":["utils/trade.ts"],"names":[],"mappings":";;;AAAA,SAAgB,2BAA2B,CACzC,UAAkB,EAClB,IAAY;IAEZ,8BAA8B;IAC9B,IAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE5C,mCAAmC;IACnC,IAAM,MAAM,GAAG,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE5C,iFAAiF;IACjF,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,wBAAwB;QACxB,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,8BAA8B;QAC9B,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAlBD,kEAkBC;AAED,SAAgB,+BAA+B,CAC7C,SAAiB,EACjB,YAAoB;IAEpB,IAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;IAChD,sCAAsC;IAEtC,IAAM,SAAS,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAErE,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,0EAUC","sourcesContent":["export function calculatePriceLimitForTrade(\n orderPrice: number,\n size: bigint,\n): bigint {\n // Ensure orderPrice is BigInt\n const orderPriceBigInt = BigInt(orderPrice);\n\n // Calculate 50% of the order price\n const offset = orderPriceBigInt / BigInt(2);\n\n // Determine if the size is positive or negative and adjust the price accordingly\n if (size > 0) {\n // Trade is long, so add\n return (orderPriceBigInt + offset) * BigInt(1e18);\n } else {\n // Trade is short, so subtract\n return (orderPriceBigInt - offset) * BigInt(1e18);\n }\n}\n\nexport function calculateOrderBaseFromOrderSize(\n orderSize: bigint,\n currentPrice: number,\n): bigint {\n const decimalFactor = BigInt('1000000'); // 10^6\n // @todo check decimal places handling\n\n const orderBase = (orderSize * decimalFactor) / BigInt(currentPrice);\n\n return orderBase;\n}\n"]}
1
+ {"version":3,"file":"trade.js","sourceRoot":"/","sources":["utils/trade.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqC;AAErC,SAAgB,2BAA2B,CACzC,UAAkB,EAClB,IAAY;IAEZ,8BAA8B;IAC9B,IAAM,gBAAgB,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;IAE/C,mCAAmC;IACnC,IAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvC,iFAAiF;IACjF,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,wBAAwB;QACxB,OAAO,MAAM,CACX,IAAA,sBAAS,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAChE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CACX,IAAA,sBAAS,EAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AArBD,kEAqBC;AAED,SAAgB,+BAA+B,CAC7C,SAAiB,EACjB,YAAoB;IAEpB,IAAM,aAAa,GAAG,IAAA,sBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO;IACnD,yEAAyE;IAEzE,IAAM,SAAS,GAAG,IAAA,sBAAS,EAAC,SAAS,CAAC;SACnC,KAAK,CAAC,aAAa,CAAC;SACpB,GAAG,CAAC,YAAY,CAAC;SACjB,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAbD,0EAaC","sourcesContent":["import BigNumber from 'bignumber.js';\n\nexport function calculatePriceLimitForTrade(\n orderPrice: number,\n size: number,\n): bigint {\n // Ensure orderPrice is BigInt\n const orderPriceBigInt = BigNumber(orderPrice);\n\n // Calculate 50% of the order price\n const offset = orderPriceBigInt.div(2);\n\n // Determine if the size is positive or negative and adjust the price accordingly\n if (size > 0) {\n // Trade is long, so add\n return BigInt(\n BigNumber(orderPriceBigInt).plus(offset).times(1e18).toFixed(0),\n );\n } else {\n return BigInt(\n BigNumber(orderPriceBigInt).minus(offset).times(1e18).toFixed(0),\n );\n }\n}\n\nexport function calculateOrderBaseFromOrderSize(\n orderSize: number,\n currentPrice: number,\n): bigint {\n const decimalFactor = BigNumber('1000000'); // 10^6\n // @todo check decimal places handling if this should stay hardcoded to 6\n\n const orderBase = BigNumber(orderSize)\n .times(decimalFactor)\n .div(currentPrice)\n .toFixed(0);\n\n return BigInt(orderBase);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/sdk",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -29,8 +29,9 @@
29
29
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
30
30
  },
31
31
  "dependencies": {
32
+ "bignumber.js": "^9.1.2",
32
33
  "ethers": "6.9.0"
33
34
  },
34
35
  "packageManager": "pnpm@8.10.4",
35
- "gitHead": "c93a765b3c4e44a13d3f96237342d0508fe55a71"
36
+ "gitHead": "9f810c7953f01af4fa09087b604e8c99007b0de0"
36
37
  }
@@ -3,48 +3,81 @@ import {
3
3
  encodeProvideLiquidityCall,
4
4
  encodeRemoveLiquidityCall,
5
5
  } from './encode';
6
- import { ProvideLiquidityArgs, RemoveLiquidityArgs } from './types';
6
+ import {
7
+ ProvideLiquidityParams,
8
+ ProvideLiquidityResult,
9
+ RemoveLiquidityParams,
10
+ RemoveLiquidityResult,
11
+ } from './types';
7
12
  import { TransactionType } from '../../utils/consts';
13
+ import {
14
+ calculateMinOutForLp,
15
+ calculateMinSharesForLp,
16
+ expandLpAmount,
17
+ } from '../../utils/lp';
8
18
 
9
19
  export const provideLiquidity = async (
10
- params: ProvideLiquidityArgs,
11
- ): Promise<unknown> => {
12
- // @todo update type once we agree on the structure
20
+ params: ProvideLiquidityParams,
21
+ ): Promise<ProvideLiquidityResult> => {
22
+ const ownerAddrees = await params.signer.getAddress();
23
+ // @todo we might not have chainId for reya network, update once we have information
24
+ const chainId = 80001;
25
+ const minShares = calculateMinSharesForLp(params.amount);
26
+
27
+ if (params.amount === 0) {
28
+ throw new Error('LP amount can not be 0');
29
+ }
30
+
31
+ const amount = expandLpAmount(params.amount);
32
+
13
33
  const { calldata: data, value } = encodeProvideLiquidityCall(
14
34
  params.poolId,
15
- params.owner,
16
- params.amount,
17
- params.minShares,
35
+ ownerAddrees,
36
+ amount,
37
+ minShares,
18
38
  );
19
39
 
20
40
  const result = await executeTransaction(
21
41
  params.signer,
22
42
  data,
23
43
  value,
24
- params.chainId,
44
+ chainId,
25
45
  TransactionType.LP,
26
46
  );
27
47
 
28
- return result;
48
+ return {
49
+ transactionHash: result?.hash || null,
50
+ };
29
51
  };
30
52
 
31
53
  export const removeLiquidity = async (
32
- params: RemoveLiquidityArgs,
33
- ): Promise<unknown> => {
34
- // @todo update type once we agree on the structure
54
+ params: RemoveLiquidityParams,
55
+ ): Promise<RemoveLiquidityResult> => {
56
+ // @todo we might not have chainId for reya nework, update once we have information
57
+ const chainId = 80001;
58
+
59
+ if (params.sharesAmount === 0) {
60
+ throw new Error('Shares amount can not be 0');
61
+ }
62
+
63
+ const minOut = calculateMinOutForLp(params.sharesAmount);
64
+
65
+ const amount = expandLpAmount(params.sharesAmount);
35
66
  const { calldata: data, value } = encodeRemoveLiquidityCall(
36
67
  params.poolId,
37
- params.sharesAmount,
38
- params.minOut,
68
+ amount,
69
+ minOut,
39
70
  );
40
71
 
41
72
  const result = await executeTransaction(
42
73
  params.signer,
43
74
  data,
44
75
  value,
45
- params.chainId,
76
+ chainId,
46
77
  TransactionType.LP,
47
78
  );
48
79
 
49
- return result;
80
+ return {
81
+ transactionHash: result?.hash || null,
82
+ };
50
83
  };
@@ -1,18 +1,21 @@
1
1
  import { JsonRpcSigner, Signer } from 'ethers';
2
2
 
3
- export type ProvideLiquidityArgs = {
3
+ export type ProvideLiquidityParams = {
4
4
  signer: Signer | JsonRpcSigner;
5
- chainId: number;
6
- poolId: number;
7
- owner: string;
8
5
  amount: number;
9
- minShares: number;
6
+ poolId: number;
10
7
  };
11
8
 
12
- export type RemoveLiquidityArgs = {
9
+ export type RemoveLiquidityParams = {
13
10
  signer: Signer | JsonRpcSigner;
14
- chainId: number;
15
11
  poolId: number;
16
12
  sharesAmount: number;
17
- minOut: number;
13
+ };
14
+
15
+ export type ProvideLiquidityResult = {
16
+ transactionHash: string | null;
17
+ };
18
+
19
+ export type RemoveLiquidityResult = {
20
+ transactionHash: string | null;
18
21
  };
@@ -1,10 +1,10 @@
1
1
  import { executeTransaction } from '../executeTransaction';
2
2
  import { encodeCreateAccountCall } from './encode';
3
- import { CreateAccountArgs } from './types';
3
+ import { CreateAccountParams } from './types';
4
4
  import { TransactionType } from '../../utils/consts';
5
5
 
6
6
  export const createAccount = async (
7
- params: CreateAccountArgs,
7
+ params: CreateAccountParams,
8
8
  ): Promise<unknown> => {
9
9
  // @todo update type once we agree on the structure
10
10
  const { calldata: data, value } = encodeCreateAccountCall(
@@ -1,9 +1,9 @@
1
- import { DepositArgs } from './types';
1
+ import { DepositParams } from './types';
2
2
  import { encodeDeposit } from './encode';
3
3
  import { executeTransaction } from '../executeTransaction';
4
4
  import { TransactionType } from '../../utils/consts';
5
5
 
6
- export const deposit = async (params: DepositArgs): Promise<unknown> => {
6
+ export const deposit = async (params: DepositParams): Promise<unknown> => {
7
7
  // @todo update type once we agree on the structure
8
8
  const { calldata: data, value } = encodeDeposit(
9
9
  params.accountId,
@@ -1,12 +1,12 @@
1
1
  import { JsonRpcSigner, Signer } from 'ethers';
2
2
 
3
- export type CreateAccountArgs = {
3
+ export type CreateAccountParams = {
4
4
  signer: Signer | JsonRpcSigner;
5
5
  chainId: number;
6
6
  ownerAddress: string;
7
7
  };
8
8
 
9
- export type DepositArgs = {
9
+ export type DepositParams = {
10
10
  signer: Signer | JsonRpcSigner;
11
11
  chainId: number;
12
12
  accountId: number;
@@ -16,7 +16,7 @@ export type DepositArgs = {
16
16
  exchangeId: number;
17
17
  };
18
18
 
19
- export type WithdrawArgs = {
19
+ export type WithdrawParams = {
20
20
  signer: Signer | JsonRpcSigner;
21
21
  chainId: number;
22
22
  accountId: number;
@@ -1,9 +1,9 @@
1
- import { WithdrawArgs } from './types';
1
+ import { WithdrawParams } from './types';
2
2
  import { encodeWithdraw } from './encode';
3
3
  import { executeTransaction } from '../executeTransaction';
4
4
  import { TransactionType } from '../../utils/consts';
5
5
 
6
- export const withdraw = async (params: WithdrawArgs): Promise<unknown> => {
6
+ export const withdraw = async (params: WithdrawParams): Promise<unknown> => {
7
7
  // @todo update type once we agree on the structure
8
8
  const { calldata: data, value } = encodeWithdraw(
9
9
  params.accountId,
@@ -1,4 +1,4 @@
1
- import { MatchOrderArgs, MatchOrderResult } from './types';
1
+ import { MatchOrderParams, MatchOrderResult } from './types';
2
2
  import { encodeMatchOrder } from './encode';
3
3
  import { executeTransaction } from '../executeTransaction';
4
4
  import { TransactionType } from '../../utils/consts';
@@ -8,9 +8,9 @@ import {
8
8
  } from '../../utils/trade';
9
9
 
10
10
  export const matchOrder = async (
11
- params: MatchOrderArgs,
11
+ params: MatchOrderParams,
12
12
  ): Promise<MatchOrderResult> => {
13
- if (params.orderSize === BigInt(0)) {
13
+ if (params.orderSize === 0) {
14
14
  throw new Error('Position size can not be 0');
15
15
  }
16
16
  const orderPriceLimit = calculatePriceLimitForTrade(
@@ -1,17 +1,17 @@
1
1
  import { Signer, JsonRpcSigner } from 'ethers';
2
2
 
3
- export type MarketArg = {
3
+ export type MarketParams = {
4
4
  id: number;
5
5
  exchangeId: number;
6
6
  counterpartyAccountIds: number[];
7
7
  currentPrice: number;
8
8
  };
9
9
 
10
- export type MatchOrderArgs = {
10
+ export type MatchOrderParams = {
11
11
  signer: Signer | JsonRpcSigner;
12
12
  marginAccountId: number;
13
- orderSize: bigint;
14
- market: MarketArg;
13
+ orderSize: number;
14
+ market: MarketParams;
15
15
  };
16
16
 
17
17
  export type MatchOrderResult = {
@@ -1,12 +1,15 @@
1
- import { ApprovalType, ApproveTokenArgs } from './types';
1
+ import { ApprovalType, ApproveTokenParams } from './types';
2
2
  import { getERC20Allowance, getERC20TokenContract } from './common';
3
3
  import { getAddress } from '../../utils/contractAddresses';
4
4
 
5
5
  export const approveTokenSpending = async (
6
- params: ApproveTokenArgs,
6
+ params: ApproveTokenParams,
7
7
  ): Promise<number> => {
8
8
  const underLyingTokenAddress = params.token;
9
9
 
10
+ // @todo update once we know this
11
+ const chainId = 80001;
12
+
10
13
  const tokenContract = getERC20TokenContract(
11
14
  underLyingTokenAddress,
12
15
  params.signer,
@@ -14,8 +17,8 @@ export const approveTokenSpending = async (
14
17
 
15
18
  const contractProxyAddress =
16
19
  params.type === ApprovalType.DEPOSIT
17
- ? getAddress(params.chainId, 'core_proxy')
18
- : getAddress(params.chainId, 'passive_pool_proxy');
20
+ ? getAddress(chainId, 'core_proxy')
21
+ : getAddress(chainId, 'passive_pool_proxy');
19
22
 
20
23
  // @todo validate if maxAllowance should be passed from UI
21
24
  const maxUint256Bn = BigInt(
@@ -1,7 +1,7 @@
1
1
  import { Contract, ethers, Signer } from 'ethers';
2
2
  import { tokenDetails } from './consts';
3
3
  import { exponentialBackoff } from '../../utils/retry';
4
- import { GetERC20AllowanceArgs } from './types';
4
+ import { GetERC20AllowanceParams } from './types';
5
5
 
6
6
  export const descale = (tokenDecimals: number) => {
7
7
  const f = (value: bigint) => {
@@ -70,7 +70,7 @@ export const getERC20Allowance = async ({
70
70
  tokenAddress,
71
71
  spenderAddress,
72
72
  subject,
73
- }: GetERC20AllowanceArgs): Promise<number> => {
73
+ }: GetERC20AllowanceParams): Promise<number> => {
74
74
  const tokenContract = getERC20TokenContract(tokenAddress, subject);
75
75
  const { tokenDecimals } = getTokenDetails(tokenAddress);
76
76
 
@@ -1,16 +1,19 @@
1
- import { ApprovalType, GetAllowanceArgs } from './types';
1
+ import { ApprovalType, GetAllowanceParams } from './types';
2
2
  import { getERC20Allowance } from './common';
3
3
  import { getAddress } from '../../utils/contractAddresses';
4
4
 
5
5
  export const getAllowance = async (
6
- params: GetAllowanceArgs,
6
+ params: GetAllowanceParams,
7
7
  ): Promise<number> => {
8
8
  const underLyingTokenAddress = params.token;
9
9
 
10
+ // @todo update
11
+ const chainId = 80001;
12
+
10
13
  const contractProxyAddress =
11
14
  params.type === ApprovalType.DEPOSIT
12
- ? getAddress(params.chainId, 'core_proxy')
13
- : getAddress(params.chainId, 'passive_pool_proxy');
15
+ ? getAddress(chainId, 'core_proxy')
16
+ : getAddress(chainId, 'passive_pool_proxy');
14
17
  const walletAddress: string = await params.signer.getAddress();
15
18
 
16
19
  const allowance = await getERC20Allowance({
@@ -5,23 +5,21 @@ export enum ApprovalType {
5
5
  DEPOSIT,
6
6
  }
7
7
 
8
- export type ApproveTokenArgs = {
8
+ export type ApproveTokenParams = {
9
9
  signer: Signer | JsonRpcSigner;
10
- chainId: number;
11
- token: string;
10
+ token: string; // token address
12
11
  type: ApprovalType;
13
12
  };
14
13
 
15
- export type GetAllowanceArgs = {
14
+ export type GetAllowanceParams = {
16
15
  signer: Signer | JsonRpcSigner;
17
- chainId: number;
18
- token: string;
16
+ token: string; // token address
19
17
  type: ApprovalType;
20
18
  };
21
19
 
22
- export type GetERC20AllowanceArgs = {
20
+ export type GetERC20AllowanceParams = {
23
21
  walletAddress: string;
24
- tokenAddress: string;
22
+ tokenAddress: string; // LP POOL entity tokean address
25
23
  spenderAddress: string;
26
24
  subject: Signer;
27
25
  };
@@ -0,0 +1,27 @@
1
+ import BigNumber from 'bignumber.js';
2
+
3
+ export function calculateMinSharesForLp(lpAmount: number): number {
4
+ const amount = BigNumber(lpAmount);
5
+
6
+ // Calculate 1% // @todo update this number once we have it
7
+ const offset = amount.times(0.99);
8
+
9
+ return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed
10
+ }
11
+
12
+ export function calculateMinOutForLp(sharesAmount: number): number {
13
+ const amount = BigNumber(sharesAmount);
14
+
15
+ // Calculate 1% // @todo update once we have the exact number
16
+ const offset = amount.times(0.99);
17
+
18
+ return amount.minus(offset).times(1e6).toNumber(); // rUSD/USDC has 6 decimals, change if needed
19
+ }
20
+
21
+ export function expandLpAmount(amount: number): number {
22
+ const decimalFactor = BigNumber('1000000'); // 10^6
23
+
24
+ const amountDenormalised = BigNumber(amount).times(decimalFactor).toFixed(0);
25
+
26
+ return Number(amountDenormalised);
27
+ }
@@ -1,31 +1,39 @@
1
+ import BigNumber from 'bignumber.js';
2
+
1
3
  export function calculatePriceLimitForTrade(
2
4
  orderPrice: number,
3
- size: bigint,
5
+ size: number,
4
6
  ): bigint {
5
7
  // Ensure orderPrice is BigInt
6
- const orderPriceBigInt = BigInt(orderPrice);
8
+ const orderPriceBigInt = BigNumber(orderPrice);
7
9
 
8
10
  // Calculate 50% of the order price
9
- const offset = orderPriceBigInt / BigInt(2);
11
+ const offset = orderPriceBigInt.div(2);
10
12
 
11
13
  // Determine if the size is positive or negative and adjust the price accordingly
12
14
  if (size > 0) {
13
15
  // Trade is long, so add
14
- return (orderPriceBigInt + offset) * BigInt(1e18);
16
+ return BigInt(
17
+ BigNumber(orderPriceBigInt).plus(offset).times(1e18).toFixed(0),
18
+ );
15
19
  } else {
16
- // Trade is short, so subtract
17
- return (orderPriceBigInt - offset) * BigInt(1e18);
20
+ return BigInt(
21
+ BigNumber(orderPriceBigInt).minus(offset).times(1e18).toFixed(0),
22
+ );
18
23
  }
19
24
  }
20
25
 
21
26
  export function calculateOrderBaseFromOrderSize(
22
- orderSize: bigint,
27
+ orderSize: number,
23
28
  currentPrice: number,
24
29
  ): bigint {
25
- const decimalFactor = BigInt('1000000'); // 10^6
26
- // @todo check decimal places handling
30
+ const decimalFactor = BigNumber('1000000'); // 10^6
31
+ // @todo check decimal places handling if this should stay hardcoded to 6
27
32
 
28
- const orderBase = (orderSize * decimalFactor) / BigInt(currentPrice);
33
+ const orderBase = BigNumber(orderSize)
34
+ .times(decimalFactor)
35
+ .div(currentPrice)
36
+ .toFixed(0);
29
37
 
30
- return orderBase;
38
+ return BigInt(orderBase);
31
39
  }