@reyaxyz/sdk 0.20.2 → 0.20.3

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 (40) hide show
  1. package/dist/services/lp/index.js +1 -0
  2. package/dist/services/lp/index.js.map +1 -1
  3. package/dist/services/lp/simulateTransferFromMAToPool.js +67 -0
  4. package/dist/services/lp/simulateTransferFromMAToPool.js.map +1 -0
  5. package/dist/services/lp/transferFromMAToPool.js +2 -2
  6. package/dist/services/lp/transferFromMAToPool.js.map +1 -1
  7. package/dist/services/lp/types.js.map +1 -1
  8. package/dist/services/margin-accounts/bridgeAndDepositExistingMA.js +2 -2
  9. package/dist/services/margin-accounts/bridgeAndDepositExistingMA.js.map +1 -1
  10. package/dist/services/margin-accounts/index.js +1 -0
  11. package/dist/services/margin-accounts/index.js.map +1 -1
  12. package/dist/services/margin-accounts/simulateTransferMarginBetweenAccounts.js +68 -0
  13. package/dist/services/margin-accounts/simulateTransferMarginBetweenAccounts.js.map +1 -0
  14. package/dist/services/margin-accounts/types.js.map +1 -1
  15. package/dist/services/margin-accounts/withdrawMAAndBridge.js +32 -29
  16. package/dist/services/margin-accounts/withdrawMAAndBridge.js.map +1 -1
  17. package/dist/types/services/lp/index.d.ts +1 -0
  18. package/dist/types/services/lp/index.d.ts.map +1 -1
  19. package/dist/types/services/lp/simulateTransferFromMAToPool.d.ts +3 -0
  20. package/dist/types/services/lp/simulateTransferFromMAToPool.d.ts.map +1 -0
  21. package/dist/types/services/lp/types.d.ts +11 -1
  22. package/dist/types/services/lp/types.d.ts.map +1 -1
  23. package/dist/types/services/margin-accounts/index.d.ts +1 -0
  24. package/dist/types/services/margin-accounts/index.d.ts.map +1 -1
  25. package/dist/types/services/margin-accounts/simulateTransferMarginBetweenAccounts.d.ts +3 -0
  26. package/dist/types/services/margin-accounts/simulateTransferMarginBetweenAccounts.d.ts.map +1 -0
  27. package/dist/types/services/margin-accounts/types.d.ts +14 -3
  28. package/dist/types/services/margin-accounts/types.d.ts.map +1 -1
  29. package/dist/types/services/margin-accounts/withdrawMAAndBridge.d.ts +1 -1
  30. package/dist/types/services/margin-accounts/withdrawMAAndBridge.d.ts.map +1 -1
  31. package/package.json +3 -3
  32. package/src/services/lp/index.ts +1 -0
  33. package/src/services/lp/simulateTransferFromMAToPool.ts +32 -0
  34. package/src/services/lp/transferFromMAToPool.ts +2 -2
  35. package/src/services/lp/types.ts +14 -1
  36. package/src/services/margin-accounts/bridgeAndDepositExistingMA.ts +2 -2
  37. package/src/services/margin-accounts/index.ts +1 -0
  38. package/src/services/margin-accounts/simulateTransferMarginBetweenAccounts.ts +33 -0
  39. package/src/services/margin-accounts/types.ts +19 -3
  40. package/src/services/margin-accounts/withdrawMAAndBridge.ts +22 -17
@@ -19,4 +19,5 @@ __exportStar(require("./lp"), exports);
19
19
  __exportStar(require("./bridgeAndDepositPassivePool"), exports);
20
20
  __exportStar(require("./transferFromMAToPool"), exports);
21
21
  __exportStar(require("./withdrawPassivePoolAndBridge"), exports);
