@reyaxyz/sdk 0.145.2 → 0.146.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 (54) hide show
  1. package/README.md +1 -1
  2. package/dist/services/lp/encode.js +31 -1
  3. package/dist/services/lp/encode.js.map +1 -1
  4. package/dist/services/lp/index.js +2 -0
  5. package/dist/services/lp/index.js.map +1 -1
  6. package/dist/services/lp/stakeReya.js +75 -0
  7. package/dist/services/lp/stakeReya.js.map +1 -0
  8. package/dist/services/lp/types.js.map +1 -1
  9. package/dist/services/lp/unstakeStakedReya.js +75 -0
  10. package/dist/services/lp/unstakeStakedReya.js.map +1 -0
  11. package/dist/services/margin-accounts/bridgeAndDepositExistingMA.js +2 -6
  12. package/dist/services/margin-accounts/bridgeAndDepositExistingMA.js.map +1 -1
  13. package/dist/services/margin-accounts/encode.js +94 -2
  14. package/dist/services/margin-accounts/encode.js.map +1 -1
  15. package/dist/services/margin-accounts/index.js +2 -0
  16. package/dist/services/margin-accounts/index.js.map +1 -1
  17. package/dist/services/margin-accounts/oftBridgeAndDepositExistingMA.js +102 -0
  18. package/dist/services/margin-accounts/oftBridgeAndDepositExistingMA.js.map +1 -0
  19. package/dist/services/margin-accounts/oftWithdrawMAAndBridge.js +89 -0
  20. package/dist/services/margin-accounts/oftWithdrawMAAndBridge.js.map +1 -0
  21. package/dist/services/margin-accounts/types.js.map +1 -1
  22. package/dist/types/services/lp/encode.d.ts +2 -0
  23. package/dist/types/services/lp/encode.d.ts.map +1 -1
  24. package/dist/types/services/lp/index.d.ts +2 -0
  25. package/dist/types/services/lp/index.d.ts.map +1 -1
  26. package/dist/types/services/lp/stakeReya.d.ts +3 -0
  27. package/dist/types/services/lp/stakeReya.d.ts.map +1 -0
  28. package/dist/types/services/lp/types.d.ts +22 -0
  29. package/dist/types/services/lp/types.d.ts.map +1 -1
  30. package/dist/types/services/lp/unstakeStakedReya.d.ts +3 -0
  31. package/dist/types/services/lp/unstakeStakedReya.d.ts.map +1 -0
  32. package/dist/types/services/margin-accounts/bridgeAndDepositExistingMA.d.ts.map +1 -1
  33. package/dist/types/services/margin-accounts/encode.d.ts +13 -2
  34. package/dist/types/services/margin-accounts/encode.d.ts.map +1 -1
  35. package/dist/types/services/margin-accounts/index.d.ts +2 -0
  36. package/dist/types/services/margin-accounts/index.d.ts.map +1 -1
  37. package/dist/types/services/margin-accounts/oftBridgeAndDepositExistingMA.d.ts +3 -0
  38. package/dist/types/services/margin-accounts/oftBridgeAndDepositExistingMA.d.ts.map +1 -0
  39. package/dist/types/services/margin-accounts/oftWithdrawMAAndBridge.d.ts +3 -0
  40. package/dist/types/services/margin-accounts/oftWithdrawMAAndBridge.d.ts.map +1 -0
  41. package/dist/types/services/margin-accounts/types.d.ts +12 -0
  42. package/dist/types/services/margin-accounts/types.d.ts.map +1 -1
  43. package/package.json +3 -3
  44. package/src/services/lp/encode.ts +40 -0
  45. package/src/services/lp/index.ts +2 -0
  46. package/src/services/lp/stakeReya.ts +66 -0
  47. package/src/services/lp/types.ts +26 -0
  48. package/src/services/lp/unstakeStakedReya.ts +66 -0
  49. package/src/services/margin-accounts/bridgeAndDepositExistingMA.ts +0 -10
  50. package/src/services/margin-accounts/encode.ts +151 -2
  51. package/src/services/margin-accounts/index.ts +2 -0
  52. package/src/services/margin-accounts/oftBridgeAndDepositExistingMA.ts +112 -0
  53. package/src/services/margin-accounts/oftWithdrawMAAndBridge.ts +93 -0
  54. package/src/services/margin-accounts/types.ts +16 -0
package/README.md CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-12.23%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-7.2%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-6.12%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-11.84%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-7.12%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-5.83%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-3.33%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-6.79%25-red.svg?style=flat) |
10
10
 
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.encodeBridgeAndDepositPassivePool = exports.encodeWithdrawPassivePoolAndBridge = exports.encodeStakeFromMarginAccount = exports.encodeUnstakeFromMarginAccount = exports.encodeDepositLiquidityToAccount = void 0;
39
+ exports.encodeBridgeAndDepositPassivePool = exports.encodeUnstakeStakedReya = exports.encodeStakeReya = exports.encodeWithdrawPassivePoolAndBridge = exports.encodeStakeFromMarginAccount = exports.encodeUnstakeFromMarginAccount = exports.encodeDepositLiquidityToAccount = void 0;
40
40
  var ethers_1 = require("ethers");
41
41
  var common_1 = require("@reyaxyz/common");
42
42
  var ethers_2 = require("ethers");
@@ -121,6 +121,36 @@ var encodeWithdrawPassivePoolAndBridge = function (owner, poolId, sharesAmount,
121
121
  return { calldata: calldata, value: BigInt(0).toString(10) };
122
122
  };
123
123
  exports.encodeWithdrawPassivePoolAndBridge = encodeWithdrawPassivePoolAndBridge;
