@reyaxyz/sdk 0.145.3 → 0.146.1

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
@@ -0,0 +1,102 @@
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.oftBridgeAndDepositExistingMA = void 0;
40
+ var common_1 = require("@reyaxyz/common");
41
+ var ethers_1 = require("ethers");
42
+ var encode_1 = require("./encode");
43
+ var oftBridgeAndDepositExistingMA = function (params) { return __awaiter(void 0, void 0, void 0, function () {
44
+ var moneyInOutChainId, _a, _b, reyaChainId, moneyInOutTokenInfo, reyaPeripheryTokenInfo, peripheryAddress, dstEid, amountLD, minAmountLD, sendParam, provider, oftContract, msgFee, messagingFee, callerAddress, _c, data, value, result;
45
+ var _d, _e, _f;
46
+ return __generator(this, function (_g) {
47
+ switch (_g.label) {
48
+ case 0:
49
+ if (!((_d = params.moneyInOutChainId) !== null && _d !== void 0)) return [3 /*break*/, 1];
50
+ _a = _d;
51
+ return [3 /*break*/, 3];
52
+ case 1:
53
+ _b = Number;
54
+ return [4 /*yield*/, ((_e = params.signer.provider) === null || _e === void 0 ? void 0 : _e.getNetwork())];
55
+ case 2:
56
+ _a = _b.apply(void 0, [(_f = (_g.sent())) === null || _f === void 0 ? void 0 : _f.chainId]);
57
+ _g.label = 3;
58
+ case 3:
59
+ moneyInOutChainId = _a;
60
+ reyaChainId = (0, common_1.getReyaNetworkFromMoneyInOutChainId)(moneyInOutChainId);
61
+ moneyInOutTokenInfo = (0, common_1.getTokenInfoByAddress)(params.tokenAddress, moneyInOutChainId);
62
+ if (!moneyInOutTokenInfo.isOFT) {
63
+ throw new Error("Token ".concat(moneyInOutTokenInfo.name, " at ").concat(params.tokenAddress, " is not an OFT token on chain ").concat(moneyInOutChainId));
64
+ }
65
+ reyaPeripheryTokenInfo = (0, common_1.getTokenInfoByName)(moneyInOutTokenInfo.name, reyaChainId);
66
+ peripheryAddress = (0, common_1.getAddress)(reyaChainId, common_1.ContractType.PERIPHERY_PROXY);
67
+ dstEid = (0, common_1.getLzEndpointId)(reyaChainId);
68
+ amountLD = (0, common_1.scale)(moneyInOutTokenInfo.decimals)(params.amount);
69
+ minAmountLD = amountLD;
70
+ sendParam = (0, encode_1.buildOFTBridgeAndDepositExistingMASendParam)(dstEid, peripheryAddress, params.marginAccountId, reyaPeripheryTokenInfo.address, amountLD, minAmountLD).sendParam;
71
+ provider = params.signer.provider;
72
+ if (!provider) {
73
+ throw new Error('Signer must have a provider to quote OFT messaging fees');
74
+ }
75
+ oftContract = new ethers_1.ethers.Contract(moneyInOutTokenInfo.address, common_1.OFTAbi, provider);
76
+ return [4 /*yield*/, oftContract.quoteSend.staticCall(sendParam, false)];
77
+ case 4:
78
+ msgFee = _g.sent();
79
+ messagingFee = {
80
+ nativeFee: msgFee.nativeFee,
81
+ lzTokenFee: msgFee.lzTokenFee,
82
+ };
83
+ return [4 /*yield*/, params.signer.getAddress()];
84
+ case 5:
85
+ callerAddress = _g.sent();
86
+ _c = (0, encode_1.encodeOFTBridgeAndDepositExistingMA)(dstEid, peripheryAddress, params.marginAccountId, reyaPeripheryTokenInfo.address, amountLD, minAmountLD, messagingFee, callerAddress), data = _c.calldata, value = _c.value;
87
+ return [4 /*yield*/, (0, common_1.executeTransaction)(params.signer, data, value, moneyInOutChainId, moneyInOutTokenInfo.address)];
88
+ case 6:
89
+ result = _g.sent();
90
+ if (!(result === null || result === void 0 ? void 0 : result.hash)) {
91
+ return [2 /*return*/, {
92
+ transactionHash: null,
93
+ }];
94
+ }
95
+ return [2 /*return*/, {
96
+ transactionHash: result === null || result === void 0 ? void 0 : result.hash,
97
+ }];
98
+ }
99
+ });
100
+ }); };
101
+ exports.oftBridgeAndDepositExistingMA = oftBridgeAndDepositExistingMA;
102
+ //# sourceMappingURL=oftBridgeAndDepositExistingMA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oftBridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/oftBridgeAndDepositExistingMA.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n scale,\n MoneyInOutChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n getReyaNetworkFromMoneyInOutChainId,\n ContractType,\n getAddress,\n executeTransaction,\n getLzEndpointId,\n OFTMessagingFee,\n OFTAbi as OFTAbi,\n} from '@reyaxyz/common';\nimport { ethers } from 'ethers';\nimport {\n encodeOFTBridgeAndDepositExistingMA,\n buildOFTBridgeAndDepositExistingMASendParam,\n} from './encode';\nimport {\n OFTBridgeAndDepositExistingMAParams,\n OFTBridgeAndDepositExistingMAResult,\n} from './types';\n\nexport const oftBridgeAndDepositExistingMA = async (\n params: OFTBridgeAndDepositExistingMAParams,\n): Promise<OFTBridgeAndDepositExistingMAResult> => {\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\n if (!moneyInOutTokenInfo.isOFT) {\n throw new Error(\n `Token ${moneyInOutTokenInfo.name} at ${params.tokenAddress} is not an OFT token on chain ${moneyInOutChainId}`,\n );\n }\n\n const reyaPeripheryTokenInfo = getTokenInfoByName(\n moneyInOutTokenInfo.name,\n reyaChainId,\n );\n\n const peripheryAddress = getAddress(\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n const dstEid = getLzEndpointId(reyaChainId);\n const amountLD = scale(moneyInOutTokenInfo.decimals)(params.amount);\n const minAmountLD = amountLD;\n\n const { sendParam } = buildOFTBridgeAndDepositExistingMASendParam(\n dstEid,\n peripheryAddress,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n amountLD,\n minAmountLD,\n );\n\n const provider = params.signer.provider;\n if (!provider) {\n throw new Error('Signer must have a provider to quote OFT messaging fees');\n }\n\n const oftContract = new ethers.Contract(\n moneyInOutTokenInfo.address,\n OFTAbi,\n provider,\n );\n\n const msgFee = await oftContract.quoteSend.staticCall(sendParam, false);\n const messagingFee: OFTMessagingFee = {\n nativeFee: msgFee.nativeFee,\n lzTokenFee: msgFee.lzTokenFee,\n };\n\n const callerAddress = await params.signer.getAddress();\n const { calldata: data, value } = encodeOFTBridgeAndDepositExistingMA(\n dstEid,\n peripheryAddress,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n amountLD,\n minAmountLD,\n messagingFee,\n callerAddress,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n moneyInOutTokenInfo.address,\n );\n\n if (!result?.hash) {\n return {\n transactionHash: null,\n };\n }\n\n return {\n transactionHash: result?.hash,\n };\n};\n"]}
@@ -0,0 +1,89 @@
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.oftWithdrawMAAndBridge = void 0;
40
+ var common_1 = require("@reyaxyz/common");
41
+ var common_2 = require("@reyaxyz/common");
42
+ var signAndBroadcastTransaction_1 = require("../signAndBroadcastTransaction");
43
+ var common_3 = require("@reyaxyz/common");
44
+ var encode_1 = require("./encode");
45
+ var common_4 = require("@reyaxyz/common");
46
+ var encode_2 = require("../encode");
47
+ var common_5 = require("@reyaxyz/common");
48
+ var ethers_1 = require("ethers");
49
+ var network_1 = require("../../utils/network");
50
+ var oftWithdrawMAAndBridge = function (_a) {
51
+ var signer = _a.signer, moneyInOutChainId = _a.moneyInOutChainId, marginAccountId = _a.marginAccountId, owner = _a.owner, unscaledAmount = _a.amount, tokenAddress = _a.tokenAddress, _b = _a.receiverAddress, receiverAddress = _b === void 0 ? owner.address : _b;
52
+ return __awaiter(void 0, void 0, void 0, function () {
53
+ var reyaChainId, corePeripheryTokenInfo, multiAction, dstEid, eip712Signature, data, result;
54
+ return __generator(this, function (_c) {
55
+ switch (_c.label) {
56
+ case 0:
57
+ reyaChainId = (0, network_1.getReyaNetwork)();
58
+ corePeripheryTokenInfo = (0, common_1.getTokenInfoByAddress)(tokenAddress);
59
+ if (!corePeripheryTokenInfo.isOFT) {
60
+ throw new Error("Token ".concat(corePeripheryTokenInfo.name, " at ").concat(tokenAddress, " is not an OFT token"));
61
+ }
62
+ multiAction = new common_5.MultiAction();
63
+ (0, encode_2.encodeSingleWithdraw)(corePeripheryTokenInfo.address, (0, common_1.scale)(corePeripheryTokenInfo.decimals)(unscaledAmount), multiAction);
64
+ dstEid = (0, common_1.getLzEndpointId)(moneyInOutChainId);
65
+ return [4 /*yield*/, (0, common_3.signCoreCommands)(signer, reyaChainId, (0, common_2.getAddress)(reyaChainId, common_2.ContractType.PERIPHERY_PROXY), marginAccountId, multiAction.commands, owner.coreSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + common_4.BRIDGE_DEADLINE_IN_SECONDS, ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(['string', 'address', 'uint32'], ['withdrawMALZ', receiverAddress, dstEid]))];
66
+ case 1:
67
+ eip712Signature = (_c.sent()).signature;
68
+ data = (0, encode_1.encodeWithdrawMALZ)(marginAccountId, corePeripheryTokenInfo.address, (0, common_1.scale)(corePeripheryTokenInfo.decimals)(unscaledAmount), eip712Signature, dstEid, receiverAddress).calldata;
69
+ return [4 /*yield*/, (0, signAndBroadcastTransaction_1.signAndBroadcastTransaction)(data, reyaChainId, common_2.ContractType.PERIPHERY_PROXY, {
70
+ destinationType: 'account',
71
+ })];
72
+ case 2:
73
+ result = _c.sent();
74
+ if (!(result === null || result === void 0 ? void 0 : result.txHash)) {
75
+ return [2 /*return*/, {
76
+ transactionHash: null,
77
+ coreSigNonce: null,
78
+ }];
79
+ }
80
+ return [2 /*return*/, {
81
+ transactionHash: (result === null || result === void 0 ? void 0 : result.txHash) || null,
82
+ coreSigNonce: (result === null || result === void 0 ? void 0 : result.coreSigNonce) != null ? Number(result.coreSigNonce) : null,
83
+ }];
84
+ }
85
+ });
86
+ });
87
+ };
88
+ exports.oftWithdrawMAAndBridge = oftWithdrawMAAndBridge;
89
+ //# sourceMappingURL=oftWithdrawMAAndBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oftWithdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/oftWithdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AACzB,0CAA2D;AAC3D,8EAA6E;AAC7E,0CAAmD;AACnD,mCAA8C;AAK9C,0CAA6D;AAC7D,oCAAiD;AACjD,0CAA8C;AAC9C,iCAAgC;AAChC,+CAAqD;AAE9C,IAAM,sBAAsB,GAAG,UAAO,EAQd;QAP7B,MAAM,YAAA,EACN,iBAAiB,uBAAA,EACjB,eAAe,qBAAA,EACf,KAAK,WAAA,EACG,cAAc,YAAA,EACtB,YAAY,kBAAA,EACZ,uBAA+B,EAA/B,eAAe,mBAAG,KAAK,CAAC,OAAO,KAAA;;;;;;oBAEzB,WAAW,GAAG,IAAA,wBAAc,GAAE,CAAC;oBAE/B,sBAAsB,GAAG,IAAA,8BAAqB,EAAC,YAAY,CAAC,CAAC;oBAEnE,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;wBAClC,MAAM,IAAI,KAAK,CACb,gBAAS,sBAAsB,CAAC,IAAI,iBAAO,YAAY,yBAAsB,CAC9E,CAAC;oBACJ,CAAC;oBAEK,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;oBACtC,IAAA,6BAAoB,EAClB,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,WAAW,CACZ,CAAC;oBAEI,MAAM,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAC;oBAEX,qBAAM,IAAA,yBAAgB,EAC3D,MAAM,EACN,WAAW,EACX,IAAA,mBAAU,EAAC,WAAW,EAAE,qBAAY,CAAC,eAAe,CAAC,EACrD,eAAe,EACf,WAAW,CAAC,QAAQ,EACpB,KAAK,CAAC,YAAY,GAAG,CAAC,EACtB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,EAC3D,eAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CACtC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/B,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,CAC1C,CACF,EAAA;;oBAZkB,eAAe,GAAK,CAAA,SAYtC,CAAA,UAZiC;oBAchB,IAAI,GAAK,IAAA,2BAAkB,EAC3C,eAAe,EACf,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,eAAe,EACf,MAAM,EACN,eAAe,CAChB,SAPqB,CAOpB;oBAEa,qBAAM,IAAA,yDAA2B,EAC9C,IAAI,EACJ,WAAW,EACX,qBAAY,CAAC,eAAe,EAC5B;4BACE,eAAe,EAAE,SAAS;yBAC3B,CACF,EAAA;;oBAPK,MAAM,GAAG,SAOd;oBAED,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE,CAAC;wBACpB,sBAAO;gCACL,eAAe,EAAE,IAAI;gCACrB,YAAY,EAAE,IAAI;6BACnB,EAAC;oBACJ,CAAC;oBAED,sBAAO;4BACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,IAAI;4BACvC,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;yBACpE,EAAC;;;;CACH,CAAC;AAxEW,QAAA,sBAAsB,0BAwEjC","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n scale,\n getTokenInfoByAddress,\n getLzEndpointId,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '@reyaxyz/common';\nimport { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';\nimport { signCoreCommands } from '@reyaxyz/common';\nimport { encodeWithdrawMALZ } from './encode';\nimport {\n OFTWithdrawMAAndBridgeParams,\n OFTWithdrawMAAndBridgeResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '@reyaxyz/common';\nimport { encodeSingleWithdraw } from '../encode';\nimport { MultiAction } from '@reyaxyz/common';\nimport { ethers } from 'ethers';\nimport { getReyaNetwork } from '../../utils/network';\n\nexport const oftWithdrawMAAndBridge = async ({\n signer,\n moneyInOutChainId,\n marginAccountId,\n owner,\n amount: unscaledAmount,\n tokenAddress,\n receiverAddress = owner.address,\n}: OFTWithdrawMAAndBridgeParams): Promise<OFTWithdrawMAAndBridgeResult> => {\n const reyaChainId = getReyaNetwork();\n\n const corePeripheryTokenInfo = getTokenInfoByAddress(tokenAddress);\n\n if (!corePeripheryTokenInfo.isOFT) {\n throw new Error(\n `Token ${corePeripheryTokenInfo.name} at ${tokenAddress} is not an OFT token`,\n );\n }\n\n const multiAction = new MultiAction();\n encodeSingleWithdraw(\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n multiAction,\n );\n\n const dstEid = getLzEndpointId(moneyInOutChainId);\n\n const { signature: eip712Signature } = await signCoreCommands(\n signer,\n reyaChainId,\n getAddress(reyaChainId, ContractType.PERIPHERY_PROXY),\n marginAccountId,\n multiAction.commands,\n owner.coreSigNonce + 1,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n ethers.AbiCoder.defaultAbiCoder().encode(\n ['string', 'address', 'uint32'],\n ['withdrawMALZ', receiverAddress, dstEid],\n ),\n );\n\n const { calldata: data } = encodeWithdrawMALZ(\n marginAccountId,\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n eip712Signature,\n dstEid,\n receiverAddress,\n );\n\n const result = await signAndBroadcastTransaction(\n data,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n {\n destinationType: 'account',\n },\n );\n\n if (!result?.txHash) {\n return {\n transactionHash: null,\n coreSigNonce: null,\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/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport {\n MoneyInOutChainId,\n OwnerMetadataEntity,\n SocketDepositFees,\n TokenEntity,\n} from '@reyaxyz/common';\n\nexport type CreateAccountParams = {\n ownerAddress: string;\n name: string;\n source?: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n accountId: number | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n fromMarginAccountId: number;\n toMarginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n // if not provided it has same value as owner.address\n receiverAddress?: Lowercase<string>;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type BridgeAndDepositExistingMAParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n socketDepositFees: SocketDepositFees['fees'];\n moneyInOutChainId?: MoneyInOutChainId;\n};\n\nexport type BridgeAndDepositExistingMAResult = {\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 MoneyInOutChainId,\n OwnerMetadataEntity,\n SocketDepositFees,\n TokenEntity,\n} from '@reyaxyz/common';\n\nexport type CreateAccountParams = {\n ownerAddress: string;\n name: string;\n source?: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n accountId: number | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n fromMarginAccountId: number;\n toMarginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n // if not provided it has same value as owner.address\n receiverAddress?: Lowercase<string>;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;\n};\n\nexport type BridgeAndDepositExistingMAParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n socketDepositFees: SocketDepositFees['fees'];\n moneyInOutChainId?: MoneyInOutChainId;\n};\n\nexport type BridgeAndDepositExistingMAResult = {\n transactionHash: string | null;\n};\n\nexport type OFTWithdrawMAAndBridgeParams = WithdrawMAAndBridgeParams;\n\nexport type OFTWithdrawMAAndBridgeResult = WithdrawMAAndBridgeParamsResult;\n\nexport type OFTBridgeAndDepositExistingMAParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: number;\n tokenAddress: TokenEntity['address'];\n amount: number;\n moneyInOutChainId?: MoneyInOutChainId;\n};\n\nexport type OFTBridgeAndDepositExistingMAResult = {\n transactionHash: string | null;\n};\n"]}
@@ -4,5 +4,7 @@ export declare const encodeDepositLiquidityToAccount: (sig: EIP712Signature, sru
4
4
  export declare const encodeUnstakeFromMarginAccount: (signer: Signer, chainId: number, coreSigNonce: number, accountId: number, poolId: number, srusdAmount: bigint, mintOut: bigint) => Promise<MethodParameters>;
5
5
  export declare const encodeStakeFromMarginAccount: (signer: Signer, chainId: number, coreSigNonce: number, accountId: number, poolId: number, amount: bigint, minShares: bigint) => Promise<MethodParameters>;
6
6
  export declare const encodeWithdrawPassivePoolAndBridge: (owner: string, poolId: number, sharesAmount: bigint, minOut: bigint, sig: EIP712Signature, socketMsgGasLimit: bigint, chainId: number, receiver: string) => MethodParameters;
7
+ export declare const encodeStakeReya: (accountId: number, assetAmount: bigint, minShareAmount: bigint, withdrawSig: EIP712Signature) => MethodParameters;
8
+ export declare const encodeUnstakeStakedReya: (accountId: number, shareAmount: bigint, minAssetAmount: bigint, withdrawSig: EIP712Signature) => MethodParameters;
7
9
  export declare const encodeBridgeAndDepositPassivePool: (receiver: string, socketMsgGasLimit: bigint, socketConnector: string, socketBridgeOptions: string, socketFees: bigint, poolId: number, owner: string, amount: bigint, minShares: bigint) => MethodParameters;
8
10
  //# sourceMappingURL=encode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/lp/encode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAGf,gBAAgB,EAOjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMxC,eAAO,MAAM,+BAA+B,QACrC,eAAe,eACP,MAAM,UACX,MAAM,aACH,MAAM,KAChB,QAAQ,gBAAgB,CAM1B,CAAC;AAEF,eAAO,MAAM,8BAA8B,WACjC,MAAM,WACL,MAAM,gBACD,MAAM,aACT,MAAM,UACT,MAAM,eACD,MAAM,WACV,MAAM,KACd,QAAQ,gBAAgB,CAkC1B,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAC/B,MAAM,WACL,MAAM,gBACD,MAAM,aACT,MAAM,UACT,MAAM,UACN,MAAM,aACH,MAAM,KAChB,QAAQ,gBAAgB,CA6B1B,CAAC;AAEF,eAAO,MAAM,kCAAkC,UACtC,MAAM,UACL,MAAM,gBACA,MAAM,UACZ,MAAM,OACT,eAAe,qBACD,MAAM,WAChB,MAAM,YACL,MAAM,KACf,gBAiBF,CAAC;AAEF,eAAO,MAAM,iCAAiC,aAClC,MAAM,qBACG,MAAM,mBACR,MAAM,uBACF,MAAM,cACf,MAAM,UACV,MAAM,SACP,MAAM,UACL,MAAM,aACH,MAAM,KAChB,gBAoBF,CAAC"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/lp/encode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAGf,gBAAgB,EAOjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMxC,eAAO,MAAM,+BAA+B,QACrC,eAAe,eACP,MAAM,UACX,MAAM,aACH,MAAM,KAChB,QAAQ,gBAAgB,CAM1B,CAAC;AAEF,eAAO,MAAM,8BAA8B,WACjC,MAAM,WACL,MAAM,gBACD,MAAM,aACT,MAAM,UACT,MAAM,eACD,MAAM,WACV,MAAM,KACd,QAAQ,gBAAgB,CAkC1B,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAC/B,MAAM,WACL,MAAM,gBACD,MAAM,aACT,MAAM,UACT,MAAM,UACN,MAAM,aACH,MAAM,KAChB,QAAQ,gBAAgB,CA6B1B,CAAC;AAEF,eAAO,MAAM,kCAAkC,UACtC,MAAM,UACL,MAAM,gBACA,MAAM,UACZ,MAAM,OACT,eAAe,qBACD,MAAM,WAChB,MAAM,YACL,MAAM,KACf,gBAiBF,CAAC;AAEF,eAAO,MAAM,eAAe,cACf,MAAM,eACJ,MAAM,kBACH,MAAM,eACT,eAAe,KAC3B,gBAaF,CAAC;AAEF,eAAO,MAAM,uBAAuB,cACvB,MAAM,eACJ,MAAM,kBACH,MAAM,eACT,eAAe,KAC3B,gBAaF,CAAC;AAEF,eAAO,MAAM,iCAAiC,aAClC,MAAM,qBACG,MAAM,mBACR,MAAM,uBACF,MAAM,cACf,MAAM,UACV,MAAM,SACP,MAAM,UACL,MAAM,aACH,MAAM,KAChB,gBAoBF,CAAC"}
@@ -4,4 +4,6 @@ export * from './withdrawPassivePoolAndBridge';
4
4
  export * from './transferStakeToMarginAccount';
5
5
  export * from './unstakeFromMarginAccount';
6
6
  export * from './stakeFromMarginAccount';
7
+ export * from './stakeReya';
8
+ export * from './unstakeStakedReya';
7
9
  //# 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,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["services/lp/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { StakeReyaParams, StakeReyaResult } from './types';
2
+ export declare const stakeReya: (params: StakeReyaParams) => Promise<StakeReyaResult>;
3
+ //# sourceMappingURL=stakeReya.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakeReya.d.ts","sourceRoot":"/","sources":["services/lp/stakeReya.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAiB3D,eAAO,MAAM,SAAS,WACZ,eAAe,KACtB,QAAQ,eAAe,CA8CzB,CAAC"}
@@ -47,6 +47,28 @@ export type WithdrawPassivePoolAndBridgeResult = {
47
47
  transactionHash: string | null;
48
48
  poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;
49
49
  };
50
+ export type StakeReyaParams = {
51
+ signer: Signer | JsonRpcSigner;
52
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
53
+ marginAccountId: number;
54
+ amount: number;
55
+ minShareAmount?: number;
56
+ };
57
+ export type StakeReyaResult = {
58
+ transactionHash: string | null;
59
+ coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;
60
+ };
61
+ export type UnstakeStakedReyaParams = {
62
+ signer: Signer | JsonRpcSigner;
63
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
64
+ marginAccountId: number;
65
+ shareAmount: number;
66
+ minAssetAmount?: number;
67
+ };
68
+ export type UnstakeStakedReyaResult = {
69
+ transactionHash: string | null;
70
+ coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;
71
+ };
50
72
  export type BridgeAndDepositPassivePoolParams = {
51
73
  signer: Signer | JsonRpcSigner;
52
74
  ownerAddress: OwnerMetadataEntity['address'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { UnstakeStakedReyaParams, UnstakeStakedReyaResult } from './types';
2
+ export declare const unstakeStakedReya: (params: UnstakeStakedReyaParams) => Promise<UnstakeStakedReyaResult>;
3
+ //# sourceMappingURL=unstakeStakedReya.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unstakeStakedReya.d.ts","sourceRoot":"/","sources":["services/lp/unstakeStakedReya.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAiB3E,eAAO,MAAM,iBAAiB,WACpB,uBAAuB,KAC9B,QAAQ,uBAAuB,CA8CjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositExistingMA.d.ts","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,0BAA0B,WAC7B,gCAAgC,KACvC,QAAQ,gCAAgC,CAiF1C,CAAC"}
1
+ {"version":3,"file":"bridgeAndDepositExistingMA.d.ts","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,0BAA0B,WAC7B,gCAAgC,KACvC,QAAQ,gCAAgC,CAyE1C,CAAC"}
@@ -1,8 +1,19 @@
1
- import { MethodParameters } from '@reyaxyz/common';
1
+ import { MethodParameters, OFTSendParam, OFTMessagingFee } from '@reyaxyz/common';
2
2
  import { EIP712Signature } from '@reyaxyz/common';
3
3
  import { Signer } from 'ethers';
4
4
  export declare const encodeCreateAccountCall: (accountOwner: string) => MethodParameters;
5
5
  export declare const encodeTransferMargin: (signer: Signer, chainId: number, coreSigNonce: number, fromMarginAccountId: number, toMarginAccountId: number, token: string, amount: bigint) => Promise<MethodParameters>;
6
6
  export declare const encodeWithdrawMAAndBridge: (accountId: number, corePeripheryTokenAddress: string, corePeripheryTokenAmount: bigint, sig: EIP712Signature, socketMsgGasLimit: bigint, chainId: number, receiver: string) => MethodParameters;
7
- export declare const encodeBridgeAndDepositExistingMA: (receiver: string, socketMsgGasLimit: bigint, socketConnector: string, socketBridgeOptions: string, socketFees: bigint, accountId: number, peripheryTokenAddress: string, peripheryTokenAmount: bigint, moneyInOutTokenAmount: bigint) => MethodParameters;
7
+ export declare const encodeBridgeAndDepositExistingMA: (receiver: string, socketMsgGasLimit: bigint, socketConnector: string, socketBridgeOptions: string, socketFees: bigint, accountId: number, peripheryTokenAddress: string, moneyInOutTokenAmount: bigint) => MethodParameters;
8
+ export declare const encodeWithdrawMALZ: (accountId: number, corePeripheryTokenAddress: string, corePeripheryTokenAmount: bigint, sig: EIP712Signature, dstEid: number, receiver: string) => MethodParameters;
9
+ /**
10
+ * Encode LZ v3 extraOptions with both lzReceive and lzCompose options.
11
+ * Required for msgType=2 (SEND_AND_CALL) since enforced options only cover msgType=1.
12
+ */
13
+ export declare const encodeLzSendAndComposeExtraOptions: (receiveGas: number, composeGas: number) => string;
14
+ export declare const buildOFTBridgeAndDepositExistingMASendParam: (dstEid: number, receiverAddress: string, accountId: number, peripheryTokenAddress: string, amountLD: bigint, minAmountLD: bigint) => {
15
+ sendParam: OFTSendParam;
16
+ composeMsg: string;
17
+ };
18
+ export declare const encodeOFTBridgeAndDepositExistingMA: (dstEid: number, receiverAddress: string, accountId: number, peripheryTokenAddress: string, amountLD: bigint, minAmountLD: bigint, messagingFee: OFTMessagingFee, callerAddress: string) => MethodParameters;
8
19
  //# sourceMappingURL=encode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EAKL,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,eAAO,MAAM,uBAAuB,iBACpB,MAAM,KACnB,gBAMF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,MAAM,WACL,MAAM,gBACD,MAAM,uBACC,MAAM,qBACR,MAAM,SAClB,MAAM,UACL,MAAM,KACb,QAAQ,gBAAgB,CAoC1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,cACzB,MAAM,6BACU,MAAM,4BACP,MAAM,OAC3B,eAAe,qBACD,MAAM,WAChB,MAAM,YACL,MAAM,KACf,gBAgBF,CAAC;AAEF,eAAO,MAAM,gCAAgC,aACjC,MAAM,qBACG,MAAM,mBACR,MAAM,uBACF,MAAM,cACf,MAAM,aACP,MAAM,yBACM,MAAM,wBACP,MAAM,yBACL,MAAM,KAC5B,gBAuBF,CAAC"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAML,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,eAAO,MAAM,uBAAuB,iBACpB,MAAM,KACnB,gBAMF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,MAAM,WACL,MAAM,gBACD,MAAM,uBACC,MAAM,qBACR,MAAM,SAClB,MAAM,UACL,MAAM,KACb,QAAQ,gBAAgB,CAoC1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,cACzB,MAAM,6BACU,MAAM,4BACP,MAAM,OAC3B,eAAe,qBACD,MAAM,WAChB,MAAM,YACL,MAAM,KACf,gBAgBF,CAAC;AAEF,eAAO,MAAM,gCAAgC,aACjC,MAAM,qBACG,MAAM,mBACR,MAAM,uBACF,MAAM,cACf,MAAM,aACP,MAAM,yBACM,MAAM,yBACN,MAAM,KAC5B,gBAuBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAClB,MAAM,6BACU,MAAM,4BACP,MAAM,OAC3B,eAAe,UACZ,MAAM,YACJ,MAAM,KACf,gBAeF,CAAC;AAQF;;;GAGG;AACH,eAAO,MAAM,kCAAkC,eACjC,MAAM,cACN,MAAM,KACjB,MA6BF,CAAC;AAEF,eAAO,MAAM,2CAA2C,WAC9C,MAAM,mBACG,MAAM,aACZ,MAAM,yBACM,MAAM,YACnB,MAAM,eACH,MAAM;eACL,YAAY;gBAAc,MAAM;CA6B/C,CAAC;AAEF,eAAO,MAAM,mCAAmC,WACtC,MAAM,mBACG,MAAM,aACZ,MAAM,yBACM,MAAM,YACnB,MAAM,eACH,MAAM,gBACL,eAAe,iBACd,MAAM,KACpB,gBAqBF,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export * from './types';
2
2
  export * from './account';
3
3
  export * from './bridgeAndDepositExistingMA';
4
+ export * from './oftBridgeAndDepositExistingMA';
5
+ export * from './oftWithdrawMAAndBridge';
4
6
  export * from './transferMarginBetweenAccounts';
5
7
  export * from './withdrawMAAndBridge';
6
8
  //# 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,8BAA8B,CAAC;AAC7C,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,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { OFTBridgeAndDepositExistingMAParams, OFTBridgeAndDepositExistingMAResult } from './types';
2
+ export declare const oftBridgeAndDepositExistingMA: (params: OFTBridgeAndDepositExistingMAParams) => Promise<OFTBridgeAndDepositExistingMAResult>;
3
+ //# sourceMappingURL=oftBridgeAndDepositExistingMA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oftBridgeAndDepositExistingMA.d.ts","sourceRoot":"/","sources":["services/margin-accounts/oftBridgeAndDepositExistingMA.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,mCAAmC,EACnC,mCAAmC,EACpC,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,6BAA6B,WAChC,mCAAmC,KAC1C,QAAQ,mCAAmC,CAsF7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { OFTWithdrawMAAndBridgeParams, OFTWithdrawMAAndBridgeResult } from './types';
2
+ export declare const oftWithdrawMAAndBridge: ({ signer, moneyInOutChainId, marginAccountId, owner, amount: unscaledAmount, tokenAddress, receiverAddress, }: OFTWithdrawMAAndBridgeParams) => Promise<OFTWithdrawMAAndBridgeResult>;
3
+ //# sourceMappingURL=oftWithdrawMAAndBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oftWithdrawMAAndBridge.d.ts","sourceRoot":"/","sources":["services/margin-accounts/oftWithdrawMAAndBridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAOjB,eAAO,MAAM,sBAAsB,kHAQhC,4BAA4B,KAAG,QAAQ,4BAA4B,CAgErE,CAAC"}
@@ -46,4 +46,16 @@ export type BridgeAndDepositExistingMAParams = {
46
46
  export type BridgeAndDepositExistingMAResult = {
47
47
  transactionHash: string | null;
48
48
  };
49
+ export type OFTWithdrawMAAndBridgeParams = WithdrawMAAndBridgeParams;
50
+ export type OFTWithdrawMAAndBridgeResult = WithdrawMAAndBridgeParamsResult;
51
+ export type OFTBridgeAndDepositExistingMAParams = {
52
+ signer: Signer | JsonRpcSigner;
53
+ marginAccountId: number;
54
+ tokenAddress: TokenEntity['address'];
55
+ amount: number;
56
+ moneyInOutChainId?: MoneyInOutChainId;
57
+ };
58
+ export type OFTBridgeAndDepositExistingMAResult = {
59
+ transactionHash: string | null;
60
+ };
49
61
  //# 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,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,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;IAC/B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,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;IAC/B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAErE,MAAM,MAAM,4BAA4B,GAAG,+BAA+B,CAAC;AAE3E,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/sdk",
3
- "version": "0.145.3",
3
+ "version": "0.146.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -31,11 +31,11 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@reyaxyz/api-v2-sdk": "0.302.0",
34
- "@reyaxyz/common": "0.342.0",
34
+ "@reyaxyz/common": "0.343.1",
35
35
  "axios": "1.6.2",
36
36
  "bignumber.js": "9.1.2",
37
37
  "ethers": "6.9.0"
38
38
  },
39
39
  "packageManager": "pnpm@8.3.1",
40
- "gitHead": "0101a32c7d8478f46a692433c37217c7969bc808"
40
+ "gitHead": "4455c600e1e4be0f486198eed28f94fb211968f6"
41
41
  }
@@ -141,6 +141,46 @@ export const encodeWithdrawPassivePoolAndBridge = (
141
141
  return { calldata: calldata, value: BigInt(0).toString(10) };
142
142
  };
143
143
 
144
+ export const encodeStakeReya = (
145
+ accountId: number,
146
+ assetAmount: bigint,
147
+ minShareAmount: bigint,
148
+ withdrawSig: EIP712Signature,
149
+ ): MethodParameters => {
150
+ const functionSignature = 'stakeReya';
151
+ const parameters = [
152
+ {
153
+ accountId,
154
+ assetAmount,
155
+ minShareAmount,
156
+ withdrawSig,
157
+ },
158
+ ];
159
+ const INTERFACE = new Interface(PeripheryAbi);
160
+ const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
161
+ return { calldata: calldata, value: BigInt(0).toString(10) };
162
+ };
163
+
164
+ export const encodeUnstakeStakedReya = (
165
+ accountId: number,
166
+ shareAmount: bigint,
167
+ minAssetAmount: bigint,
168
+ withdrawSig: EIP712Signature,
169
+ ): MethodParameters => {
170
+ const functionSignature = 'unstakeStakedReya';
171
+ const parameters = [
172
+ {
173
+ accountId,
174
+ shareAmount,
175
+ minAssetAmount,
176
+ withdrawSig,
177
+ },
178
+ ];
179
+ const INTERFACE = new Interface(PeripheryAbi);
180
+ const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
181
+ return { calldata: calldata, value: BigInt(0).toString(10) };
182
+ };
183
+
144
184
  export const encodeBridgeAndDepositPassivePool = (
145
185
  receiver: string,
146
186
  socketMsgGasLimit: bigint,
@@ -4,3 +4,5 @@ export * from './withdrawPassivePoolAndBridge';
4
4
  export * from './transferStakeToMarginAccount';
5
5
  export * from './unstakeFromMarginAccount';
6
6
  export * from './stakeFromMarginAccount';
7
+ export * from './stakeReya';
8
+ export * from './unstakeStakedReya';
@@ -0,0 +1,66 @@
1
+ import { StakeReyaParams, StakeReyaResult } from './types';
2
+ import { getReyaNetwork } from '../../utils/network';
3
+ import {
4
+ scale,
5
+ getTokenInfoByName,
6
+ ContractType,
7
+ getAddress,
8
+ signCoreCommands,
9
+ getCurrentTimestampInSeconds,
10
+ CORE_DEADLINE_IN_SECONDS,
11
+ MultiAction,
12
+ } from '@reyaxyz/common';
13
+ import { encodeSingleWithdraw } from '../encode';
14
+ import { encodeStakeReya } from './encode';
15
+ import { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';
16
+ import { ethers } from 'ethers';
17
+
18
+ export const stakeReya = async (
19
+ params: StakeReyaParams,
20
+ ): Promise<StakeReyaResult> => {
21
+ const chainId = getReyaNetwork();
22
+
23
+ const reyaTokenInfo = getTokenInfoByName('REYA', chainId);
24
+ const sreyaTokenInfo = getTokenInfoByName('SREYA', chainId);
25
+ const assetAmount = scale(reyaTokenInfo.decimals)(params.amount);
26
+ const minShareAmount = params.minShareAmount
27
+ ? scale(sreyaTokenInfo.decimals)(params.minShareAmount)
28
+ : BigInt(0);
29
+
30
+ const multiAction = new MultiAction();
31
+ encodeSingleWithdraw(reyaTokenInfo.address, assetAmount, multiAction);
32
+
33
+ const { signature: withdrawSig } = await signCoreCommands(
34
+ params.signer,
35
+ chainId,
36
+ getAddress(chainId, ContractType.PERIPHERY_PROXY),
37
+ params.marginAccountId,
38
+ multiAction.commands,
39
+ params.owner.coreSigNonce + 1,
40
+ getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,
41
+ ethers.AbiCoder.defaultAbiCoder().encode(
42
+ ['string', 'uint256'],
43
+ ['stakeReya', minShareAmount],
44
+ ),
45
+ );
46
+
47
+ const { calldata: data } = encodeStakeReya(
48
+ params.marginAccountId,
49
+ assetAmount,
50
+ minShareAmount,
51
+ withdrawSig,
52
+ );
53
+
54
+ const result = await signAndBroadcastTransaction(
55
+ data,
56
+ chainId,
57
+ ContractType.PERIPHERY_PROXY,
58
+ {},
59
+ );
60
+
61
+ return {
62
+ transactionHash: result?.txHash || null,
63
+ coreSigNonce:
64
+ result?.coreSigNonce != null ? Number(result.coreSigNonce) : null,
65
+ };
66
+ };
@@ -62,6 +62,32 @@ export type WithdrawPassivePoolAndBridgeResult = {
62
62
  poolSigNonce: OwnerMetadataEntity['poolSigNonce'] | null;
63
63
  };
64
64
 
65
+ export type StakeReyaParams = {
66
+ signer: Signer | JsonRpcSigner;
67
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
68
+ marginAccountId: number;
69
+ amount: number;
70
+ minShareAmount?: number;
71
+ };
72
+
73
+ export type StakeReyaResult = {
74
+ transactionHash: string | null;
75
+ coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;
76
+ };
77
+
78
+ export type UnstakeStakedReyaParams = {
79
+ signer: Signer | JsonRpcSigner;
80
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
81
+ marginAccountId: number;
82
+ shareAmount: number;
83
+ minAssetAmount?: number;
84
+ };
85
+
86
+ export type UnstakeStakedReyaResult = {
87
+ transactionHash: string | null;
88
+ coreSigNonce: OwnerMetadataEntity['coreSigNonce'] | null;
89
+ };
90
+
65
91
  export type BridgeAndDepositPassivePoolParams = {
66
92
  signer: Signer | JsonRpcSigner;
67
93
  ownerAddress: OwnerMetadataEntity['address'];