22
+ __exportStar(require("./simulateTransferFromMAToPool"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,uCAAqB;AACrB,gEAA8C;AAC9C,yDAAuC;AACvC,iEAA+C","sourcesContent":["export * from './types';\nexport * from './lp';\nexport * from './bridgeAndDepositPassivePool';\nexport * from './transferFromMAToPool';\nexport * from './withdrawPassivePoolAndBridge';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,uCAAqB;AACrB,gEAA8C;AAC9C,yDAAuC;AACvC,iEAA+C;AAC/C,iEAA+C","sourcesContent":["export * from './types';\nexport * from './lp';\nexport * from './bridgeAndDepositPassivePool';\nexport * from './transferFromMAToPool';\nexport * from './withdrawPassivePoolAndBridge';\nexport * from './simulateTransferFromMAToPool';\n"]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.simulateTransferFromMAToPool = void 0;
40
+ // The maximum is inclusive and the minimum is inclusive
41
+ function getRandomIntInclusive(min, max) {
42
+ min = Math.ceil(min);
43
+ max = Math.floor(max);
44
+ return Math.floor(Math.random() * (max - min + 1) + min);
45
+ }
46
+ var randomSimulation = function () {
47
+ return {
48
+ bridgeGasFees: getRandomIntInclusive(1000, 100000),
49
+ estimatedDepositedAmount: getRandomIntInclusive(1000, 100000),
50
+ };
51
+ };
52
+ var simulateTransferFromMAToPool = function (
53
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
+ params) { return __awaiter(void 0, void 0, void 0, function () {
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0: return [4 /*yield*/, new Promise(function (resolve) {
58
+ setTimeout(function () {
59
+ resolve(randomSimulation());
60
+ }, Math.random() * 100 + 1000);
61
+ })];
62
+ case 1: return [2 /*return*/, _a.sent()];
63
+ }
64
+ });
65
+ }); };
66
+ exports.simulateTransferFromMAToPool = simulateTransferFromMAToPool;
67
+ //# sourceMappingURL=simulateTransferFromMAToPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulateTransferFromMAToPool.js","sourceRoot":"/","sources":["services/lp/simulateTransferFromMAToPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAwD;AACxD,SAAS,qBAAqB,CAAC,GAAW,EAAE,GAAW;IACrD,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,IAAM,gBAAgB,GAAG;IACvB,OAAO;QACL,aAAa,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC;QAClD,wBAAwB,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC;KAC9D,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,4BAA4B,GAAG;AAC1C,6DAA6D;AAC7D,MAA0C;;;oBAEnC,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO;oBAC/B,UAAU,CACR;wBACE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAC9B,CAAC,EACD,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAC3B,CAAC;gBACJ,CAAC,CAAC,EAAA;oBAPF,sBAAO,SAOL,EAAC;;;KACJ,CAAC;AAZW,QAAA,4BAA4B,gCAYvC","sourcesContent":["import {\n SimulateTransferFromMAToPoolParams,\n SimulateTransferFromMAToPoolResult,\n} from './types';\n\n// The maximum is inclusive and the minimum is inclusive\nfunction getRandomIntInclusive(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\nconst randomSimulation = (): SimulateTransferFromMAToPoolResult => {\n return {\n bridgeGasFees: getRandomIntInclusive(1000, 100000),\n estimatedDepositedAmount: getRandomIntInclusive(1000, 100000),\n };\n};\n\nexport const simulateTransferFromMAToPool = async (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n params: SimulateTransferFromMAToPoolParams,\n): Promise<SimulateTransferFromMAToPoolResult> => {\n return await new Promise((resolve) => {\n setTimeout(\n () => {\n resolve(randomSimulation());\n },\n Math.random() * 100 + 1000,\n );\n });\n};\n"]}
@@ -53,12 +53,12 @@ var transferFromMAToPool = function (params) { return __awaiter(void 0, void 0,
53
53
  case 1:
54
54
  network = _c.sent();
55
55
  chainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
56
- return [4 /*yield*/, (0, sign_1.signCoreCommands)(params.signer, chainId, params.accountId, params.owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
56
+ return [4 /*yield*/, (0, sign_1.signCoreCommands)(params.signer, chainId, params.marginAccountId, params.owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
57
57
  case 2:
58
58
  eip712Signature = _c.sent();
59
59
  tokenDecimals = (0, common_2.getTokenDetails)(params.pool.tokenAddress).tokenDecimals;
60
60
  amount = (0, common_2.scale)(tokenDecimals)(params.amount);
61
- _a = (0, encode_1.encodeTransferFromMAToPool)(params.accountId, amount, eip712Signature, params.pool.id, params.owner.address, BigInt(0)), data = _a.calldata, value = _a.value;
61
+ _a = (0, encode_1.encodeTransferFromMAToPool)(params.marginAccountId, amount, eip712Signature, params.pool.id, params.owner.address, BigInt(0)), data = _a.calldata, value = _a.value;
62
62
  return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, chainId, contractAddresses_1.ContractType.PERIPHERY_PROXY)];
63
63
  case 3:
64
64
  result = _c.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"transferFromMAToPool.js","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA+D;AAC/D,mEAA6D;AAC7D,4DAA2D;AAC3D,gCAA2C;AAC3C,0CAAyD;AACzD,mCAAsD;AAKtD,6CAAgE;AAEzD,IAAM,oBAAoB,GAAG,UAClC,MAAkC;;;;;oBAElB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAEjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBANK,eAAe,GAAG,SAMvB;gBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAA9C,CAA+C;gBAC9D,MAAM,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,SAAS,EAChB,MAAM,EACN,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,CACV,EAPiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAO3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,eAAe,CAC7B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AArCW,QAAA,oBAAoB,wBAqC/B","sourcesContent":["import { getCurrentTimestampInSeconds } from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeTransferFromMAToPool } from './encode';\nimport {\n TransferFromMAToPoolParams,\n TransferFromMAToPoolResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const transferFromMAToPool = async (\n params: TransferFromMAToPoolParams,\n): Promise<TransferFromMAToPoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n\n const eip712Signature = await signCoreCommands(\n params.signer,\n chainId,\n params.accountId,\n params.owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(params.pool.tokenAddress);\n const amount = scale(tokenDecimals)(params.amount);\n\n const { calldata: data, value } = encodeTransferFromMAToPool(\n params.accountId,\n amount,\n eip712Signature,\n params.pool.id,\n params.owner.address,\n BigInt(0),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"transferFromMAToPool.js","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA+D;AAC/D,mEAA6D;AAC7D,4DAA2D;AAC3D,gCAA2C;AAC3C,0CAAyD;AACzD,mCAAsD;AAKtD,6CAAgE;AAEzD,IAAM,oBAAoB,GAAG,UAClC,MAAkC;;;;;oBAElB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAEjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBANK,eAAe,GAAG,SAMvB;gBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAA9C,CAA+C;gBAC9D,MAAM,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,eAAe,EACtB,MAAM,EACN,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,CACV,EAPiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAO3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,eAAe,CAC7B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AArCW,QAAA,oBAAoB,wBAqC/B","sourcesContent":["import { getCurrentTimestampInSeconds } from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeTransferFromMAToPool } from './encode';\nimport {\n TransferFromMAToPoolParams,\n TransferFromMAToPoolResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const transferFromMAToPool = async (\n params: TransferFromMAToPoolParams,\n): Promise<TransferFromMAToPoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n\n const eip712Signature = await signCoreCommands(\n params.signer,\n chainId,\n params.marginAccountId,\n params.owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(params.pool.tokenAddress);\n const amount = scale(tokenDecimals)(params.amount);\n\n const { calldata: data, value } = encodeTransferFromMAToPool(\n params.marginAccountId,\n amount,\n eip712Signature,\n params.pool.id,\n params.owner.address,\n BigInt(0),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n ContractType.PERIPHERY_PROXY,\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';\nimport {\n LpPoolEntity,\n LpWithdrawBalanceEntity,\n MarginAccountEntity,\n OwnerMetadataEntity,\n} from '@reyaxyz/common';\n\nexport type ProvideLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n amount: number;\n lpPoolId: LpPoolEntity['id'];\n};\n\nexport type RemoveLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n lpPoolId: LpPoolEntity['id'];\n amount: number;\n};\n\nexport type ProvideLiquidityResult = {\n transactionHash: string | null;\n};\n\nexport type RemoveLiquidityResult = {\n transactionHash: string | null;\n};\n\nexport type TransferFromMAToPoolParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n accountId: MarginAccountEntity['id'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type TransferFromMAToPoolResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawPassivePoolAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n sharePrice: LpWithdrawBalanceEntity['poolSharePrice'];\n};\n\nexport type WithdrawPassivePoolAndBridgeResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositPassivePoolParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type BridgeAndDepositPassivePoolResult = {\n transactionHash: string | null;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport {\n LpPoolEntity,\n LpWithdrawBalanceEntity,\n MarginAccountEntity,\n OwnerMetadataEntity,\n} from '@reyaxyz/common';\n\nexport type ProvideLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n amount: number;\n lpPoolId: LpPoolEntity['id'];\n};\n\nexport type RemoveLiquidityParams = {\n signer: Signer | JsonRpcSigner;\n lpPoolId: LpPoolEntity['id'];\n amount: number;\n};\n\nexport type ProvideLiquidityResult = {\n transactionHash: string | null;\n};\n\nexport type RemoveLiquidityResult = {\n transactionHash: string | null;\n};\n\nexport type TransferFromMAToPoolParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type TransferFromMAToPoolResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawPassivePoolAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n sharePrice: LpWithdrawBalanceEntity['poolSharePrice'];\n};\n\nexport type WithdrawPassivePoolAndBridgeResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositPassivePoolParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type BridgeAndDepositPassivePoolResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateTransferFromMAToPoolResult = {\n bridgeGasFees: number;\n estimatedDepositedAmount: number;\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateTransferFromMAToPoolParams = {\n signer: Signer | JsonRpcSigner;\n lpPoolId: LpPoolEntity['id'];\n tokenAddress: LpPoolEntity['tokenAddress'];\n amount: number;\n};\n"]}
@@ -53,7 +53,7 @@ var bridgeAndDepositExisingMA = function (params) { return __awaiter(void 0, voi
53
53
  case 1:
54
54
  network = _c.sent();
55
55
  chainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
56
- return [4 /*yield*/, (0, sign_1.signCoreCommands)(params.signer, chainId, params.accountId, params.owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
56
+ return [4 /*yield*/, (0, sign_1.signCoreCommands)(params.signer, chainId, params.marginAccountId, params.owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
57
57
  case 2:
58
58
  eip712Signature = _c.sent();
59
59
  tokenDecimals = (0, common_2.getTokenDetails)(params.tokenAddress).tokenDecimals;
@@ -61,7 +61,7 @@ var bridgeAndDepositExisingMA = function (params) { return __awaiter(void 0, voi
61
61
  _a = (0, encode_1.encodeBridgeAndDepositExistingMA)((0, contractAddresses_1.getAddress)(chainId, contractAddresses_1.ContractType.PERIPHERY_PROXY), BigInt('10000000'), (0, common_1.getSocketConnector)({
62
62
  chainId: chainId,
63
63
  tokenAddress: params.tokenAddress,
64
- }), params.accountId, params.tokenAddress, amount, eip712Signature), data = _a.calldata, value = _a.value;
64
+ }), params.marginAccountId, params.tokenAddress, amount, eip712Signature), data = _a.calldata, value = _a.value;
65
65
  return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, chainId, (0, common_1.getSocketVault)({
66
66
  moneyInOutChainId: chainId,
67
67
  tokenAddress: params.tokenAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAIyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,0CAAyD;AACzD,mCAA4D;AAK5D,gCAA2C;AAC3C,6CAAgE;AAEzD,IAAM,yBAAyB,GAAG,UACvC,MAAuC;;;;;oBAEvB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBACjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBANK,eAAe,GAAG,SAMvB;gBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,MAAM,CAAC,YAAY,CAAC,cAAzC,CAA0C;gBACzD,MAAM,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,KAA4B,IAAA,yCAAgC,EAChE,IAAA,8BAAU,EAAC,OAAO,EAAE,gCAAY,CAAC,eAAe,CAAC,EACjD,MAAM,CAAC,UAAU,CAAC,EAClB,IAAA,2BAAkB,EAAC;oBACjB,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,EACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,eAAe,CAChB,EAXiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAW3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,OAAO;wBAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;qBAClC,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA3CW,QAAA,yBAAyB,6BA2CpC","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnector,\n getSocketVault,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExisingMAParams,\n BridgeAndDepositExisingMAResult,\n} from './types';\nimport { signCoreCommands } from '../sign';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const bridgeAndDepositExisingMA = async (\n params: BridgeAndDepositExisingMAParams,\n): Promise<BridgeAndDepositExisingMAResult> => {\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n const eip712Signature = await signCoreCommands(\n params.signer,\n chainId,\n params.accountId,\n params.owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(params.tokenAddress);\n const amount = scale(tokenDecimals)(params.amount);\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n BigInt('10000000'),\n getSocketConnector({\n chainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n params.accountId,\n params.tokenAddress,\n amount,\n eip712Signature,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n getSocketVault({\n moneyInOutChainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAIyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,0CAAyD;AACzD,mCAA4D;AAK5D,gCAA2C;AAC3C,6CAAgE;AAEzD,IAAM,yBAAyB,GAAG,UACvC,MAAuC;;;;;oBAEvB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBACjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBANK,eAAe,GAAG,SAMvB;gBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,MAAM,CAAC,YAAY,CAAC,cAAzC,CAA0C;gBACzD,MAAM,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,KAA4B,IAAA,yCAAgC,EAChE,IAAA,8BAAU,EAAC,OAAO,EAAE,gCAAY,CAAC,eAAe,CAAC,EACjD,MAAM,CAAC,UAAU,CAAC,EAClB,IAAA,2BAAkB,EAAC;oBACjB,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,EACF,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,eAAe,CAChB,EAXiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAW3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,OAAO;wBAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;qBAClC,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA3CW,QAAA,yBAAyB,6BA2CpC","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnector,\n getSocketVault,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExisingMAParams,\n BridgeAndDepositExisingMAResult,\n} from './types';\nimport { signCoreCommands } from '../sign';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const bridgeAndDepositExisingMA = async (\n params: BridgeAndDepositExisingMAParams,\n): Promise<BridgeAndDepositExisingMAResult> => {\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n const eip712Signature = await signCoreCommands(\n params.signer,\n chainId,\n params.marginAccountId,\n params.owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(params.tokenAddress);\n const amount = scale(tokenDecimals)(params.amount);\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n BigInt('10000000'),\n getSocketConnector({\n chainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n params.marginAccountId,\n params.tokenAddress,\n amount,\n eip712Signature,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n getSocketVault({\n moneyInOutChainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -24,4 +24,5 @@ __exportStar(require("./bridgeAndDepositExistingMA"), exports);
24
24
  __exportStar(require("./bridgeAndDepositNewMA"), exports);
25
25
  __exportStar(require("./transferMarginBetweenAccounts"), exports);
26
26
  __exportStar(require("./withdrawMAAndBridge"), exports);
27
+ __exportStar(require("./simulateTransferMarginBetweenAccounts"), exports);
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/margin-accounts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,oDAAkC;AAClC,qDAAmC;AACnC,6CAA2B;AAC3B,+DAA6C;AAC7C,0DAAwC;AACxC,kEAAgD;AAChD,wDAAsC","sourcesContent":["export * from './types';\nexport * from './account';\nexport * from './deposit';\nexport * from './simulateDeposit';\nexport * from './simulateWithdraw';\nexport * from './withdraw';\nexport * from './bridgeAndDepositExistingMA';\nexport * from './bridgeAndDepositNewMA';\nexport * from './transferMarginBetweenAccounts';\nexport * from './withdrawMAAndBridge';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/margin-accounts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,oDAAkC;AAClC,qDAAmC;AACnC,6CAA2B;AAC3B,+DAA6C;AAC7C,0DAAwC;AACxC,kEAAgD;AAChD,wDAAsC;AACtC,0EAAwD","sourcesContent":["export * from './types';\nexport * from './account';\nexport * from './deposit';\nexport * from './simulateDeposit';\nexport * from './simulateWithdraw';\nexport * from './withdraw';\nexport * from './bridgeAndDepositExistingMA';\nexport * from './bridgeAndDepositNewMA';\nexport * from './transferMarginBetweenAccounts';\nexport * from './withdrawMAAndBridge';\nexport * from './simulateTransferMarginBetweenAccounts';\n"]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.simulateTransferMarginBetweenAccounts = void 0;
40
+ // The maximum is inclusive and the minimum is inclusive
41
+ function getRandomIntInclusive(min, max) {
42
+ min = Math.ceil(min);
43
+ max = Math.floor(max);
44
+ return Math.floor(Math.random() * (max - min + 1) + min);
45
+ }
46
+ var randomSimulation = function () {
47
+ return {
48
+ bridgeGasFees: getRandomIntInclusive(1000, 100000),
49
+ marginRatio: getRandomIntInclusive(1, 100),
50
+ marginRatioHealth: 'danger',
51
+ };
52
+ };
53
+ var simulateTransferMarginBetweenAccounts = function (
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ params) { return __awaiter(void 0, void 0, void 0, function () {
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0: return [4 /*yield*/, new Promise(function (resolve) {
59
+ setTimeout(function () {
60
+ resolve(randomSimulation());
61
+ }, Math.random() * 100 + 1000);
62
+ })];
63
+ case 1: return [2 /*return*/, _a.sent()];
64
+ }
65
+ });
66
+ }); };
67
+ exports.simulateTransferMarginBetweenAccounts = simulateTransferMarginBetweenAccounts;
68
+ //# sourceMappingURL=simulateTransferMarginBetweenAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulateTransferMarginBetweenAccounts.js","sourceRoot":"/","sources":["services/margin-accounts/simulateTransferMarginBetweenAccounts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAwD;AACxD,SAAS,qBAAqB,CAAC,GAAW,EAAE,GAAW;IACrD,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,IAAM,gBAAgB,GAAG;IACvB,OAAO;QACL,aAAa,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC;QAClD,WAAW,EAAE,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1C,iBAAiB,EAAE,QAAQ;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,qCAAqC,GAAG;AACnD,6DAA6D;AAC7D,MAAmD;;;oBAE5C,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO;oBAC/B,UAAU,CACR;wBACE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAC9B,CAAC,EACD,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAC3B,CAAC;gBACJ,CAAC,CAAC,EAAA;oBAPF,sBAAO,SAOL,EAAC;;;KACJ,CAAC;AAZW,QAAA,qCAAqC,yCAYhD","sourcesContent":["import {\n SimulateTransferMarginBetweenAccountsParams,\n SimulateTransferMarginBetweenAccountsResult,\n} from './types';\n\n// The maximum is inclusive and the minimum is inclusive\nfunction getRandomIntInclusive(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\nconst randomSimulation = (): SimulateTransferMarginBetweenAccountsResult => {\n return {\n bridgeGasFees: getRandomIntInclusive(1000, 100000),\n marginRatio: getRandomIntInclusive(1, 100),\n marginRatioHealth: 'danger',\n };\n};\n\nexport const simulateTransferMarginBetweenAccounts = async (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n params: SimulateTransferMarginBetweenAccountsParams,\n): Promise<SimulateTransferMarginBetweenAccountsResult> => {\n return await new Promise((resolve) => {\n setTimeout(\n () => {\n resolve(randomSimulation());\n },\n Math.random() * 100 + 1000,\n );\n });\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';\nimport {\n MarginAccountEntity,\n OwnerMetadataEntity,\n TokenEntity,\n} from '@reyaxyz/common';\n\nexport type CreateAccountParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n};\n\nexport type DepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type DepositResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type WithdrawResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateDepositResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateDepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type SimulateWithdrawResult = {\n bridgeGasFees: number;\n\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateWithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n accountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n receiverAddress: string;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositNewMAParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositNewMAResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositExisingMAParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n accountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositExisingMAResult = {\n transactionHash: string | null;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport {\n MarginAccountEntity,\n OwnerMetadataEntity,\n TokenEntity,\n} from '@reyaxyz/common';\nimport { simulateTransferMarginBetweenAccounts } from './simulateTransferMarginBetweenAccounts';\n\nexport type CreateAccountParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n};\n\nexport type DepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type DepositResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type WithdrawResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateDepositResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateDepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type SimulateWithdrawResult = {\n bridgeGasFees: number;\n\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateWithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n // if not provided it has same value as owner.address\n receiverAddress?: string;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositNewMAParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositNewMAResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositExisingMAParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositExisingMAResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateTransferMarginBetweenAccountsResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateTransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n"]}
@@ -44,35 +44,38 @@ var sign_1 = require("../sign");
44
44
  var common_2 = require("../token/common");
45
45
  var encode_1 = require("./encode");
46
46
  var consts_1 = require("../../utils/consts");
47
- var withdrawMAAndBridge = function (params) { return __awaiter(void 0, void 0, void 0, function () {
48
- var network, chainId, eip712Signature, tokenDecimals, amount, _a, data, value, result;
49
- var _b;
50
- return __generator(this, function (_c) {
51
- switch (_c.label) {
52
- case 0: return [4 /*yield*/, ((_b = params.signer.provider) === null || _b === void 0 ? void 0 : _b.getNetwork())];
53
- case 1:
54
- network = _c.sent();
55
- chainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
56
- return [4 /*yield*/, (0, sign_1.signCoreCommands)(params.signer, chainId, params.accountId, params.owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
57
- case 2:
58
- eip712Signature = _c.sent();
59
- tokenDecimals = (0, common_2.getTokenDetails)(params.tokenAddress).tokenDecimals;
60
- amount = (0, common_2.scale)(tokenDecimals)(params.amount);
61
- _a = (0, encode_1.encodeWithdrawMAAndBridge)(params.accountId, params.tokenAddress, amount, eip712Signature, BigInt('10000000'), (0, common_1.getSocketConnector)({
62
- chainId: chainId,
63
- tokenAddress: params.tokenAddress,
64
- }), (0, common_1.getSocketController)({
65
- reyaChainId: chainId,
66
- tokenAddress: params.tokenAddress,
67
- }), params.receiverAddress), data = _a.calldata, value = _a.value;
68
- return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, chainId, contractAddresses_1.ContractType.CORE_PROXY)];
69
- case 3:
70
- result = _c.sent();
71
- return [2 /*return*/, {
72
- transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
73
- }];
74
- }
47
+ var withdrawMAAndBridge = function (_a) {
48
+ var signer = _a.signer, marginAccountId = _a.marginAccountId, owner = _a.owner, amount = _a.amount, tokenAddress = _a.tokenAddress, _b = _a.receiverAddress, receiverAddress = _b === void 0 ? owner.address : _b;
49
+ return __awaiter(void 0, void 0, void 0, function () {
50
+ var network, chainId, eip712Signature, tokenDecimals, scaledAmount, _c, data, value, result;
51
+ var _d;
52
+ return __generator(this, function (_e) {
53
+ switch (_e.label) {
54
+ case 0: return [4 /*yield*/, ((_d = signer.provider) === null || _d === void 0 ? void 0 : _d.getNetwork())];
55
+ case 1:
56
+ network = _e.sent();
57
+ chainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
58
+ return [4 /*yield*/, (0, sign_1.signCoreCommands)(signer, chainId, marginAccountId, owner.coreSigNonce, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
59
+ case 2:
60
+ eip712Signature = _e.sent();
61
+ tokenDecimals = (0, common_2.getTokenDetails)(tokenAddress).tokenDecimals;
62
+ scaledAmount = (0, common_2.scale)(tokenDecimals)(amount);
63
+ _c = (0, encode_1.encodeWithdrawMAAndBridge)(marginAccountId, tokenAddress, scaledAmount, eip712Signature, BigInt('10000000'), (0, common_1.getSocketConnector)({
64
+ chainId: chainId,
65
+ tokenAddress: tokenAddress,
66
+ }), (0, common_1.getSocketController)({
67
+ reyaChainId: chainId,
68
+ tokenAddress: tokenAddress,
69
+ }), receiverAddress), data = _c.calldata, value = _c.value;
70
+ return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(signer, data, value, chainId, contractAddresses_1.ContractType.CORE_PROXY)];
71
+ case 3:
72
+ result = _e.sent();
73
+ return [2 /*return*/, {
74
+ transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
75
+ }];
76
+ }
77
+ });
75
78
  });
76
- }); };
79
+ };
77
80
  exports.withdrawMAAndBridge = withdrawMAAndBridge;
78
81
  //# sourceMappingURL=withdrawMAAndBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAIyB;AACzB,mEAA6D;AAC7D,4DAA2D;AAC3D,gCAA2C;AAC3C,0CAAyD;AACzD,mCAAqD;AAKrD,6CAAgE;AAEzD,IAAM,mBAAmB,GAAG,UACjC,MAAiC;;;;;oBAEjB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBACjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBANK,eAAe,GAAG,SAMvB;gBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,MAAM,CAAC,YAAY,CAAC,cAAzC,CAA0C;gBACzD,MAAM,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,KAA4B,IAAA,kCAAyB,EACzD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAClB,IAAA,2BAAkB,EAAC;oBACjB,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,EACF,IAAA,4BAAmB,EAAC;oBAClB,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,EACF,MAAM,CAAC,eAAe,CACvB,EAfiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAe3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,UAAU,CACxB,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA5CW,QAAA,mBAAmB,uBA4C9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnector,\n getSocketController,\n} from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const withdrawMAAndBridge = async (\n params: WithdrawMAAndBridgeParams,\n): Promise<WithdrawMAAndBridgeParamsResult> => {\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n const eip712Signature = await signCoreCommands(\n params.signer,\n chainId,\n params.accountId,\n params.owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(params.tokenAddress);\n const amount = scale(tokenDecimals)(params.amount);\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n params.accountId,\n params.tokenAddress,\n amount,\n eip712Signature,\n BigInt('10000000'),\n getSocketConnector({\n chainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n getSocketController({\n reyaChainId: chainId,\n tokenAddress: params.tokenAddress,\n }),\n params.receiverAddress,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n chainId,\n ContractType.CORE_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAIyB;AACzB,mEAA6D;AAC7D,4DAA2D;AAC3D,gCAA2C;AAC3C,0CAAyD;AACzD,mCAAqD;AAKrD,6CAAgE;AAEzD,IAAM,mBAAmB,GAAG,UAAO,EAOd;QAN1B,MAAM,YAAA,EACN,eAAe,qBAAA,EACf,KAAK,WAAA,EACL,MAAM,YAAA,EACN,YAAY,kBAAA,EACZ,uBAA+B,EAA/B,eAAe,mBAAG,KAAK,CAAC,OAAO,KAAA;;;;;;wBAEf,qBAAM,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;oBAA7C,OAAO,GAAG,SAAmC;oBAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;oBACjB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,EACN,OAAO,EACP,eAAe,EACf,KAAK,CAAC,YAAY,EAClB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;oBANK,eAAe,GAAG,SAMvB;oBAEO,aAAa,GAAK,IAAA,wBAAe,EAAC,YAAY,CAAC,cAAlC,CAAmC;oBAClD,YAAY,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;oBAE5C,KAA4B,IAAA,kCAAyB,EACzD,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAClB,IAAA,2BAAkB,EAAC;wBACjB,OAAO,SAAA;wBACP,YAAY,cAAA;qBACb,CAAC,EACF,IAAA,4BAAmB,EAAC;wBAClB,WAAW,EAAE,OAAO;wBACpB,YAAY,cAAA;qBACb,CAAC,EACF,eAAe,CAChB,EAfiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAe3B;oBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,UAAU,CACxB,EAAA;;oBANK,MAAM,GAAG,SAMd;oBAED,sBAAO;4BACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;yBACtC,EAAC;;;;CACH,CAAC;AAjDW,QAAA,mBAAmB,uBAiD9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnector,\n getSocketController,\n} from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { getTokenDetails, scale } from '../token/common';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const withdrawMAAndBridge = async ({\n signer,\n marginAccountId,\n owner,\n amount,\n tokenAddress,\n receiverAddress = owner.address,\n}: WithdrawMAAndBridgeParams): Promise<WithdrawMAAndBridgeParamsResult> => {\n const network = await signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n const eip712Signature = await signCoreCommands(\n signer,\n chainId,\n marginAccountId,\n owner.coreSigNonce,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { tokenDecimals } = getTokenDetails(tokenAddress);\n const scaledAmount = scale(tokenDecimals)(amount);\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n marginAccountId,\n tokenAddress,\n scaledAmount,\n eip712Signature,\n BigInt('10000000'),\n getSocketConnector({\n chainId,\n tokenAddress,\n }),\n getSocketController({\n reyaChainId: chainId,\n tokenAddress,\n }),\n receiverAddress,\n );\n\n const result = await executeTransaction(\n signer,\n data,\n value,\n chainId,\n ContractType.CORE_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -3,4 +3,5 @@ export * from './lp';
3
3
  export * from './bridgeAndDepositPassivePool';
4
4
  export * from './transferFromMAToPool';
5
5
  export * from './withdrawPassivePoolAndBridge';
6
+ export * from './simulateTransferFromMAToPool';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,MAAM,CAAC;AACrB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,MAAM,CAAC;AACrB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SimulateTransferFromMAToPoolParams, SimulateTransferFromMAToPoolResult } from './types';
2
+ export declare const simulateTransferFromMAToPool: (params: SimulateTransferFromMAToPoolParams) => Promise<SimulateTransferFromMAToPoolResult>;
3
+ //# sourceMappingURL=simulateTransferFromMAToPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulateTransferFromMAToPool.d.ts","sourceRoot":"/","sources":["services/lp/simulateTransferFromMAToPool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,SAAS,CAAC;AAgBjB,eAAO,MAAM,4BAA4B,WAE/B,kCAAkC,KACzC,QAAQ,kCAAkC,CAS5C,CAAC"}
@@ -19,7 +19,7 @@ export type RemoveLiquidityResult = {
19
19
  export type TransferFromMAToPoolParams = {
20
20
  signer: Signer | JsonRpcSigner;
21
21
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
22
- accountId: MarginAccountEntity['id'];
22
+ marginAccountId: MarginAccountEntity['id'];
23
23
  pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;
24
24
  amount: number;
25
25
  };
@@ -45,4 +45,14 @@ export type BridgeAndDepositPassivePoolParams = {
45
45
  export type BridgeAndDepositPassivePoolResult = {
46
46
  transactionHash: string | null;
47
47
  };
48
+ export type SimulateTransferFromMAToPoolResult = {
49
+ bridgeGasFees: number;
50
+ estimatedDepositedAmount: number;
51
+ };
52
+ export type SimulateTransferFromMAToPoolParams = {
53
+ signer: Signer | JsonRpcSigner;
54
+ lpPoolId: LpPoolEntity['id'];
55
+ tokenAddress: LpPoolEntity['tokenAddress'];
56
+ amount: number;
57
+ };
48
58
  //# 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;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,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;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,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;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,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;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -8,4 +8,5 @@ export * from './bridgeAndDepositExistingMA';
8
8
  export * from './bridgeAndDepositNewMA';
9
9
  export * from './transferMarginBetweenAccounts';
10
10
  export * from './withdrawMAAndBridge';
11
+ export * from './simulateTransferMarginBetweenAccounts';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["services/margin-accounts/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["services/margin-accounts/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SimulateTransferMarginBetweenAccountsParams, SimulateTransferMarginBetweenAccountsResult } from './types';
2
+ export declare const simulateTransferMarginBetweenAccounts: (params: SimulateTransferMarginBetweenAccountsParams) => Promise<SimulateTransferMarginBetweenAccountsResult>;
3
+ //# sourceMappingURL=simulateTransferMarginBetweenAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulateTransferMarginBetweenAccounts.d.ts","sourceRoot":"/","sources":["services/margin-accounts/simulateTransferMarginBetweenAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2CAA2C,EAC3C,2CAA2C,EAC5C,MAAM,SAAS,CAAC;AAiBjB,eAAO,MAAM,qCAAqC,WAExC,2CAA2C,KAClD,QAAQ,2CAA2C,CASrD,CAAC"}
@@ -60,10 +60,10 @@ export type TransferMarginBetweenAccountsResult = {
60
60
  export type WithdrawMAAndBridgeParams = {
61
61
  signer: Signer | JsonRpcSigner;
62
62
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
63
- accountId: MarginAccountEntity['id'];
63
+ marginAccountId: MarginAccountEntity['id'];
64
64
  tokenAddress: TokenEntity['address'];
65
65
  amount: number;
66
- receiverAddress: string;
66
+ receiverAddress?: string;
67
67
  };
68
68
  export type WithdrawMAAndBridgeParamsResult = {
69
69
  transactionHash: string | null;
@@ -80,11 +80,22 @@ export type BridgeAndDepositNewMAResult = {
80
80
  export type BridgeAndDepositExisingMAParams = {
81
81
  signer: Signer | JsonRpcSigner;
82
82
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
83
- accountId: MarginAccountEntity['id'];
83
+ marginAccountId: MarginAccountEntity['id'];
84
84
  tokenAddress: TokenEntity['address'];
85
85
  amount: number;
86
86
  };
87
87
  export type BridgeAndDepositExisingMAResult = {
88
88
  transactionHash: string | null;
89
89
  };
90
+ export type SimulateTransferMarginBetweenAccountsResult = {
91
+ bridgeGasFees: number;
92
+ marginRatioHealth: MarginAccountEntity['marginRatioHealth'];
93
+ marginRatio: MarginAccountEntity['marginRatioPercentage'];
94
+ };
95
+ export type SimulateTransferMarginBetweenAccountsParams = {
96
+ signer: Signer | JsonRpcSigner;
97
+ marginAccountId: MarginAccountEntity['id'];
98
+ tokenAddress: TokenEntity['address'];
99
+ amount: number;
100
+ };
90
101
  //# sourceMappingURL=types.d.ts.map
@@ -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;AAC/C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAC5D,WAAW,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;CAC3D,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAC;IAEtB,iBAAiB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAC5D,WAAW,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;CAC3D,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAiB,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { WithdrawMAAndBridgeParams, WithdrawMAAndBridgeParamsResult } from './types';
2
- export declare const withdrawMAAndBridge: (params: WithdrawMAAndBridgeParams) => Promise<WithdrawMAAndBridgeParamsResult>;
2
+ export declare const withdrawMAAndBridge: ({ signer, marginAccountId, owner, amount, tokenAddress, receiverAddress, }: WithdrawMAAndBridgeParams) => Promise<WithdrawMAAndBridgeParamsResult>;
3
3
  //# sourceMappingURL=withdrawMAAndBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawMAAndBridge.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,mBAAmB,WACtB,yBAAyB,KAChC,QAAQ,+BAA+B,CA0CzC,CAAC"}
1
+ {"version":3,"file":"withdrawMAAndBridge.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,mBAAmB,+EAO7B,yBAAyB,KAAG,QAAQ,+BAA+B,CA0CrE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/sdk",
3
- "version": "0.20.2",
3
+ "version": "0.20.3",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -29,10 +29,10 @@
29
29
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
30
30
  },
31
31
  "dependencies": {
32
- "@reyaxyz/common": "0.13.0",
32
+ "@reyaxyz/common": "0.14.0",
33
33
  "bignumber.js": "^9.1.2",
34
34
  "ethers": "6.9.0"
35
35
  },
36
36
  "packageManager": "pnpm@8.10.4",
37
- "gitHead": "426e609d9d334b0c0d8205c9e7851922b84643bd"
37
+ "gitHead": "5fe06e2aa92aa58e2c4c49761325af8d548b4ade"
38
38
  }
@@ -3,3 +3,4 @@ export * from './lp';
3
3
  export * from './bridgeAndDepositPassivePool';
4
4
  export * from './transferFromMAToPool';
5
5
  export * from './withdrawPassivePoolAndBridge';
6
+ export * from './simulateTransferFromMAToPool';
@@ -0,0 +1,32 @@
1
+ import {
2
+ SimulateTransferFromMAToPoolParams,
3
+ SimulateTransferFromMAToPoolResult,
4
+ } from './types';
5
+
6
+ // The maximum is inclusive and the minimum is inclusive
7
+ function getRandomIntInclusive(min: number, max: number) {
8
+ min = Math.ceil(min);
9
+ max = Math.floor(max);
10
+ return Math.floor(Math.random() * (max - min + 1) + min);
11
+ }
12
+
13
+ const randomSimulation = (): SimulateTransferFromMAToPoolResult => {
14
+ return {
15
+ bridgeGasFees: getRandomIntInclusive(1000, 100000),
16
+ estimatedDepositedAmount: getRandomIntInclusive(1000, 100000),
17
+ };
18
+ };
19
+
20
+ export const simulateTransferFromMAToPool = async (
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
+ params: SimulateTransferFromMAToPoolParams,
23
+ ): Promise<SimulateTransferFromMAToPoolResult> => {
24
+ return await new Promise((resolve) => {
25
+ setTimeout(
26
+ () => {
27
+ resolve(randomSimulation());
28
+ },
29
+ Math.random() * 100 + 1000,
30
+ );
31
+ });
32
+ };
@@ -19,7 +19,7 @@ export const transferFromMAToPool = async (
19
19
  const eip712Signature = await signCoreCommands(
20
20
  params.signer,
21
21
  chainId,
22
- params.accountId,
22
+ params.marginAccountId,
23
23
  params.owner.coreSigNonce,
24
24
  getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,
25
25
  );
@@ -28,7 +28,7 @@ export const transferFromMAToPool = async (
28
28
  const amount = scale(tokenDecimals)(params.amount);
29
29
 
30
30
  const { calldata: data, value } = encodeTransferFromMAToPool(
31
- params.accountId,
31
+ params.marginAccountId,
32
32
  amount,
33
33
  eip712Signature,
34
34
  params.pool.id,
@@ -29,7 +29,7 @@ export type RemoveLiquidityResult = {
29
29
  export type TransferFromMAToPoolParams = {
30
30
  signer: Signer | JsonRpcSigner;
31
31
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
32
- accountId: MarginAccountEntity['id'];
32
+ marginAccountId: MarginAccountEntity['id'];
33
33
  pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;
34
34
  amount: number;
35
35
  };
@@ -60,3 +60,16 @@ export type BridgeAndDepositPassivePoolParams = {
60
60
  export type BridgeAndDepositPassivePoolResult = {
61
61
  transactionHash: string | null;
62
62
  };
63
+
64
+ export type SimulateTransferFromMAToPoolResult = {
65
+ bridgeGasFees: number;
66
+ estimatedDepositedAmount: number;
67
+ };
68
+
69
+ // TODO: Milan reevaluate these params
70
+ export type SimulateTransferFromMAToPoolParams = {
71
+ signer: Signer | JsonRpcSigner;
72
+ lpPoolId: LpPoolEntity['id'];
73
+ tokenAddress: LpPoolEntity['tokenAddress'];
74
+ amount: number;
75
+ };
@@ -22,7 +22,7 @@ export const bridgeAndDepositExisingMA = async (
22
22
  const eip712Signature = await signCoreCommands(
23
23
  params.signer,
24
24
  chainId,
25
- params.accountId,
25
+ params.marginAccountId,
26
26
  params.owner.coreSigNonce,
27
27
  getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,
28
28
  );
@@ -37,7 +37,7 @@ export const bridgeAndDepositExisingMA = async (
37
37
  chainId: chainId,
38
38
  tokenAddress: params.tokenAddress,
39
39
  }),
40
- params.accountId,
40
+ params.marginAccountId,
41
41
  params.tokenAddress,
42
42
  amount,
43
43
  eip712Signature,
@@ -8,3 +8,4 @@ export * from './bridgeAndDepositExistingMA';
8
8
  export * from './bridgeAndDepositNewMA';
9
9
  export * from './transferMarginBetweenAccounts';
10
10
  export * from './withdrawMAAndBridge';
11
+ export * from './simulateTransferMarginBetweenAccounts';
@@ -0,0 +1,33 @@
1
+ import {
2
+ SimulateTransferMarginBetweenAccountsParams,
3
+ SimulateTransferMarginBetweenAccountsResult,
4
+ } from './types';
5
+
6
+ // The maximum is inclusive and the minimum is inclusive
7
+ function getRandomIntInclusive(min: number, max: number) {
8
+ min = Math.ceil(min);
9
+ max = Math.floor(max);
10
+ return Math.floor(Math.random() * (max - min + 1) + min);
11
+ }
12
+
13
+ const randomSimulation = (): SimulateTransferMarginBetweenAccountsResult => {
14
+ return {
15
+ bridgeGasFees: getRandomIntInclusive(1000, 100000),
16
+ marginRatio: getRandomIntInclusive(1, 100),
17
+ marginRatioHealth: 'danger',
18
+ };
19
+ };
20
+
21
+ export const simulateTransferMarginBetweenAccounts = async (
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
+ params: SimulateTransferMarginBetweenAccountsParams,
24
+ ): Promise<SimulateTransferMarginBetweenAccountsResult> => {
25
+ return await new Promise((resolve) => {
26
+ setTimeout(
27
+ () => {
28
+ resolve(randomSimulation());
29
+ },
30
+ Math.random() * 100 + 1000,
31
+ );
32
+ });
33
+ };
@@ -4,6 +4,7 @@ import {
4
4
  OwnerMetadataEntity,
5
5
  TokenEntity,
6
6
  } from '@reyaxyz/common';
7
+ import { simulateTransferMarginBetweenAccounts } from './simulateTransferMarginBetweenAccounts';
7
8
 
8
9
  export type CreateAccountParams = {
9
10
  signer: Signer | JsonRpcSigner;
@@ -80,10 +81,11 @@ export type TransferMarginBetweenAccountsResult = {
80
81
  export type WithdrawMAAndBridgeParams = {
81
82
  signer: Signer | JsonRpcSigner;
82
83
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
83
- accountId: MarginAccountEntity['id'];
84
+ marginAccountId: MarginAccountEntity['id'];
84
85
  tokenAddress: TokenEntity['address'];
85
86
  amount: number;
86
- receiverAddress: string;
87
+ // if not provided it has same value as owner.address
88
+ receiverAddress?: string;
87
89
  };
88
90
 
89
91
  export type WithdrawMAAndBridgeParamsResult = {
@@ -104,7 +106,7 @@ export type BridgeAndDepositNewMAResult = {
104
106
  export type BridgeAndDepositExisingMAParams = {
105
107
  signer: Signer | JsonRpcSigner;
106
108
  owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;
107
- accountId: MarginAccountEntity['id'];
109
+ marginAccountId: MarginAccountEntity['id'];
108
110
  tokenAddress: TokenEntity['address'];
109
111
  amount: number;
110
112
  };
@@ -112,3 +114,17 @@ export type BridgeAndDepositExisingMAParams = {
112
114
  export type BridgeAndDepositExisingMAResult = {
113
115
  transactionHash: string | null;
114
116
  };
117
+
118
+ export type SimulateTransferMarginBetweenAccountsResult = {
119
+ bridgeGasFees: number;
120
+ marginRatioHealth: MarginAccountEntity['marginRatioHealth'];
121
+ marginRatio: MarginAccountEntity['marginRatioPercentage'];
122
+ };
123
+
124
+ // TODO: Milan reevaluate these params
125
+ export type SimulateTransferMarginBetweenAccountsParams = {
126
+ signer: Signer | JsonRpcSigner;
127
+ marginAccountId: MarginAccountEntity['id'];
128
+ tokenAddress: TokenEntity['address'];
129
+ amount: number;
130
+ };
@@ -14,41 +14,46 @@ import {
14
14
  } from './types';
15
15
  import { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';
16
16
 
17
- export const withdrawMAAndBridge = async (
18
- params: WithdrawMAAndBridgeParams,
19
- ): Promise<WithdrawMAAndBridgeParamsResult> => {
20
- const network = await params.signer.provider?.getNetwork();
17
+ export const withdrawMAAndBridge = async ({
18
+ signer,
19
+ marginAccountId,
20
+ owner,
21
+ amount,
22
+ tokenAddress,
23
+ receiverAddress = owner.address,
24
+ }: WithdrawMAAndBridgeParams): Promise<WithdrawMAAndBridgeParamsResult> => {
25
+ const network = await signer.provider?.getNetwork();
21
26
  const chainId = Number(network?.chainId);
22
27
  const eip712Signature = await signCoreCommands(
23
- params.signer,
28
+ signer,
24
29
  chainId,
25
- params.accountId,
26
- params.owner.coreSigNonce,
30
+ marginAccountId,
31
+ owner.coreSigNonce,
27
32
  getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,
28
33
  );
29
34
 
30
- const { tokenDecimals } = getTokenDetails(params.tokenAddress);
31
- const amount = scale(tokenDecimals)(params.amount);
35
+ const { tokenDecimals } = getTokenDetails(tokenAddress);
36
+ const scaledAmount = scale(tokenDecimals)(amount);
32
37
 
33
38
  const { calldata: data, value } = encodeWithdrawMAAndBridge(
34
- params.accountId,
35
- params.tokenAddress,
36
- amount,
39
+ marginAccountId,
40
+ tokenAddress,
41
+ scaledAmount,
37
42
  eip712Signature,
38
43
  BigInt('10000000'),
39
44
  getSocketConnector({
40
- chainId: chainId,
41
- tokenAddress: params.tokenAddress,
45
+ chainId,
46
+ tokenAddress,
42
47
  }),
43
48
  getSocketController({
44
49
  reyaChainId: chainId,
45
- tokenAddress: params.tokenAddress,
50
+ tokenAddress,
46
51
  }),
47
- params.receiverAddress,
52
+ receiverAddress,
48
53
  );
49
54
 
50
55
  const result = await executeTransaction(
51
- params.signer,
56
+ signer,
52
57
  data,
53
58
  value,
54
59
  chainId,