124
+ var encodeStakeReya = function (accountId, assetAmount, minShareAmount, withdrawSig) {
125
+ var functionSignature = 'stakeReya';
126
+ var parameters = [
127
+ {
128
+ accountId: accountId,
129
+ assetAmount: assetAmount,
130
+ minShareAmount: minShareAmount,
131
+ withdrawSig: withdrawSig,
132
+ },
133
+ ];
134
+ var INTERFACE = new ethers_1.Interface(common_1.PeripheryAbi);
135
+ var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
136
+ return { calldata: calldata, value: BigInt(0).toString(10) };
137
+ };
138
+ exports.encodeStakeReya = encodeStakeReya;
139
+ var encodeUnstakeStakedReya = function (accountId, shareAmount, minAssetAmount, withdrawSig) {
140
+ var functionSignature = 'unstakeStakedReya';
141
+ var parameters = [
142
+ {
143
+ accountId: accountId,
144
+ shareAmount: shareAmount,
145
+ minAssetAmount: minAssetAmount,
146
+ withdrawSig: withdrawSig,
147
+ },
148
+ ];
149
+ var INTERFACE = new ethers_1.Interface(common_1.PeripheryAbi);
150
+ var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
151
+ return { calldata: calldata, value: BigInt(0).toString(10) };
152
+ };
153
+ exports.encodeUnstakeStakedReya = encodeUnstakeStakedReya;
124
154
  var encodeBridgeAndDepositPassivePool = function (receiver, socketMsgGasLimit, socketConnector, socketBridgeOptions, socketFees, poolId, owner, amount, minShares) {
125
155
  var PERIPHERY_INTERFACE = new ethers_1.Interface(common_1.PeripheryAbi);
126
156
  var inputs = { poolId: poolId, owner: owner, minShares: minShares };
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/lp/encode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Interface } from 'ethers';\nimport {\n EIP712Signature,\n Socket_VaultWithPayloadAbi,\n MultiAction,\n MethodParameters,\n PeripheryAbi,\n signCoreCommands,\n getAddress,\n ContractType,\n CORE_DEADLINE_IN_SECONDS,\n getCurrentTimestampInSeconds,\n} from '@reyaxyz/common';\nimport { ethers, Signer } from 'ethers';\nimport {\n encodeSingleStakeFromMarginAccount,\n encodeSingleUnstakeFromMarginAccount,\n} from '../encode';\n\nexport const encodeDepositLiquidityToAccount = async (\n sig: EIP712Signature,\n srusdAmount: bigint,\n poolId: number,\n accountId: number,\n): Promise<MethodParameters> => {\n const functionSignature = 'depositLiquidityToAccount';\n const parameters = [{ accountId, poolId, sharesAmount: srusdAmount, sig }];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeUnstakeFromMarginAccount = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n accountId: number,\n poolId: number,\n srusdAmount: bigint,\n mintOut: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n\n encodeSingleUnstakeFromMarginAccount(\n poolId,\n srusdAmount,\n mintOut,\n multiAction,\n );\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n accountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n\n const functionSignature = 'execute';\n const parameters = [\n { accountId, commands: multiAction.commands, sig: eip712Signature },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeStakeFromMarginAccount = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n accountId: number,\n poolId: number,\n amount: bigint,\n minShares: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n\n encodeSingleStakeFromMarginAccount(poolId, amount, minShares, multiAction);\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n accountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n\n const functionSignature = 'execute';\n const parameters = [\n { accountId, commands: multiAction.commands, sig: eip712Signature },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeWithdrawPassivePoolAndBridge = (\n owner: string,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n sig: EIP712Signature,\n socketMsgGasLimit: bigint,\n chainId: number,\n receiver: string,\n): MethodParameters => {\n const functionSignature = 'withdrawPassivePool';\n const parameters = [\n {\n owner,\n poolId,\n sharesAmount,\n minOut,\n sig,\n socketMsgGasLimit,\n chainId,\n receiver,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeBridgeAndDepositPassivePool = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketBridgeOptions: string,\n socketFees: bigint,\n poolId: number,\n owner: string,\n amount: bigint,\n minShares: bigint,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(PeripheryAbi);\n const inputs = { poolId, owner, minShares };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositPassivePool((uint128,address,uint256))',\n [inputs],\n );\n\n const functionSignature = 'bridge';\n const parameters = [\n receiver,\n amount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\n socketBridgeOptions,\n ];\n const INTERFACE = new Interface(Socket_VaultWithPayloadAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: socketFees.toString(10) };\n};\n"]}
1
+ {"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/lp/encode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Interface } from 'ethers';\nimport {\n EIP712Signature,\n Socket_VaultWithPayloadAbi,\n MultiAction,\n MethodParameters,\n PeripheryAbi,\n signCoreCommands,\n getAddress,\n ContractType,\n CORE_DEADLINE_IN_SECONDS,\n getCurrentTimestampInSeconds,\n} from '@reyaxyz/common';\nimport { ethers, Signer } from 'ethers';\nimport {\n encodeSingleStakeFromMarginAccount,\n encodeSingleUnstakeFromMarginAccount,\n} from '../encode';\n\nexport const encodeDepositLiquidityToAccount = async (\n sig: EIP712Signature,\n srusdAmount: bigint,\n poolId: number,\n accountId: number,\n): Promise<MethodParameters> => {\n const functionSignature = 'depositLiquidityToAccount';\n const parameters = [{ accountId, poolId, sharesAmount: srusdAmount, sig }];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeUnstakeFromMarginAccount = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n accountId: number,\n poolId: number,\n srusdAmount: bigint,\n mintOut: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n\n encodeSingleUnstakeFromMarginAccount(\n poolId,\n srusdAmount,\n mintOut,\n multiAction,\n );\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n accountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n\n const functionSignature = 'execute';\n const parameters = [\n { accountId, commands: multiAction.commands, sig: eip712Signature },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeStakeFromMarginAccount = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n accountId: number,\n poolId: number,\n amount: bigint,\n minShares: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n\n encodeSingleStakeFromMarginAccount(poolId, amount, minShares, multiAction);\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n accountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n\n const functionSignature = 'execute';\n const parameters = [\n { accountId, commands: multiAction.commands, sig: eip712Signature },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeWithdrawPassivePoolAndBridge = (\n owner: string,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n sig: EIP712Signature,\n socketMsgGasLimit: bigint,\n chainId: number,\n receiver: string,\n): MethodParameters => {\n const functionSignature = 'withdrawPassivePool';\n const parameters = [\n {\n owner,\n poolId,\n sharesAmount,\n minOut,\n sig,\n socketMsgGasLimit,\n chainId,\n receiver,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeStakeReya = (\n accountId: number,\n assetAmount: bigint,\n minShareAmount: bigint,\n withdrawSig: EIP712Signature,\n): MethodParameters => {\n const functionSignature = 'stakeReya';\n const parameters = [\n {\n accountId,\n assetAmount,\n minShareAmount,\n withdrawSig,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeUnstakeStakedReya = (\n accountId: number,\n shareAmount: bigint,\n minAssetAmount: bigint,\n withdrawSig: EIP712Signature,\n): MethodParameters => {\n const functionSignature = 'unstakeStakedReya';\n const parameters = [\n {\n accountId,\n shareAmount,\n minAssetAmount,\n withdrawSig,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeBridgeAndDepositPassivePool = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketBridgeOptions: string,\n socketFees: bigint,\n poolId: number,\n owner: string,\n amount: bigint,\n minShares: bigint,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(PeripheryAbi);\n const inputs = { poolId, owner, minShares };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositPassivePool((uint128,address,uint256))',\n [inputs],\n );\n\n const functionSignature = 'bridge';\n const parameters = [\n receiver,\n amount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\n socketBridgeOptions,\n ];\n const INTERFACE = new Interface(Socket_VaultWithPayloadAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: socketFees.toString(10) };\n};\n"]}
@@ -20,4 +20,6 @@ __exportStar(require("./withdrawPassivePoolAndBridge"), exports);
20
20
  __exportStar(require("./transferStakeToMarginAccount"), exports);
21
21
  __exportStar(require("./unstakeFromMarginAccount"), exports);
22
22
  __exportStar(require("./stakeFromMarginAccount"), exports);
23
+ __exportStar(require("./stakeReya"), exports);
24
+ __exportStar(require("./unstakeStakedReya"), exports);
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,gEAA8C;AAC9C,iEAA+C;AAC/C,iEAA+C;AAC/C,6DAA2C;AAC3C,2DAAyC","sourcesContent":["export * from './types';\nexport * from './bridgeAndDepositPassivePool';\nexport * from './withdrawPassivePoolAndBridge';\nexport * from './transferStakeToMarginAccount';\nexport * from './unstakeFromMarginAccount';\nexport * from './stakeFromMarginAccount';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,gEAA8C;AAC9C,iEAA+C;AAC/C,iEAA+C;AAC/C,6DAA2C;AAC3C,2DAAyC;AACzC,8CAA4B;AAC5B,sDAAoC","sourcesContent":["export * from './types';\nexport * from './bridgeAndDepositPassivePool';\nexport * from './withdrawPassivePoolAndBridge';\nexport * from './transferStakeToMarginAccount';\nexport * from './unstakeFromMarginAccount';\nexport * from './stakeFromMarginAccount';\nexport * from './stakeReya';\nexport * from './unstakeStakedReya';\n"]}
@@ -0,0 +1,75 @@
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.stakeReya = void 0;
40
+ var network_1 = require("../../utils/network");
41
+ var common_1 = require("@reyaxyz/common");
42
+ var encode_1 = require("../encode");
43
+ var encode_2 = require("./encode");
44
+ var signAndBroadcastTransaction_1 = require("../signAndBroadcastTransaction");
45
+ var ethers_1 = require("ethers");
46
+ var stakeReya = function (params) { return __awaiter(void 0, void 0, void 0, function () {
47
+ var chainId, reyaTokenInfo, sreyaTokenInfo, assetAmount, minShareAmount, multiAction, withdrawSig, data, result;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ chainId = (0, network_1.getReyaNetwork)();
52
+ reyaTokenInfo = (0, common_1.getTokenInfoByName)('REYA', chainId);
53
+ sreyaTokenInfo = (0, common_1.getTokenInfoByName)('SREYA', chainId);
54
+ assetAmount = (0, common_1.scale)(reyaTokenInfo.decimals)(params.amount);
55
+ minShareAmount = params.minShareAmount
56
+ ? (0, common_1.scale)(sreyaTokenInfo.decimals)(params.minShareAmount)
57
+ : BigInt(0);
58
+ multiAction = new common_1.MultiAction();
59
+ (0, encode_1.encodeSingleWithdraw)(reyaTokenInfo.address, assetAmount, multiAction);
60
+ return [4 /*yield*/, (0, common_1.signCoreCommands)(params.signer, chainId, (0, common_1.getAddress)(chainId, common_1.ContractType.PERIPHERY_PROXY), params.marginAccountId, multiAction.commands, params.owner.coreSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + common_1.CORE_DEADLINE_IN_SECONDS, ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(['string', 'uint256'], ['stakeReya', minShareAmount]))];
61
+ case 1:
62
+ withdrawSig = (_a.sent()).signature;
63
+ data = (0, encode_2.encodeStakeReya)(params.marginAccountId, assetAmount, minShareAmount, withdrawSig).calldata;
64
+ return [4 /*yield*/, (0, signAndBroadcastTransaction_1.signAndBroadcastTransaction)(data, chainId, common_1.ContractType.PERIPHERY_PROXY, {})];
65
+ case 2:
66
+ result = _a.sent();
67
+ return [2 /*return*/, {
68
+ transactionHash: (result === null || result === void 0 ? void 0 : result.txHash) || null,
69
+ coreSigNonce: (result === null || result === void 0 ? void 0 : result.coreSigNonce) != null ? Number(result.coreSigNonce) : null,
70
+ }];
71
+ }
72
+ });
73
+ }); };
74
+ exports.stakeReya = stakeReya;
75
+ //# sourceMappingURL=stakeReya.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakeReya.js","sourceRoot":"/","sources":["services/lp/stakeReya.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAqD;AACrD,0CASyB;AACzB,oCAAiD;AACjD,mCAA2C;AAC3C,8EAA6E;AAC7E,iCAAgC;AAEzB,IAAM,SAAS,GAAG,UACvB,MAAuB;;;;;gBAEjB,OAAO,GAAG,IAAA,wBAAc,GAAE,CAAC;gBAE3B,aAAa,GAAG,IAAA,2BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACpD,cAAc,GAAG,IAAA,2BAAkB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtD,WAAW,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,cAAc,GAAG,MAAM,CAAC,cAAc;oBAC1C,CAAC,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;oBACvD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAER,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,IAAA,6BAAoB,EAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBAEnC,qBAAM,IAAA,yBAAgB,EACvD,MAAM,CAAC,MAAM,EACb,OAAO,EACP,IAAA,mBAAU,EAAC,OAAO,EAAE,qBAAY,CAAC,eAAe,CAAC,EACjD,MAAM,CAAC,eAAe,EACtB,WAAW,CAAC,QAAQ,EACpB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,iCAAwB,EACzD,eAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CACtC,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,CAAC,WAAW,EAAE,cAAc,CAAC,CAC9B,CACF,EAAA;;gBAZkB,WAAW,GAAK,CAAA,SAYlC,CAAA,UAZ6B;gBAcZ,IAAI,GAAK,IAAA,wBAAe,EACxC,MAAM,CAAC,eAAe,EACtB,WAAW,EACX,cAAc,EACd,WAAW,CACZ,SALqB,CAKpB;gBAEa,qBAAM,IAAA,yDAA2B,EAC9C,IAAI,EACJ,OAAO,EACP,qBAAY,CAAC,eAAe,EAC5B,EAAE,CACH,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,IAAI;wBACvC,YAAY,EACV,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;qBACpE,EAAC;;;KACH,CAAC;AAhDW,QAAA,SAAS,aAgDpB","sourcesContent":["import { StakeReyaParams, StakeReyaResult } from './types';\nimport { getReyaNetwork } from '../../utils/network';\nimport {\n scale,\n getTokenInfoByName,\n ContractType,\n getAddress,\n signCoreCommands,\n getCurrentTimestampInSeconds,\n CORE_DEADLINE_IN_SECONDS,\n MultiAction,\n} from '@reyaxyz/common';\nimport { encodeSingleWithdraw } from '../encode';\nimport { encodeStakeReya } from './encode';\nimport { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';\nimport { ethers } from 'ethers';\n\nexport const stakeReya = async (\n params: StakeReyaParams,\n): Promise<StakeReyaResult> => {\n const chainId = getReyaNetwork();\n\n const reyaTokenInfo = getTokenInfoByName('REYA', chainId);\n const sreyaTokenInfo = getTokenInfoByName('SREYA', chainId);\n const assetAmount = scale(reyaTokenInfo.decimals)(params.amount);\n const minShareAmount = params.minShareAmount\n ? scale(sreyaTokenInfo.decimals)(params.minShareAmount)\n : BigInt(0);\n\n const multiAction = new MultiAction();\n encodeSingleWithdraw(reyaTokenInfo.address, assetAmount, multiAction);\n\n const { signature: withdrawSig } = await signCoreCommands(\n params.signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n params.marginAccountId,\n multiAction.commands,\n params.owner.coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode(\n ['string', 'uint256'],\n ['stakeReya', minShareAmount],\n ),\n );\n\n const { calldata: data } = encodeStakeReya(\n params.marginAccountId,\n assetAmount,\n minShareAmount,\n withdrawSig,\n );\n\n const result = await signAndBroadcastTransaction(\n data,\n chainId,\n ContractType.PERIPHERY_PROXY,\n {},\n );\n\n return {\n transactionHash: result?.txHash || null,\n coreSigNonce:\n result?.coreSigNonce != null ? Number(result.coreSigNonce) : 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 MoneyInOutChainId,\n OwnerMetadataEntity,\n SocketDepositFees,\n} from '@reyaxyz/common';\n\nexport type TransferStakeToMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id'>;\n srusdAmount: number;\n};\n\nexport type TransferStakeToMarginAccountResult = {\n transactionHash: string | null;\n poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;\n};\n\nexport type UnstakeFromMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id'>;\n srusdAmount: number;\n};\n\nexport type UnstakeFromMarginAccountResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type StakeFromMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type StakeFromMarginAccountResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type WithdrawPassivePoolAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n sharePrice: LpWithdrawBalanceEntity['poolSharePrice'];\n sharesAmount: number;\n withdrawMax: boolean;\n};\n\nexport type WithdrawPassivePoolAndBridgeResult = {\n transactionHash: string | null;\n poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;\n};\n\nexport type BridgeAndDepositPassivePoolParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n socketDepositFees: SocketDepositFees['fees'];\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 MoneyInOutChainId,\n OwnerMetadataEntity,\n SocketDepositFees,\n} from '@reyaxyz/common';\n\nexport type TransferStakeToMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id'>;\n srusdAmount: number;\n};\n\nexport type TransferStakeToMarginAccountResult = {\n transactionHash: string | null;\n poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;\n};\n\nexport type UnstakeFromMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id'>;\n srusdAmount: number;\n};\n\nexport type UnstakeFromMarginAccountResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type StakeFromMarginAccountParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n};\n\nexport type StakeFromMarginAccountResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type WithdrawPassivePoolAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'poolSigNonce'>;\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n sharePrice: LpWithdrawBalanceEntity['poolSharePrice'];\n sharesAmount: number;\n withdrawMax: boolean;\n};\n\nexport type WithdrawPassivePoolAndBridgeResult = {\n transactionHash: string | null;\n poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;\n};\n\nexport type StakeReyaParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n amount: number;\n minShareAmount?: number;\n};\n\nexport type StakeReyaResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type UnstakeStakedReyaParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n marginAccountId: number;\n shareAmount: number;\n minAssetAmount?: number;\n};\n\nexport type UnstakeStakedReyaResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type BridgeAndDepositPassivePoolParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n pool: Pick<LpPoolEntity, 'id' | 'tokenAddress'>;\n amount: number;\n socketDepositFees: SocketDepositFees['fees'];\n};\n\nexport type BridgeAndDepositPassivePoolResult = {\n transactionHash: string | null;\n};\n"]}
@@ -0,0 +1,75 @@
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.unstakeStakedReya = void 0;
40
+ var network_1 = require("../../utils/network");
41
+ var common_1 = require("@reyaxyz/common");
42
+ var encode_1 = require("../encode");
43
+ var encode_2 = require("./encode");
44
+ var signAndBroadcastTransaction_1 = require("../signAndBroadcastTransaction");
45
+ var ethers_1 = require("ethers");
46
+ var unstakeStakedReya = function (params) { return __awaiter(void 0, void 0, void 0, function () {
47
+ var chainId, sreyaTokenInfo, reyaTokenInfo, shareAmount, minAssetAmount, multiAction, withdrawSig, data, result;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ chainId = (0, network_1.getReyaNetwork)();
52
+ sreyaTokenInfo = (0, common_1.getTokenInfoByName)('SREYA', chainId);
53
+ reyaTokenInfo = (0, common_1.getTokenInfoByName)('REYA', chainId);
54
+ shareAmount = (0, common_1.scale)(sreyaTokenInfo.decimals)(params.shareAmount);
55
+ minAssetAmount = params.minAssetAmount
56
+ ? (0, common_1.scale)(reyaTokenInfo.decimals)(params.minAssetAmount)
57
+ : BigInt(0);
58
+ multiAction = new common_1.MultiAction();
59
+ (0, encode_1.encodeSingleWithdraw)(sreyaTokenInfo.address, shareAmount, multiAction);
60
+ return [4 /*yield*/, (0, common_1.signCoreCommands)(params.signer, chainId, (0, common_1.getAddress)(chainId, common_1.ContractType.PERIPHERY_PROXY), params.marginAccountId, multiAction.commands, params.owner.coreSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + common_1.CORE_DEADLINE_IN_SECONDS, ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(['string', 'uint256'], ['unstakeStakedReya', minAssetAmount]))];
61
+ case 1:
62
+ withdrawSig = (_a.sent()).signature;
63
+ data = (0, encode_2.encodeUnstakeStakedReya)(params.marginAccountId, shareAmount, minAssetAmount, withdrawSig).calldata;
64
+ return [4 /*yield*/, (0, signAndBroadcastTransaction_1.signAndBroadcastTransaction)(data, chainId, common_1.ContractType.PERIPHERY_PROXY, {})];
65
+ case 2:
66
+ result = _a.sent();
67
+ return [2 /*return*/, {
68
+ transactionHash: (result === null || result === void 0 ? void 0 : result.txHash) || null,
69
+ coreSigNonce: (result === null || result === void 0 ? void 0 : result.coreSigNonce) != null ? Number(result.coreSigNonce) : null,
70
+ }];
71
+ }
72
+ });
73
+ }); };
74
+ exports.unstakeStakedReya = unstakeStakedReya;
75
+ //# sourceMappingURL=unstakeStakedReya.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unstakeStakedReya.js","sourceRoot":"/","sources":["services/lp/unstakeStakedReya.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAqD;AACrD,0CASyB;AACzB,oCAAiD;AACjD,mCAAmD;AACnD,8EAA6E;AAC7E,iCAAgC;AAEzB,IAAM,iBAAiB,GAAG,UAC/B,MAA+B;;;;;gBAEzB,OAAO,GAAG,IAAA,wBAAc,GAAE,CAAC;gBAE3B,cAAc,GAAG,IAAA,2BAAkB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtD,aAAa,GAAG,IAAA,2BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACpD,WAAW,GAAG,IAAA,cAAK,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACjE,cAAc,GAAG,MAAM,CAAC,cAAc;oBAC1C,CAAC,CAAC,IAAA,cAAK,EAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;oBACtD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAER,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,IAAA,6BAAoB,EAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBAEpC,qBAAM,IAAA,yBAAgB,EACvD,MAAM,CAAC,MAAM,EACb,OAAO,EACP,IAAA,mBAAU,EAAC,OAAO,EAAE,qBAAY,CAAC,eAAe,CAAC,EACjD,MAAM,CAAC,eAAe,EACtB,WAAW,CAAC,QAAQ,EACpB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,iCAAwB,EACzD,eAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CACtC,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CACtC,CACF,EAAA;;gBAZkB,WAAW,GAAK,CAAA,SAYlC,CAAA,UAZ6B;gBAcZ,IAAI,GAAK,IAAA,gCAAuB,EAChD,MAAM,CAAC,eAAe,EACtB,WAAW,EACX,cAAc,EACd,WAAW,CACZ,SALqB,CAKpB;gBAEa,qBAAM,IAAA,yDAA2B,EAC9C,IAAI,EACJ,OAAO,EACP,qBAAY,CAAC,eAAe,EAC5B,EAAE,CACH,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,IAAI;wBACvC,YAAY,EACV,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;qBACpE,EAAC;;;KACH,CAAC;AAhDW,QAAA,iBAAiB,qBAgD5B","sourcesContent":["import { UnstakeStakedReyaParams, UnstakeStakedReyaResult } from './types';\nimport { getReyaNetwork } from '../../utils/network';\nimport {\n scale,\n getTokenInfoByName,\n ContractType,\n getAddress,\n signCoreCommands,\n getCurrentTimestampInSeconds,\n CORE_DEADLINE_IN_SECONDS,\n MultiAction,\n} from '@reyaxyz/common';\nimport { encodeSingleWithdraw } from '../encode';\nimport { encodeUnstakeStakedReya } from './encode';\nimport { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';\nimport { ethers } from 'ethers';\n\nexport const unstakeStakedReya = async (\n params: UnstakeStakedReyaParams,\n): Promise<UnstakeStakedReyaResult> => {\n const chainId = getReyaNetwork();\n\n const sreyaTokenInfo = getTokenInfoByName('SREYA', chainId);\n const reyaTokenInfo = getTokenInfoByName('REYA', chainId);\n const shareAmount = scale(sreyaTokenInfo.decimals)(params.shareAmount);\n const minAssetAmount = params.minAssetAmount\n ? scale(reyaTokenInfo.decimals)(params.minAssetAmount)\n : BigInt(0);\n\n const multiAction = new MultiAction();\n encodeSingleWithdraw(sreyaTokenInfo.address, shareAmount, multiAction);\n\n const { signature: withdrawSig } = await signCoreCommands(\n params.signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n params.marginAccountId,\n multiAction.commands,\n params.owner.coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode(\n ['string', 'uint256'],\n ['unstakeStakedReya', minAssetAmount],\n ),\n );\n\n const { calldata: data } = encodeUnstakeStakedReya(\n params.marginAccountId,\n shareAmount,\n minAssetAmount,\n withdrawSig,\n );\n\n const result = await signAndBroadcastTransaction(\n data,\n chainId,\n ContractType.PERIPHERY_PROXY,\n {},\n );\n\n return {\n transactionHash: result?.txHash || null,\n coreSigNonce:\n result?.coreSigNonce != null ? Number(result.coreSigNonce) : null,\n };\n};\n"]}
@@ -40,11 +40,9 @@ exports.bridgeAndDepositExistingMA = void 0;
40
40
  var common_1 = require("@reyaxyz/common");
41
41
  var common_2 = require("@reyaxyz/common");
42
42
  var encode_1 = require("./encode");
43
- var encode_2 = require("../encode");
44
- var common_3 = require("@reyaxyz/common");
45
43
  var config_1 = require("../../config");
46
44
  var bridgeAndDepositExistingMA = function (params) { return __awaiter(void 0, void 0, void 0, function () {
47
- var moneyInOutChainId, _a, _b, reyaChainId, moneyInOutTokenInfo, reyaPeripheryTokenInfo, reyaCoreTokenInfo, multiAction, peripheryAddress, socketConnectors, _c, data, value, result, transactionModuleClient, error_1;
45
+ var moneyInOutChainId, _a, _b, reyaChainId, moneyInOutTokenInfo, reyaPeripheryTokenInfo, reyaCoreTokenInfo, peripheryAddress, socketConnectors, _c, data, value, result, transactionModuleClient, error_1;
48
46
  var _d, _e, _f;
49
47
  return __generator(this, function (_g) {
50
48
  switch (_g.label) {
@@ -66,14 +64,12 @@ var bridgeAndDepositExistingMA = function (params) { return __awaiter(void 0, vo
66
64
  reyaCoreTokenInfo = reyaPeripheryTokenInfo.isRUSDUnderlying
67
65
  ? (0, common_1.getTokenInfoByName)('RUSD', reyaChainId)
68
66
  : reyaPeripheryTokenInfo;
69
- multiAction = new common_3.MultiAction();
70
- (0, encode_2.encodeSingleDeposit)(reyaCoreTokenInfo.address, (0, common_1.scale)(reyaPeripheryTokenInfo.decimals)(params.amount), multiAction);
71
67
  peripheryAddress = (0, common_2.getAddress)(reyaChainId, common_2.ContractType.PERIPHERY_PROXY);
72
68
  socketConnectors = (0, common_1.getSocketConnectors)({
73
69
  moneyInOutChainId: moneyInOutChainId,
74
70
  tokenName: moneyInOutTokenInfo.name,
75
71
  });
76
- _c = (0, encode_1.encodeBridgeAndDepositExistingMA)(peripheryAddress, common_1.SOCKET_BRIDGE_IN_MSG_GAS_LIMIT, socketConnectors.deposit, '0x', params.socketDepositFees, params.marginAccountId, reyaPeripheryTokenInfo.address, (0, common_1.scale)(reyaPeripheryTokenInfo.decimals)(params.amount), (0, common_1.scale)(moneyInOutTokenInfo.decimals)(params.amount)), data = _c.calldata, value = _c.value;
72
+ _c = (0, encode_1.encodeBridgeAndDepositExistingMA)(peripheryAddress, common_1.SOCKET_BRIDGE_IN_MSG_GAS_LIMIT, socketConnectors.deposit, '0x', params.socketDepositFees, params.marginAccountId, reyaPeripheryTokenInfo.address, (0, common_1.scale)(moneyInOutTokenInfo.decimals)(params.amount)), data = _c.calldata, value = _c.value;
77
73
  return [4 /*yield*/, (0, common_2.executeTransaction)(params.signer, data, value, moneyInOutChainId, (0, common_1.getSocketVault)({
78
74
  moneyInOutChainId: moneyInOutChainId,
79
75
  tokenName: moneyInOutTokenInfo.name,
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getSocketConnectors,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n getReyaNetworkFromMoneyInOutChainId,\n SOCKET_BRIDGE_IN_MSG_GAS_LIMIT,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress, executeTransaction } from '@reyaxyz/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExistingMAParams,\n BridgeAndDepositExistingMAResult,\n} from './types';\nimport { encodeSingleDeposit } from '../encode';\nimport { MultiAction } from '@reyaxyz/common';\nimport { getTransactionModuleClient } from '../../config';\n\nexport const bridgeAndDepositExistingMA = async (\n params: BridgeAndDepositExistingMAParams,\n): Promise<BridgeAndDepositExistingMAResult> => {\n const moneyInOutChainId: MoneyInOutChainId =\n params.moneyInOutChainId ??\n Number((await params.signer.provider?.getNetwork())?.chainId);\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId);\n\n const moneyInOutTokenInfo = getTokenInfoByAddress(\n params.tokenAddress,\n moneyInOutChainId,\n );\n const reyaPeripheryTokenInfo = getTokenInfoByName(\n moneyInOutTokenInfo.name === 'USDC.E' ? 'USDC' : moneyInOutTokenInfo.name,\n reyaChainId,\n );\n const reyaCoreTokenInfo = reyaPeripheryTokenInfo.isRUSDUnderlying\n ? getTokenInfoByName('RUSD', reyaChainId)\n : reyaPeripheryTokenInfo;\n\n const multiAction = new MultiAction();\n encodeSingleDeposit(\n reyaCoreTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n multiAction,\n );\n\n const peripheryAddress = getAddress(\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n peripheryAddress,\n SOCKET_BRIDGE_IN_MSG_GAS_LIMIT,\n socketConnectors.deposit,\n '0x',\n params.socketDepositFees,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n scale(moneyInOutTokenInfo.decimals)(params.amount),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n }),\n );\n\n if (!result?.hash) {\n return {\n transactionHash: null,\n };\n }\n\n try {\n const transactionModuleClient = getTransactionModuleClient();\n await transactionModuleClient.pushPendingTransaction(\n params.marginAccountId,\n result.hash,\n moneyInOutChainId,\n params.amount,\n reyaCoreTokenInfo.address,\n 'deposit',\n );\n } catch (error) {\n console.error('Error persisting pending deposit transaction', error);\n }\n\n return {\n transactionHash: result?.hash,\n };\n};\n"]}
1
+ {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CASyB;AACzB,0CAA+E;AAC/E,mCAA4D;AAK5D,uCAA0D;AAEnD,IAAM,0BAA0B,GAAG,UACxC,MAAwC;;;;;;4BAGtC,MAAM,CAAC,iBAAiB;;;;gBACxB,KAAA,MAAM,CAAA;gBAAE,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAAlD,KAAA,kBAAO,MAAA,CAAC,SAA0C,CAAC,0CAAE,OAAO,EAAC,CAAA;;;gBAFzD,iBAAiB,KAEwC;gBACzD,WAAW,GAAG,IAAA,4CAAmC,EAAC,iBAAiB,CAAC,CAAC;gBAErE,mBAAmB,GAAG,IAAA,8BAAqB,EAC/C,MAAM,CAAC,YAAY,EACnB,iBAAiB,CAClB,CAAC;gBACI,sBAAsB,GAAG,IAAA,2BAAkB,EAC/C,mBAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EACzE,WAAW,CACZ,CAAC;gBACI,iBAAiB,GAAG,sBAAsB,CAAC,gBAAgB;oBAC/D,CAAC,CAAC,IAAA,2BAAkB,EAAC,MAAM,EAAE,WAAW,CAAC;oBACzC,CAAC,CAAC,sBAAsB,CAAC;gBAErB,gBAAgB,GAAG,IAAA,mBAAU,EACjC,WAAW,EACX,qBAAY,CAAC,eAAe,CAC7B,CAAC;gBAEI,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;oBAC3C,iBAAiB,EAAE,iBAAiB;oBACpC,SAAS,EAAE,mBAAmB,CAAC,IAAI;iBACpC,CAAC,CAAC;gBAEG,KAA4B,IAAA,yCAAgC,EAChE,gBAAgB,EAChB,uCAA8B,EAC9B,gBAAgB,CAAC,OAAO,EACxB,IAAI,EACJ,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,eAAe,EACtB,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACnD,EATiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAS3B;gBAEa,qBAAM,IAAA,2BAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,iBAAiB,EACjB,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,mBAAmB,CAAC,IAAI;qBACpC,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,EAAE,CAAC;oBAClB,sBAAO;4BACL,eAAe,EAAE,IAAI;yBACtB,EAAC;gBACJ,CAAC;;;;gBAGO,uBAAuB,GAAG,IAAA,mCAA0B,GAAE,CAAC;gBAC7D,qBAAM,uBAAuB,CAAC,sBAAsB,CAClD,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,IAAI,EACX,iBAAiB,EACjB,MAAM,CAAC,MAAM,EACb,iBAAiB,CAAC,OAAO,EACzB,SAAS,CACV,EAAA;;gBAPD,SAOC,CAAC;;;;gBAEF,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,OAAK,CAAC,CAAC;;oBAGvE,sBAAO;oBACL,eAAe,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;iBAC9B,EAAC;;;KACH,CAAC;AA3EW,QAAA,0BAA0B,8BA2ErC","sourcesContent":["import {\n getSocketConnectors,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n getReyaNetworkFromMoneyInOutChainId,\n SOCKET_BRIDGE_IN_MSG_GAS_LIMIT,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress, executeTransaction } from '@reyaxyz/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExistingMAParams,\n BridgeAndDepositExistingMAResult,\n} from './types';\nimport { getTransactionModuleClient } from '../../config';\n\nexport const bridgeAndDepositExistingMA = async (\n params: BridgeAndDepositExistingMAParams,\n): Promise<BridgeAndDepositExistingMAResult> => {\n const moneyInOutChainId: MoneyInOutChainId =\n params.moneyInOutChainId ??\n Number((await params.signer.provider?.getNetwork())?.chainId);\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId);\n\n const moneyInOutTokenInfo = getTokenInfoByAddress(\n params.tokenAddress,\n moneyInOutChainId,\n );\n const reyaPeripheryTokenInfo = getTokenInfoByName(\n moneyInOutTokenInfo.name === 'USDC.E' ? 'USDC' : moneyInOutTokenInfo.name,\n reyaChainId,\n );\n const reyaCoreTokenInfo = reyaPeripheryTokenInfo.isRUSDUnderlying\n ? getTokenInfoByName('RUSD', reyaChainId)\n : reyaPeripheryTokenInfo;\n\n const peripheryAddress = getAddress(\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n peripheryAddress,\n SOCKET_BRIDGE_IN_MSG_GAS_LIMIT,\n socketConnectors.deposit,\n '0x',\n params.socketDepositFees,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n scale(moneyInOutTokenInfo.decimals)(params.amount),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n }),\n );\n\n if (!result?.hash) {\n return {\n transactionHash: null,\n };\n }\n\n try {\n const transactionModuleClient = getTransactionModuleClient();\n await transactionModuleClient.pushPendingTransaction(\n params.marginAccountId,\n result.hash,\n moneyInOutChainId,\n params.amount,\n reyaCoreTokenInfo.address,\n 'deposit',\n );\n } catch (error) {\n console.error('Error persisting pending deposit transaction', error);\n }\n\n return {\n transactionHash: result?.hash,\n };\n};\n"]}
@@ -36,13 +36,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.encodeBridgeAndDepositExistingMA = exports.encodeWithdrawMAAndBridge = exports.encodeTransferMargin = exports.encodeCreateAccountCall = void 0;
39
+ exports.encodeOFTBridgeAndDepositExistingMA = exports.buildOFTBridgeAndDepositExistingMASendParam = exports.encodeLzSendAndComposeExtraOptions = exports.encodeWithdrawMALZ = exports.encodeBridgeAndDepositExistingMA = exports.encodeWithdrawMAAndBridge = exports.encodeTransferMargin = exports.encodeCreateAccountCall = void 0;
40
40
  var common_1 = require("@reyaxyz/common");
41
41
  var ethers_1 = require("ethers");
42
42
  var encode_1 = require("../encode");
43
43
  var common_2 = require("@reyaxyz/common");
44
44
  var common_3 = require("@reyaxyz/common");
45
45
  var ethers_2 = require("ethers");
46
+ var LzComposerOperationType;
47
+ (function (LzComposerOperationType) {
48
+ LzComposerOperationType[LzComposerOperationType["NONE"] = 0] = "NONE";
49
+ LzComposerOperationType[LzComposerOperationType["DEPOSIT_SPOT_ACCOUNT"] = 1] = "DEPOSIT_SPOT_ACCOUNT";
50
+ LzComposerOperationType[LzComposerOperationType["DEPOSIT_ACCOUNT"] = 2] = "DEPOSIT_ACCOUNT";
51
+ })(LzComposerOperationType || (LzComposerOperationType = {}));
46
52
  var encodeCreateAccountCall = function (accountOwner) {
47
53
  var functionSignature = 'createAccount';
48
54
  var parameters = [accountOwner];
@@ -103,7 +109,7 @@ var encodeWithdrawMAAndBridge = function (accountId, corePeripheryTokenAddress,
103
109
  return { calldata: calldata, value: BigInt(0).toString(10) };
104
110
  };
105
111
  exports.encodeWithdrawMAAndBridge = encodeWithdrawMAAndBridge;
106
- var encodeBridgeAndDepositExistingMA = function (receiver, socketMsgGasLimit, socketConnector, socketBridgeOptions, socketFees, accountId, peripheryTokenAddress, peripheryTokenAmount, moneyInOutTokenAmount) {
112
+ var encodeBridgeAndDepositExistingMA = function (receiver, socketMsgGasLimit, socketConnector, socketBridgeOptions, socketFees, accountId, peripheryTokenAddress, moneyInOutTokenAmount) {
107
113
  var PERIPHERY_INTERFACE = new ethers_1.Interface(common_2.PeripheryAbi);
108
114
  var inputs = {
109
115
  accountId: accountId,
@@ -124,4 +130,90 @@ var encodeBridgeAndDepositExistingMA = function (receiver, socketMsgGasLimit, so
124
130
  return { calldata: calldata, value: socketFees.toString(10) };
125
131
  };
126
132
  exports.encodeBridgeAndDepositExistingMA = encodeBridgeAndDepositExistingMA;
133
+ var encodeWithdrawMALZ = function (accountId, corePeripheryTokenAddress, corePeripheryTokenAmount, sig, dstEid, receiver) {
134
+ var functionSignature = 'withdrawMALZ';
135
+ var parameters = [
136
+ {
137
+ accountId: accountId,
138
+ token: corePeripheryTokenAddress,
139
+ tokenAmount: corePeripheryTokenAmount,
140
+ sig: sig,
141
+ dstEid: dstEid,
142
+ receiver: receiver,
143
+ },
144
+ ];
145
+ var INTERFACE = new ethers_1.Interface(common_2.PeripheryAbi);
146
+ var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
147
+ return { calldata: calldata, value: BigInt(0).toString(10) };
148
+ };
149
+ exports.encodeWithdrawMALZ = encodeWithdrawMALZ;
150
+ // Gas for lzReceive on destination: token credit + endpoint.sendCompose() queuing
151
+ var LZ_RECEIVE_GAS = 1000000;
152
+ // Gas estimate for lzCompose execution on destination chain
153
+ // Covers: abi.decode + createOrGetSpotAccount/depositExistingMA in OftModule.lzCompose
154
+ var LZ_COMPOSE_GAS = 1000000;
155
+ /**
156
+ * Encode LZ v3 extraOptions with both lzReceive and lzCompose options.
157
+ * Required for msgType=2 (SEND_AND_CALL) since enforced options only cover msgType=1.
158
+ */
159
+ var encodeLzSendAndComposeExtraOptions = function (receiveGas, composeGas) {
160
+ // Options v3 layout:
161
+ // TYPE_3 header: uint16(3)
162
+ // --- lzReceive option ---
163
+ // WORKER_ID: uint8(1)
164
+ // length: uint16(17) = OPTION_TYPE(1) + GAS(16)
165
+ // OPTION_TYPE_LZRECEIVE: uint8(1)
166
+ // gas: uint128
167
+ // --- lzCompose option ---
168
+ // WORKER_ID: uint8(1)
169
+ // length: uint16(19) = OPTION_TYPE(1) + INDEX(2) + GAS(16)
170
+ // OPTION_TYPE_LZCOMPOSE: uint8(3)
171
+ // index: uint16(0)
172
+ // gas: uint128
173
+ return ethers_2.ethers.solidityPacked([
174
+ 'uint16',
175
+ 'uint8',
176
+ 'uint16',
177
+ 'uint8',
178
+ 'uint128',
179
+ 'uint8',
180
+ 'uint16',
181
+ 'uint8',
182
+ 'uint16',
183
+ 'uint128',
184
+ ], [3, 1, 17, 1, receiveGas, 1, 19, 3, 0, composeGas]);
185
+ };
186
+ exports.encodeLzSendAndComposeExtraOptions = encodeLzSendAndComposeExtraOptions;
187
+ var buildOFTBridgeAndDepositExistingMASendParam = function (dstEid, receiverAddress, accountId, peripheryTokenAddress, amountLD, minAmountLD) {
188
+ var opType = LzComposerOperationType.DEPOSIT_ACCOUNT;
189
+ var opData = ethers_2.ethers.AbiCoder.defaultAbiCoder().encode(['uint128', 'address'], [accountId, peripheryTokenAddress]);
190
+ var composeMsg = ethers_2.ethers.AbiCoder.defaultAbiCoder().encode(['uint8', 'bytes'], [opType, opData]);
191
+ var receiverBytes32 = ethers_2.ethers.zeroPadValue(receiverAddress, 32);
192
+ var extraOptions = (0, exports.encodeLzSendAndComposeExtraOptions)(LZ_RECEIVE_GAS, LZ_COMPOSE_GAS);
193
+ var sendParam = {
194
+ dstEid: dstEid,
195
+ to: receiverBytes32,
196
+ amountLD: amountLD,
197
+ minAmountLD: minAmountLD,
198
+ extraOptions: extraOptions,
199
+ composeMsg: composeMsg,
200
+ oftCmd: '0x',
201
+ };
202
+ return { sendParam: sendParam, composeMsg: composeMsg };
203
+ };
204
+ exports.buildOFTBridgeAndDepositExistingMASendParam = buildOFTBridgeAndDepositExistingMASendParam;
205
+ var encodeOFTBridgeAndDepositExistingMA = function (dstEid, receiverAddress, accountId, peripheryTokenAddress, amountLD, minAmountLD, messagingFee, callerAddress) {
206
+ var sendParam = (0, exports.buildOFTBridgeAndDepositExistingMASendParam)(dstEid, receiverAddress, accountId, peripheryTokenAddress, amountLD, minAmountLD).sendParam;
207
+ var INTERFACE = new ethers_1.Interface(common_2.OFTAbi);
208
+ var calldata = INTERFACE.encodeFunctionData('send', [
209
+ sendParam,
210
+ messagingFee,
211
+ callerAddress,
212
+ ]);
213
+ return {
214
+ calldata: calldata,
215
+ value: messagingFee.nativeFee.toString(10),
216
+ };
217
+ };
218
+ exports.encodeOFTBridgeAndDepositExistingMA = encodeOFTBridgeAndDepositExistingMA;
127
219
  //# sourceMappingURL=encode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAgE;AAChE,iCAAmC;AACnC,oCAAuD;AACvD,0CASyB;AACzB,0CAA+D;AAE/D,iCAAgC;AAEzB,IAAM,uBAAuB,GAAG,UACrC,YAAoB;IAEpB,IAAM,iBAAiB,GAAG,eAAe,CAAC;IAC1C,IAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,gBAAG,CAAC,CAAC;IACrC,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC;AAEK,IAAM,oBAAoB,GAAG,UAClC,MAAc,EACd,OAAe,EACf,YAAoB,EACpB,mBAA2B,EAC3B,iBAAyB,EACzB,KAAa,EACb,MAAc;;;;;gBAER,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,8CAA8C;gBAC9C,IAAA,mCAA0B,EAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAEnC,qBAAM,IAAA,yBAAgB,EAC3D,MAAM,EACN,OAAO,EACP,IAAA,mBAAU,EAAC,OAAO,EAAE,qBAAY,CAAC,eAAe,CAAC,EACjD,mBAAmB,EACnB,WAAW,CAAC,QAAQ,EACpB,YAAY,GAAG,CAAC,EAChB,IAAA,qCAA4B,GAAE,GAAG,iCAAwB,EACzD,eAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CACjD,EAAA;;gBATkB,eAAe,GAAK,CAAA,SAStC,CAAA,UATiC;gBAW5B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,iBAAiB,GAAG,oBAAoB,CAAC;gBACzC,UAAU,GAAG;oBACjB;wBACE,SAAS,EAAE,mBAAmB;wBAC9B,QAAQ,EAAE;4BACR,aAAa,EAAE,iBAAiB;4BAChC,UAAU,EAAE,KAAK;4BACjB,gBAAgB,EAAE,MAAM;yBACzB;wBACD,GAAG,EAAE,eAAe;qBACrB;iBACF,CAAC;gBAEI,SAAS,GAAG,IAAI,kBAAS,CAAC,qBAAY,CAAC,CAAC;gBACxC,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;gBAC7E,sBAAO;wBACL,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;qBAClC,EAAC;;;KACH,CAAC;AA5CW,QAAA,oBAAoB,wBA4C/B;AAEK,IAAM,yBAAyB,GAAG,UACvC,SAAiB,EACjB,yBAAiC,EACjC,wBAAgC,EAChC,GAAoB,EACpB,iBAAyB,EACzB,OAAe,EACf,QAAgB;IAEhB,IAAM,iBAAiB,GAAG,YAAY,CAAC;IACvC,IAAM,UAAU,GAAG;QACjB;YACE,SAAS,WAAA;YACT,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAE,wBAAwB;YACrC,GAAG,KAAA;YACH,iBAAiB,mBAAA;YACjB,OAAO,SAAA;YACP,QAAQ,UAAA;SACT;KACF,CAAC;IACF,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,qBAAY,CAAC,CAAC;IAC9C,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC;AAxBW,QAAA,yBAAyB,6BAwBpC;AAEK,IAAM,gCAAgC,GAAG,UAC9C,QAAgB,EAChB,iBAAyB,EACzB,eAAuB,EACvB,mBAA2B,EAC3B,UAAkB,EAClB,SAAiB,EACjB,qBAA6B,EAC7B,oBAA4B,EAC5B,qBAA6B;IAE7B,IAAM,mBAAmB,GAAG,IAAI,kBAAS,CAAC,qBAAY,CAAC,CAAC;IACxD,IAAM,MAAM,GAAG;QACb,SAAS,WAAA;QACT,KAAK,EAAE,qBAAqB;KAC7B,CAAC;IACF,IAAM,iBAAiB,GAAG,mBAAmB,CAAC,kBAAkB,CAC9D,sCAAsC,EACtC,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,iBAAiB,GAAG,QAAQ,CAAC;IACnC,IAAM,UAAU,GAAG;QACjB,QAAQ;QACR,qBAAqB;QACrB,iBAAiB;QACjB,eAAe;QACf,iBAAiB;QACjB,mBAAmB;KACpB,CAAC;IACF,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,mCAA0B,CAAC,CAAC;IAC5D,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC;AAjCW,QAAA,gCAAgC,oCAiC3C","sourcesContent":["import { MethodParameters, MultiAction } from '@reyaxyz/common';\nimport { Interface } from 'ethers';\nimport { encodeSingleTransferMargin } from '../encode';\nimport {\n CoreAbi as abi,\n PeripheryAbi,\n Socket_VaultWithPayloadAbi,\n CORE_DEADLINE_IN_SECONDS,\n EIP712Signature,\n signCoreCommands,\n ContractType,\n getAddress,\n} from '@reyaxyz/common';\nimport { getCurrentTimestampInSeconds } from '@reyaxyz/common';\nimport { Signer } from 'ethers';\nimport { ethers } from 'ethers';\n\nexport const encodeCreateAccountCall = (\n accountOwner: string,\n): MethodParameters => {\n const functionSignature = 'createAccount';\n const parameters = [accountOwner];\n const INTERFACE = new Interface(abi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeTransferMargin = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n fromMarginAccountId: number,\n toMarginAccountId: number,\n token: string,\n amount: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n // todo: note can we make this more stateless?\n encodeSingleTransferMargin(toMarginAccountId, token, amount, multiAction);\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n fromMarginAccountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n const functionSignature = 'transferFromMAToMA';\n const parameters = [\n {\n accountId: fromMarginAccountId,\n transfer: {\n destAccountId: toMarginAccountId,\n collateral: token,\n collateralAmount: amount,\n },\n sig: eip712Signature,\n },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeWithdrawMAAndBridge = (\n accountId: number,\n corePeripheryTokenAddress: string,\n corePeripheryTokenAmount: bigint,\n sig: EIP712Signature,\n socketMsgGasLimit: bigint,\n chainId: number,\n receiver: string,\n): MethodParameters => {\n const functionSignature = 'withdrawMA';\n const parameters = [\n {\n accountId,\n token: corePeripheryTokenAddress,\n tokenAmount: corePeripheryTokenAmount,\n sig,\n socketMsgGasLimit,\n chainId,\n receiver,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeBridgeAndDepositExistingMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketBridgeOptions: string,\n socketFees: bigint,\n accountId: number,\n peripheryTokenAddress: string,\n peripheryTokenAmount: bigint,\n moneyInOutTokenAmount: bigint,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(PeripheryAbi);\n const inputs = {\n accountId,\n token: peripheryTokenAddress,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositExistingMA((uint128,address))',\n [inputs],\n );\n\n const functionSignature = 'bridge';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\n socketBridgeOptions,\n ];\n const INTERFACE = new Interface(Socket_VaultWithPayloadAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: socketFees.toString(10) };\n};\n"]}
1
+ {"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n MethodParameters,\n MultiAction,\n OFTSendParam,\n OFTMessagingFee,\n} from '@reyaxyz/common';\nimport { Interface } from 'ethers';\nimport { encodeSingleTransferMargin } from '../encode';\nimport {\n CoreAbi as abi,\n OFTAbi as OFTAbi,\n PeripheryAbi,\n Socket_VaultWithPayloadAbi,\n CORE_DEADLINE_IN_SECONDS,\n EIP712Signature,\n signCoreCommands,\n ContractType,\n getAddress,\n} from '@reyaxyz/common';\nimport { getCurrentTimestampInSeconds } from '@reyaxyz/common';\nimport { Signer } from 'ethers';\nimport { ethers } from 'ethers';\n\nenum LzComposerOperationType {\n NONE = 0,\n DEPOSIT_SPOT_ACCOUNT = 1,\n DEPOSIT_ACCOUNT = 2,\n}\n\nexport const encodeCreateAccountCall = (\n accountOwner: string,\n): MethodParameters => {\n const functionSignature = 'createAccount';\n const parameters = [accountOwner];\n const INTERFACE = new Interface(abi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeTransferMargin = async (\n signer: Signer,\n chainId: number,\n coreSigNonce: number,\n fromMarginAccountId: number,\n toMarginAccountId: number,\n token: string,\n amount: bigint,\n): Promise<MethodParameters> => {\n const multiAction = new MultiAction();\n // todo: note can we make this more stateless?\n encodeSingleTransferMargin(toMarginAccountId, token, amount, multiAction);\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n chainId,\n getAddress(chainId, ContractType.PERIPHERY_PROXY),\n fromMarginAccountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode([], []),\n );\n\n const value = BigInt(0);\n const functionSignature = 'transferFromMAToMA';\n const parameters = [\n {\n accountId: fromMarginAccountId,\n transfer: {\n destAccountId: toMarginAccountId,\n collateral: token,\n collateralAmount: amount,\n },\n sig: eip712Signature,\n },\n ];\n\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(value).toString(10),\n };\n};\n\nexport const encodeWithdrawMAAndBridge = (\n accountId: number,\n corePeripheryTokenAddress: string,\n corePeripheryTokenAmount: bigint,\n sig: EIP712Signature,\n socketMsgGasLimit: bigint,\n chainId: number,\n receiver: string,\n): MethodParameters => {\n const functionSignature = 'withdrawMA';\n const parameters = [\n {\n accountId,\n token: corePeripheryTokenAddress,\n tokenAmount: corePeripheryTokenAmount,\n sig,\n socketMsgGasLimit,\n chainId,\n receiver,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeBridgeAndDepositExistingMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketBridgeOptions: string,\n socketFees: bigint,\n accountId: number,\n peripheryTokenAddress: string,\n moneyInOutTokenAmount: bigint,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(PeripheryAbi);\n const inputs = {\n accountId,\n token: peripheryTokenAddress,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositExistingMA((uint128,address))',\n [inputs],\n );\n\n const functionSignature = 'bridge';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\n socketBridgeOptions,\n ];\n const INTERFACE = new Interface(Socket_VaultWithPayloadAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: socketFees.toString(10) };\n};\n\nexport const encodeWithdrawMALZ = (\n accountId: number,\n corePeripheryTokenAddress: string,\n corePeripheryTokenAmount: bigint,\n sig: EIP712Signature,\n dstEid: number,\n receiver: string,\n): MethodParameters => {\n const functionSignature = 'withdrawMALZ';\n const parameters = [\n {\n accountId,\n token: corePeripheryTokenAddress,\n tokenAmount: corePeripheryTokenAmount,\n sig,\n dstEid,\n receiver,\n },\n ];\n const INTERFACE = new Interface(PeripheryAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\n// Gas for lzReceive on destination: token credit + endpoint.sendCompose() queuing\nconst LZ_RECEIVE_GAS = 1_000_000;\n// Gas estimate for lzCompose execution on destination chain\n// Covers: abi.decode + createOrGetSpotAccount/depositExistingMA in OftModule.lzCompose\nconst LZ_COMPOSE_GAS = 1_000_000;\n\n/**\n * Encode LZ v3 extraOptions with both lzReceive and lzCompose options.\n * Required for msgType=2 (SEND_AND_CALL) since enforced options only cover msgType=1.\n */\nexport const encodeLzSendAndComposeExtraOptions = (\n receiveGas: number,\n composeGas: number,\n): string => {\n // Options v3 layout:\n // TYPE_3 header: uint16(3)\n // --- lzReceive option ---\n // WORKER_ID: uint8(1)\n // length: uint16(17) = OPTION_TYPE(1) + GAS(16)\n // OPTION_TYPE_LZRECEIVE: uint8(1)\n // gas: uint128\n // --- lzCompose option ---\n // WORKER_ID: uint8(1)\n // length: uint16(19) = OPTION_TYPE(1) + INDEX(2) + GAS(16)\n // OPTION_TYPE_LZCOMPOSE: uint8(3)\n // index: uint16(0)\n // gas: uint128\n return ethers.solidityPacked(\n [\n 'uint16',\n 'uint8',\n 'uint16',\n 'uint8',\n 'uint128',\n 'uint8',\n 'uint16',\n 'uint8',\n 'uint16',\n 'uint128',\n ],\n [3, 1, 17, 1, receiveGas, 1, 19, 3, 0, composeGas],\n );\n};\n\nexport const buildOFTBridgeAndDepositExistingMASendParam = (\n dstEid: number,\n receiverAddress: string,\n accountId: number,\n peripheryTokenAddress: string,\n amountLD: bigint,\n minAmountLD: bigint,\n): { sendParam: OFTSendParam; composeMsg: string } => {\n const opType = LzComposerOperationType.DEPOSIT_ACCOUNT;\n const opData = ethers.AbiCoder.defaultAbiCoder().encode(\n ['uint128', 'address'],\n [accountId, peripheryTokenAddress],\n );\n\n const composeMsg = ethers.AbiCoder.defaultAbiCoder().encode(\n ['uint8', 'bytes'],\n [opType, opData],\n );\n\n const receiverBytes32 = ethers.zeroPadValue(receiverAddress, 32);\n const extraOptions = encodeLzSendAndComposeExtraOptions(\n LZ_RECEIVE_GAS,\n LZ_COMPOSE_GAS,\n );\n\n const sendParam: OFTSendParam = {\n dstEid,\n to: receiverBytes32,\n amountLD,\n minAmountLD,\n extraOptions,\n composeMsg,\n oftCmd: '0x',\n };\n\n return { sendParam, composeMsg };\n};\n\nexport const encodeOFTBridgeAndDepositExistingMA = (\n dstEid: number,\n receiverAddress: string,\n accountId: number,\n peripheryTokenAddress: string,\n amountLD: bigint,\n minAmountLD: bigint,\n messagingFee: OFTMessagingFee,\n callerAddress: string,\n): MethodParameters => {\n const { sendParam } = buildOFTBridgeAndDepositExistingMASendParam(\n dstEid,\n receiverAddress,\n accountId,\n peripheryTokenAddress,\n amountLD,\n minAmountLD,\n );\n\n const INTERFACE = new Interface(OFTAbi);\n const calldata = INTERFACE.encodeFunctionData('send', [\n sendParam,\n messagingFee,\n callerAddress,\n ]);\n\n return {\n calldata,\n value: messagingFee.nativeFee.toString(10),\n };\n};\n"]}
@@ -17,6 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./account"), exports);
19
19
  __exportStar(require("./bridgeAndDepositExistingMA"), exports);
20
+ __exportStar(require("./oftBridgeAndDepositExistingMA"), exports);
21
+ __exportStar(require("./oftWithdrawMAAndBridge"), exports);
20
22
  __exportStar(require("./transferMarginBetweenAccounts"), exports);
21
23
  __exportStar(require("./withdrawMAAndBridge"), exports);
22
24
  //# 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,+DAA6C;AAC7C,kEAAgD;AAChD,wDAAsC","sourcesContent":["export * from './types';\nexport * from './account';\nexport * from './bridgeAndDepositExistingMA';\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,+DAA6C;AAC7C,kEAAgD;AAChD,2DAAyC;AACzC,kEAAgD;AAChD,wDAAsC","sourcesContent":["export * from './types';\nexport * from './account';\nexport * from './bridgeAndDepositExistingMA';\nexport * from './oftBridgeAndDepositExistingMA';\nexport * from './oftWithdrawMAAndBridge';\nexport * from './transferMarginBetweenAccounts';\nexport * from './withdrawMAAndBridge';\n"]}