@reyaxyz/sdk 0.43.0 → 0.44.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 (29) hide show
  1. package/dist/services/lp/bridgeAndDepositPassivePool.js +1 -5
  2. package/dist/services/lp/bridgeAndDepositPassivePool.js.map +1 -1
  3. package/dist/services/lp/transferFromMAToPool.js +1 -1
  4. package/dist/services/lp/transferFromMAToPool.js.map +1 -1
  5. package/dist/services/lp/withdrawPassivePoolAndBridge.js +2 -3
  6. package/dist/services/lp/withdrawPassivePoolAndBridge.js.map +1 -1
  7. package/dist/services/margin-accounts/encode.js +66 -7
  8. package/dist/services/margin-accounts/encode.js.map +1 -1
  9. package/dist/services/margin-accounts/transferMarginBetweenAccounts.js +5 -3
  10. package/dist/services/margin-accounts/transferMarginBetweenAccounts.js.map +1 -1
  11. package/dist/services/margin-accounts/types.js.map +1 -1
  12. package/dist/services/margin-accounts/withdrawMAAndBridge.js +5 -5
  13. package/dist/services/margin-accounts/withdrawMAAndBridge.js.map +1 -1
  14. package/dist/types/services/lp/bridgeAndDepositPassivePool.d.ts.map +1 -1
  15. package/dist/types/services/lp/transferFromMAToPool.d.ts.map +1 -1
  16. package/dist/types/services/lp/withdrawPassivePoolAndBridge.d.ts.map +1 -1
  17. package/dist/types/services/margin-accounts/encode.d.ts +2 -1
  18. package/dist/types/services/margin-accounts/encode.d.ts.map +1 -1
  19. package/dist/types/services/margin-accounts/transferMarginBetweenAccounts.d.ts.map +1 -1
  20. package/dist/types/services/margin-accounts/types.d.ts +1 -0
  21. package/dist/types/services/margin-accounts/types.d.ts.map +1 -1
  22. package/package.json +3 -3
  23. package/src/services/lp/bridgeAndDepositPassivePool.ts +5 -7
  24. package/src/services/lp/transferFromMAToPool.ts +2 -3
  25. package/src/services/lp/withdrawPassivePoolAndBridge.ts +1 -5
  26. package/src/services/margin-accounts/encode.ts +30 -5
  27. package/src/services/margin-accounts/transferMarginBetweenAccounts.ts +7 -4
  28. package/src/services/margin-accounts/types.ts +1 -0
  29. package/src/services/margin-accounts/withdrawMAAndBridge.ts +5 -5
@@ -41,7 +41,6 @@ var common_1 = require("@reyaxyz/common");
41
41
  var contractAddresses_1 = require("../../utils/contractAddresses");
42
42
  var executeTransaction_1 = require("../executeTransaction");
43
43
  var encode_1 = require("./encode");
44
- var common_2 = require("@reyaxyz/common");
45
44
  var bridgeAndDepositPassivePool = function (params) { return __awaiter(void 0, void 0, void 0, function () {
46
45
  var network, moneyInOutChainId, tokenInfo, amount, socketConnectors, peripheryAddress, _a, data, value, result;
47
46
  var _b;
@@ -51,10 +50,7 @@ var bridgeAndDepositPassivePool = function (params) { return __awaiter(void 0, v
51
50
  case 1:
52
51
  network = _c.sent();
53
52
  moneyInOutChainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
54
- tokenInfo = (0, common_1.getTokenInfoByAddress)(params.pool.tokenAddress);
55
- if (tokenInfo.name === 'RUSD') {
56
- tokenInfo = (0, common_2.getTokenInfoByName)('USDC', moneyInOutChainId);
57
- }
53
+ tokenInfo = (0, common_1.getTokenInfoByName)('USDC', moneyInOutChainId);
58
54
  amount = (0, common_1.scale)(tokenInfo.decimals)(params.amount);
59
55
  socketConnectors = (0, common_1.getSocketConnectors)({
60
56
  moneyInOutChainId: moneyInOutChainId,
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositPassivePool.js","sourceRoot":"/","sources":["services/lp/bridgeAndDepositPassivePool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,mCAA6D;AAK7D,0CAAqD;AAE9C,IAAM,2BAA2B,GAAG,UACzC,MAAyC;;;;;oBAEzB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,iBAAiB,GAAsB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAGlE,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChE,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9B,SAAS,GAAG,IAAA,2BAAkB,EAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBAC5D,CAAC;gBAEK,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAElD,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;oBAC3C,iBAAiB,EAAE,iBAAiB;oBACpC,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC;gBAEG,gBAAgB,GAAG,IAAA,8BAAU,EACjC,IAAA,4CAAmC,EAAC,iBAAiB,CAAC,EACtD,gCAAY,CAAC,eAAe,CAC7B,CAAC;gBAEI,KAA4B,IAAA,0CAAiC,EACjE,gBAAgB,EAChB,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,OAAO,EACxB,IAAA,qCAA4B,EAAC;oBAC3B,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,QAAQ,CAC1B,EAbiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAa3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,iBAAiB,EACjB,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,SAAS,CAAC,IAAI;qBAC1B,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AArDW,QAAA,2BAA2B,+BAqDtC","sourcesContent":["import {\n getSocketDepositFeesAsBigInt,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getSocketConnectors,\n getTokenInfoByAddress,\n getReyaNetworkFromMoneyInOutChainId,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { encodeBridgeAndDepositPassivePool } from './encode';\nimport {\n BridgeAndDepositPassivePoolParams,\n BridgeAndDepositPassivePoolResult,\n} from './types';\nimport { getTokenInfoByName } from '@reyaxyz/common';\n\nexport const bridgeAndDepositPassivePool = async (\n params: BridgeAndDepositPassivePoolParams,\n): Promise<BridgeAndDepositPassivePoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const moneyInOutChainId: MoneyInOutChainId = Number(network?.chainId);\n\n // todo: to be removed once lp form in offchain/UI is fixed\n let tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);\n if (tokenInfo.name === 'RUSD') {\n tokenInfo = getTokenInfoByName('USDC', moneyInOutChainId);\n }\n\n const amount = scale(tokenInfo.decimals)(params.amount);\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: tokenInfo.name,\n });\n\n const peripheryAddress = getAddress(\n getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId),\n ContractType.PERIPHERY_PROXY,\n );\n\n const { calldata: data, value } = encodeBridgeAndDepositPassivePool(\n peripheryAddress,\n BigInt('10000000'),\n socketConnectors.deposit,\n getSocketDepositFeesAsBigInt({\n moneyInOutChainId: moneyInOutChainId,\n }),\n params.pool.id,\n params.ownerAddress,\n amount,\n BigInt(0),\n BigInt('10000000'),\n socketConnectors.withdraw,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: tokenInfo.name,\n }),\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"bridgeAndDepositPassivePool.js","sourceRoot":"/","sources":["services/lp/bridgeAndDepositPassivePool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,mCAA6D;AAMtD,IAAM,2BAA2B,GAAG,UACzC,MAAyC;;;;;oBAEzB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,iBAAiB,GAAsB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAKhE,SAAS,GAAG,IAAA,2BAAkB,EAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBAE1D,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAElD,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;oBAC3C,iBAAiB,EAAE,iBAAiB;oBACpC,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC;gBAEG,gBAAgB,GAAG,IAAA,8BAAU,EACjC,IAAA,4CAAmC,EAAC,iBAAiB,CAAC,EACtD,gCAAY,CAAC,eAAe,CAC7B,CAAC;gBAEI,KAA4B,IAAA,0CAAiC,EACjE,gBAAgB,EAChB,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,OAAO,EACxB,IAAA,qCAA4B,EAAC;oBAC3B,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,QAAQ,CAC1B,EAbiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAa3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,iBAAiB,EACjB,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,SAAS,CAAC,IAAI;qBAC1B,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AApDW,QAAA,2BAA2B,+BAoDtC","sourcesContent":["import {\n getSocketDepositFeesAsBigInt,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getSocketConnectors,\n getReyaNetworkFromMoneyInOutChainId,\n getTokenInfoByName,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { encodeBridgeAndDepositPassivePool } from './encode';\nimport {\n BridgeAndDepositPassivePoolParams,\n BridgeAndDepositPassivePoolResult,\n} from './types';\n\nexport const bridgeAndDepositPassivePool = async (\n params: BridgeAndDepositPassivePoolParams,\n): Promise<BridgeAndDepositPassivePoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const moneyInOutChainId: MoneyInOutChainId = Number(network?.chainId);\n\n // todo: maybe usdc should not be hardcoded\n // it should be the token of the pool, or the underlying token\n // if token is rusd.\n const tokenInfo = getTokenInfoByName('USDC', moneyInOutChainId);\n\n const amount = scale(tokenInfo.decimals)(params.amount);\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: tokenInfo.name,\n });\n\n const peripheryAddress = getAddress(\n getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId),\n ContractType.PERIPHERY_PROXY,\n );\n\n const { calldata: data, value } = encodeBridgeAndDepositPassivePool(\n peripheryAddress,\n BigInt('10000000'),\n socketConnectors.deposit,\n getSocketDepositFeesAsBigInt({\n moneyInOutChainId: moneyInOutChainId,\n }),\n params.pool.id,\n params.ownerAddress,\n amount,\n BigInt(0),\n BigInt('10000000'),\n socketConnectors.withdraw,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: tokenInfo.name,\n }),\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -62,7 +62,7 @@ var transferFromMAToPool = function (params) { return __awaiter(void 0, void 0,
62
62
  case 2:
63
63
  eip712Signature = _c.sent();
64
64
  _a = (0, encode_1.encodeTransferFromMAToPool)(params.marginAccountId, amount, eip712Signature, params.pool.id, BigInt(0)), data = _a.calldata, value = _a.value;
65
- return [4 /*yield*/, (0, executeTransaction_1.signAndBroadcastTransaction)(params.signer, data, value, reyaChainId, contractAddresses_1.ContractType.PERIPHERY_PROXY, {})];
65
+ return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, reyaChainId, contractAddresses_1.ContractType.PERIPHERY_PROXY)];
66
66
  case 3:
67
67
  result = _c.sent();
68
68
  return [2 /*return*/, {
@@ -1 +1 @@
1
- {"version":3,"file":"transferFromMAToPool.js","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AACzB,mEAAyE;AACzE,4DAAoE;AACpE,gCAA2C;AAC3C,mCAAsD;AAKtD,6CAAgE;AAChE,6CAAiD;AACjD,oCAAiD;AAE1C,IAAM,oBAAoB,GAAG,UAClC,MAAkC;;;;;oBAElB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAEpD,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAGlD,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,IAAA,6BAAoB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC5C,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,MAAM,CAAC,eAAe,EACtB,WAAW,CAAC,QAAQ,EACpB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBARK,eAAe,GAAG,SAQvB;gBAEK,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,eAAe,EACtB,MAAM,EACN,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,CAAC,CAAC,CACV,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,gDAA2B,EAC9C,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,EAC5B,EAAE,CACH,EAAA;;gBAPK,MAAM,GAAG,SAOd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA1CW,QAAA,oBAAoB,wBA0C/B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { signAndBroadcastTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { encodeTransferFromMAToPool } from './encode';\nimport {\n TransferFromMAToPoolParams,\n TransferFromMAToPoolResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\nimport { MultiAction } from '../../utils/action';\nimport { encodeSingleWithdraw } from '../encode';\n\nexport const transferFromMAToPool = async (\n params: TransferFromMAToPoolParams,\n): Promise<TransferFromMAToPoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n const tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);\n const amount = scale(tokenInfo.decimals)(params.amount);\n\n // transfer from MA to pool involves a core withdrawal\n const multiAction = new MultiAction();\n encodeSingleWithdraw(params.pool.tokenAddress, amount, multiAction);\n const eip712Signature = await signCoreCommands(\n params.signer,\n reyaChainId,\n getAddress(reyaChainId, ContractType.PERIPHERY_PROXY),\n params.marginAccountId,\n multiAction.commands,\n params.owner.coreSigNonce + 1,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { calldata: data, value } = encodeTransferFromMAToPool(\n params.marginAccountId,\n amount,\n eip712Signature,\n params.pool.id,\n BigInt(0),\n );\n\n const result = await signAndBroadcastTransaction(\n params.signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n {},\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"transferFromMAToPool.js","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,gCAA2C;AAC3C,mCAAsD;AAKtD,6CAAgE;AAChE,6CAAiD;AACjD,oCAAiD;AAE1C,IAAM,oBAAoB,GAAG,UAClC,MAAkC;;;;;oBAElB,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAEpD,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAGlD,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,IAAA,6BAAoB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC5C,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,CAAC,MAAM,EACb,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,MAAM,CAAC,eAAe,EACtB,WAAW,CAAC,QAAQ,EACpB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBARK,eAAe,GAAG,SAQvB;gBAEK,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,eAAe,EACtB,MAAM,EACN,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,MAAM,CAAC,CAAC,CAAC,CACV,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,CAC7B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AAzCW,QAAA,oBAAoB,wBAyC/B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { encodeTransferFromMAToPool } from './encode';\nimport {\n TransferFromMAToPoolParams,\n TransferFromMAToPoolResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\nimport { MultiAction } from '../../utils/action';\nimport { encodeSingleWithdraw } from '../encode';\n\nexport const transferFromMAToPool = async (\n params: TransferFromMAToPoolParams,\n): Promise<TransferFromMAToPoolResult> => {\n const network = await params.signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n const tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);\n const amount = scale(tokenInfo.decimals)(params.amount);\n\n // transfer from MA to pool involves a core withdrawal\n const multiAction = new MultiAction();\n encodeSingleWithdraw(params.pool.tokenAddress, amount, multiAction);\n const eip712Signature = await signCoreCommands(\n params.signer,\n reyaChainId,\n getAddress(reyaChainId, ContractType.PERIPHERY_PROXY),\n params.marginAccountId,\n multiAction.commands,\n params.owner.coreSigNonce + 1,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { calldata: data, value } = encodeTransferFromMAToPool(\n params.marginAccountId,\n amount,\n eip712Signature,\n params.pool.id,\n BigInt(0),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -44,7 +44,7 @@ var encode_1 = require("./encode");
44
44
  var common_1 = require("@reyaxyz/common");
45
45
  var consts_1 = require("../../utils/consts");
46
46
  var withdrawPassivePoolAndBridge = function (params) { return __awaiter(void 0, void 0, void 0, function () {
47
- var network, reyaChainId, sharesAmount, eip712Signature, tokenInfo, _a, data, value, result;
47
+ var network, reyaChainId, sharesAmount, eip712Signature, _a, data, value, result;
48
48
  var _b;
49
49
  return __generator(this, function (_c) {
50
50
  switch (_c.label) {
@@ -61,11 +61,10 @@ var withdrawPassivePoolAndBridge = function (params) { return __awaiter(void 0,
61
61
  return [4 /*yield*/, (0, sign_1.signPoolRemoveLiquidity)(params.signer, reyaChainId, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.PERIPHERY_PROXY), params.owner.address, params.pool.id, sharesAmount, BigInt(0), params.owner.poolSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
62
62
  case 2:
63
63
  eip712Signature = _c.sent();
64
- tokenInfo = (0, common_1.getTokenInfoByAddress)(params.pool.tokenAddress);
65
64
  _a = (0, encode_1.encodeWithdrawPassivePoolAndBridge)(params.pool.id, sharesAmount, BigInt(0), eip712Signature, BigInt('10000000'), //todo
66
65
  (0, common_1.getSocketConnectors)({
67
66
  moneyInOutChainId: params.moneyInOutChainId,
68
- tokenName: tokenInfo.name,
67
+ tokenName: 'USDC', // todo: this should not be hardcoded
69
68
  }).withdraw, params.owner.address), data = _a.calldata, value = _a.value;
70
69
  return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, reyaChainId, contractAddresses_1.ContractType.PERIPHERY_PROXY)];
71
70
  case 3:
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawPassivePoolAndBridge.js","sourceRoot":"/","sources":["services/lp/withdrawPassivePoolAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAyE;AACzE,4DAA2D;AAC3D,gCAAkD;AAKlD,mCAA8D;AAC9D,0CAMyB;AACzB,6CAAgE;AAEzD,IAAM,4BAA4B,GAAG,UAC1C,MAA0C;;;;;oBAE1B,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAI1D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,YAAY,GAAG,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBAEuB,qBAAM,IAAA,8BAAuB,EACnD,MAAM,CAAC,MAAM,EACb,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,YAAY,EACZ,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBAVK,eAAe,GAAG,SAUvB;gBAEK,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE5D,KAA4B,IAAA,2CAAkC,EAClE,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,YAAY,EACZ,MAAM,CAAC,CAAC,CAAC,EACT,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM;gBAC1B,IAAA,4BAAmB,EAAC;oBAClB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC,QAAQ,EACX,MAAM,CAAC,KAAK,CAAC,OAAO,CACrB,EAXiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAW3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,CAC7B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AApDW,QAAA,4BAA4B,gCAoDvC","sourcesContent":["import { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signPoolRemoveLiquidity } from '../sign';\nimport {\n WithdrawPassivePoolAndBridgeParams,\n WithdrawPassivePoolAndBridgeResult,\n} from './types';\nimport { encodeWithdrawPassivePoolAndBridge } from './encode';\nimport {\n ReyaChainId,\n getCurrentTimestampInSeconds,\n getSocketConnectors,\n getTokenInfoByAddress,\n scale,\n} from '@reyaxyz/common';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const withdrawPassivePoolAndBridge = async (\n params: WithdrawPassivePoolAndBridgeParams,\n): Promise<WithdrawPassivePoolAndBridgeResult> => {\n const network = await params.signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n let sharesAmount;\n\n if (params.withdrawMax) {\n sharesAmount = scale(30)(params.sharesAmount);\n } else {\n sharesAmount = scale(30)(params.amount * params.sharePrice);\n }\n\n const eip712Signature = await signPoolRemoveLiquidity(\n params.signer,\n reyaChainId,\n getAddress(reyaChainId, ContractType.PERIPHERY_PROXY),\n params.owner.address,\n params.pool.id,\n sharesAmount,\n BigInt(0),\n params.owner.poolSigNonce + 1,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);\n\n const { calldata: data, value } = encodeWithdrawPassivePoolAndBridge(\n params.pool.id,\n sharesAmount,\n BigInt(0),\n eip712Signature,\n BigInt('10000000'), //todo\n getSocketConnectors({\n moneyInOutChainId: params.moneyInOutChainId,\n tokenName: tokenInfo.name,\n }).withdraw,\n params.owner.address,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"withdrawPassivePoolAndBridge.js","sourceRoot":"/","sources":["services/lp/withdrawPassivePoolAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAyE;AACzE,4DAA2D;AAC3D,gCAAkD;AAKlD,mCAA8D;AAC9D,0CAKyB;AACzB,6CAAgE;AAEzD,IAAM,4BAA4B,GAAG,UAC1C,MAA0C;;;;;oBAE1B,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAG1D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,YAAY,GAAG,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBAEuB,qBAAM,IAAA,8BAAuB,EACnD,MAAM,CAAC,MAAM,EACb,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,YAAY,EACZ,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAC7B,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;gBAVK,eAAe,GAAG,SAUvB;gBAEK,KAA4B,IAAA,2CAAkC,EAClE,MAAM,CAAC,IAAI,CAAC,EAAE,EACd,YAAY,EACZ,MAAM,CAAC,CAAC,CAAC,EACT,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM;gBAC1B,IAAA,4BAAmB,EAAC;oBAClB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,SAAS,EAAE,MAAM,EAAE,qCAAqC;iBACzD,CAAC,CAAC,QAAQ,EACX,MAAM,CAAC,KAAK,CAAC,OAAO,CACrB,EAXiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAW3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,CAC7B,EAAA;;gBANK,MAAM,GAAG,SAMd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AAjDW,QAAA,4BAA4B,gCAiDvC","sourcesContent":["import { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signPoolRemoveLiquidity } from '../sign';\nimport {\n WithdrawPassivePoolAndBridgeParams,\n WithdrawPassivePoolAndBridgeResult,\n} from './types';\nimport { encodeWithdrawPassivePoolAndBridge } from './encode';\nimport {\n ReyaChainId,\n getCurrentTimestampInSeconds,\n getSocketConnectors,\n scale,\n} from '@reyaxyz/common';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\n\nexport const withdrawPassivePoolAndBridge = async (\n params: WithdrawPassivePoolAndBridgeParams,\n): Promise<WithdrawPassivePoolAndBridgeResult> => {\n const network = await params.signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n let sharesAmount;\n if (params.withdrawMax) {\n sharesAmount = scale(30)(params.sharesAmount);\n } else {\n sharesAmount = scale(30)(params.amount * params.sharePrice);\n }\n\n const eip712Signature = await signPoolRemoveLiquidity(\n params.signer,\n reyaChainId,\n getAddress(reyaChainId, ContractType.PERIPHERY_PROXY),\n params.owner.address,\n params.pool.id,\n sharesAmount,\n BigInt(0),\n params.owner.poolSigNonce + 1,\n getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,\n );\n\n const { calldata: data, value } = encodeWithdrawPassivePoolAndBridge(\n params.pool.id,\n sharesAmount,\n BigInt(0),\n eip712Signature,\n BigInt('10000000'), //todo\n getSocketConnectors({\n moneyInOutChainId: params.moneyInOutChainId,\n tokenName: 'USDC', // todo: this should not be hardcoded\n }).withdraw,\n params.owner.address,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -10,14 +10,54 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
13
49
  Object.defineProperty(exports, "__esModule", { value: true });
14
50
  exports.encodeBridgeAndDepositExistingMA = exports.encodeBridgeAndDepositNewMA = exports.encodeWithdrawMAAndBridge = exports.encodeTransferMargin = exports.encodeWithdraw = exports.encodeDeposit = exports.encodeCreateAccountCall = void 0;
15
51
  var action_1 = require("../../utils/action");
16
52
  var ethers_1 = require("ethers");
17
53
  var encode_1 = require("../encode");
18
54
  var AccountModule_json_1 = require("../../abis/AccountModule.json");
55
+ var ExecutionModule_json_1 = require("../../abis/ExecutionModule.json");
19
56
  var Periphery_json_1 = require("../../abis/Periphery.json");
20
57
  var VaultWithPayload_json_1 = require("../../abis/socket/VaultWithPayload.json");
58
+ var sign_1 = require("../sign");
59
+ var consts_1 = require("../../utils/consts");
60
+ var common_1 = require("@reyaxyz/common");
21
61
  var encodeCreateAccountCall = function (accountOwner) {
22
62
  var functionSignature = 'createAccount';
23
63
  var parameters = [accountOwner];
@@ -42,13 +82,32 @@ var encodeWithdraw = function (accountId, token, amount) {
42
82
  return __assign({}, call);
43
83
  };
44
84
  exports.encodeWithdraw = encodeWithdraw;
45
- var encodeTransferMargin = function (fromMarginAccountId, toMarginAccountId, token, amount) {
46
- var multiAction = new action_1.MultiAction();
47
- (0, encode_1.encodeSingleTransferMargin)(toMarginAccountId, token, amount, multiAction);
48
- var value = BigInt(0);
49
- var call = (0, encode_1.encodeRouterCall)(multiAction, fromMarginAccountId, value);
50
- return __assign({}, call);
51
- };
85
+ var encodeTransferMargin = function (signer, chainId, coreSigNonce, fromMarginAccountId, toMarginAccountId, token, amount) { return __awaiter(void 0, void 0, void 0, function () {
86
+ var multiAction, eip712Signature, value, functionSignature, parameters, INTERFACE, calldata;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0:
90
+ multiAction = new action_1.MultiAction();
91
+ (0, encode_1.encodeSingleTransferMargin)(toMarginAccountId, token, amount, multiAction);
92
+ return [4 /*yield*/, (0, sign_1.signCoreCommands)(signer, chainId, consts_1.RELAYER_ACCOUNT, fromMarginAccountId, multiAction.commands, coreSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.CORE_DEADLINE_IN_SECONDS)];
93
+ case 1:
94
+ eip712Signature = _a.sent();
95
+ value = BigInt(0);
96
+ functionSignature = 'executeBySig';
97
+ parameters = [
98
+ fromMarginAccountId,
99
+ multiAction.commands,
100
+ eip712Signature,
101
+ ];
102
+ INTERFACE = new ethers_1.Interface(ExecutionModule_json_1.abi);
103
+ calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
104
+ return [2 /*return*/, {
105
+ calldata: calldata,
106
+ value: BigInt(value).toString(10),
107
+ }];
108
+ }
109
+ });
110
+ }); };
52
111
  exports.encodeTransferMargin = encodeTransferMargin;
53
112
  var encodeWithdrawMAAndBridge = function (accountId, corePeripheryTokenAddress, corePeripheryTokenAmount, sig, socketMsgGasLimit, socketConnector, receiver) {
54
113
  var functionSignature = 'withdrawMA';
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"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","sourcesContent":["import { MethodParameters, MultiAction } from '../../utils/action';\nimport { Interface } from 'ethers';\nimport {\n encodeRouterCall,\n encodeSingleDeposit,\n encodeSingleTransferMargin,\n encodeSingleWithdraw,\n} from '../encode';\n\nimport { abi } from '../../abis/AccountModule.json';\nimport { abi as peripheryAbi } from '../../abis/Periphery.json';\nimport { abi as Socket_VaultWithPayloadAbi } from '../../abis/socket/VaultWithPayload.json';\nimport { EIP712Signature } from '../sign';\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 encodeDeposit = (\n accountId: number,\n token: string,\n amount: bigint,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleDeposit(token, amount, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n\nexport const encodeWithdraw = (\n accountId: number,\n token: string,\n amount: bigint,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleWithdraw(token, amount, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n\nexport const encodeTransferMargin = (\n fromMarginAccountId: number,\n toMarginAccountId: number,\n token: string,\n amount: bigint,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleTransferMargin(toMarginAccountId, token, amount, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, fromMarginAccountId, value);\n\n return {\n ...call,\n };\n};\n\nexport const encodeWithdrawMAAndBridge = (\n accountId: number,\n corePeripheryTokenAddress: string,\n corePeripheryTokenAmount: bigint,\n sig: EIP712Signature,\n socketMsgGasLimit: bigint,\n socketConnector: string,\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 socketConnector,\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 encodeBridgeAndDepositNewMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketFees: bigint,\n accountOwner: string,\n peripheryTokenAddress: string,\n peripheryTokenAmount: bigint,\n moneyInOutTokenAmount: bigint,\n fallbackSocketMsgGasLimit: bigint,\n fallbackSocketConnector: string,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(peripheryAbi);\n const inputs = {\n accountOwner,\n token: peripheryTokenAddress,\n tokenAmount: peripheryTokenAmount,\n };\n const fallbackData = {\n socketMsgGasLimit: fallbackSocketMsgGasLimit,\n socketConnector: fallbackSocketConnector,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositNewMA((address,address,uint256),(uint256,address))',\n [inputs, fallbackData],\n );\n\n const functionSignature = 'depositToAppChain';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\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 encodeBridgeAndDepositExistingMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketFees: bigint,\n accountId: number,\n peripheryTokenAddress: string,\n peripheryTokenAmount: bigint,\n sig: EIP712Signature,\n moneyInOutTokenAmount: bigint,\n fallbackSocketMsgGasLimit: bigint,\n fallbackSocketConnector: string,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(peripheryAbi);\n const inputs = {\n accountId,\n token: peripheryTokenAddress,\n tokenAmount: peripheryTokenAmount,\n sig,\n };\n const fallbackData = {\n socketMsgGasLimit: fallbackSocketMsgGasLimit,\n socketConnector: fallbackSocketConnector,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositExistingMA((uint128,address,uint256,(uint8,bytes32,bytes32,uint256)),(uint256,address))',\n [inputs, fallbackData],\n );\n\n const functionSignature = 'depositToAppChain';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\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 { MethodParameters, MultiAction } from '../../utils/action';\nimport { Interface } from 'ethers';\nimport {\n encodeRouterCall,\n encodeSingleDeposit,\n encodeSingleTransferMargin,\n encodeSingleWithdraw,\n} from '../encode';\n\nimport { abi } from '../../abis/AccountModule.json';\nimport { abi as coreAbi } from '../../abis/ExecutionModule.json';\nimport { abi as peripheryAbi } from '../../abis/Periphery.json';\nimport { abi as Socket_VaultWithPayloadAbi } from '../../abis/socket/VaultWithPayload.json';\nimport { EIP712Signature, signCoreCommands } from '../sign';\nimport { CORE_DEADLINE_IN_SECONDS, RELAYER_ACCOUNT } from '../../utils/consts';\nimport { getCurrentTimestampInSeconds } from '@reyaxyz/common';\nimport { Signer } 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 encodeDeposit = (\n accountId: number,\n token: string,\n amount: bigint,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleDeposit(token, amount, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n\nexport const encodeWithdraw = (\n accountId: number,\n token: string,\n amount: bigint,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleWithdraw(token, amount, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\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\n encodeSingleTransferMargin(toMarginAccountId, token, amount, multiAction);\n\n const eip712Signature = await signCoreCommands(\n signer,\n chainId,\n RELAYER_ACCOUNT,\n fromMarginAccountId,\n multiAction.commands,\n coreSigNonce + 1,\n getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,\n );\n\n const value = BigInt(0);\n const functionSignature = 'executeBySig';\n const parameters = [\n fromMarginAccountId,\n multiAction.commands,\n eip712Signature,\n ];\n\n const INTERFACE = new Interface(coreAbi);\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 socketConnector: string,\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 socketConnector,\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 encodeBridgeAndDepositNewMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketFees: bigint,\n accountOwner: string,\n peripheryTokenAddress: string,\n peripheryTokenAmount: bigint,\n moneyInOutTokenAmount: bigint,\n fallbackSocketMsgGasLimit: bigint,\n fallbackSocketConnector: string,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(peripheryAbi);\n const inputs = {\n accountOwner,\n token: peripheryTokenAddress,\n tokenAmount: peripheryTokenAmount,\n };\n const fallbackData = {\n socketMsgGasLimit: fallbackSocketMsgGasLimit,\n socketConnector: fallbackSocketConnector,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositNewMA((address,address,uint256),(uint256,address))',\n [inputs, fallbackData],\n );\n\n const functionSignature = 'depositToAppChain';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\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 encodeBridgeAndDepositExistingMA = (\n receiver: string,\n socketMsgGasLimit: bigint,\n socketConnector: string,\n socketFees: bigint,\n accountId: number,\n peripheryTokenAddress: string,\n peripheryTokenAmount: bigint,\n sig: EIP712Signature,\n moneyInOutTokenAmount: bigint,\n fallbackSocketMsgGasLimit: bigint,\n fallbackSocketConnector: string,\n): MethodParameters => {\n const PERIPHERY_INTERFACE = new Interface(peripheryAbi);\n const inputs = {\n accountId,\n token: peripheryTokenAddress,\n tokenAmount: peripheryTokenAmount,\n sig,\n };\n const fallbackData = {\n socketMsgGasLimit: fallbackSocketMsgGasLimit,\n socketConnector: fallbackSocketConnector,\n };\n const peripheryCalldata = PERIPHERY_INTERFACE.encodeFunctionData(\n 'depositExistingMA((uint128,address,uint256,(uint8,bytes32,bytes32,uint256)),(uint256,address))',\n [inputs, fallbackData],\n );\n\n const functionSignature = 'depositToAppChain';\n const parameters = [\n receiver,\n moneyInOutTokenAmount,\n socketMsgGasLimit,\n socketConnector,\n peripheryCalldata,\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"]}
@@ -42,20 +42,22 @@ var contractAddresses_1 = require("../../utils/contractAddresses");
42
42
  var executeTransaction_1 = require("../executeTransaction");
43
43
  var encode_1 = require("./encode");
44
44
  var transferMarginBetweenAccounts = function (params) { return __awaiter(void 0, void 0, void 0, function () {
45
- var tokenInfo, amount, _a, data, value, network, chainId, result;
45
+ var tokenInfo, amount, network, chainId, _a, data, value, result;
46
46
  var _b;
47
47
  return __generator(this, function (_c) {
48
48
  switch (_c.label) {
49
49
  case 0:
50
50
  tokenInfo = (0, common_1.getTokenInfoByAddress)(params.tokenAddress);
51
51
  amount = (0, common_1.scale)(tokenInfo.decimals)(params.amount);
52
- _a = (0, encode_1.encodeTransferMargin)(params.fromMarginAccountId, params.toMarginAccountId, params.tokenAddress, amount), data = _a.calldata, value = _a.value;
53
52
  return [4 /*yield*/, ((_b = params.signer.provider) === null || _b === void 0 ? void 0 : _b.getNetwork())];
54
53
  case 1:
55
54
  network = _c.sent();
56
55
  chainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
57
- return [4 /*yield*/, (0, executeTransaction_1.signAndBroadcastTransaction)(params.signer, data, value, chainId, contractAddresses_1.ContractType.CORE_PROXY, {})];
56
+ return [4 /*yield*/, (0, encode_1.encodeTransferMargin)(params.signer, chainId, params.owner.coreSigNonce, params.fromMarginAccountId, params.toMarginAccountId, params.tokenAddress, amount)];
58
57
  case 2:
58
+ _a = _c.sent(), data = _a.calldata, value = _a.value;
59
+ return [4 /*yield*/, (0, executeTransaction_1.signAndBroadcastTransaction)(params.signer, data, value, chainId, contractAddresses_1.ContractType.CORE_PROXY, {})];
60
+ case 3:
59
61
  result = _c.sent();
60
62
  return [2 /*return*/, {
61
63
  transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
@@ -1 +1 @@
1
- {"version":3,"file":"transferMarginBetweenAccounts.js","sourceRoot":"/","sources":["services/margin-accounts/transferMarginBetweenAccounts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA+D;AAC/D,mEAA6D;AAC7D,4DAAoE;AACpE,mCAAgD;AAMzC,IAAM,6BAA6B,GAAG,UAC3C,MAA2C;;;;;;gBAErC,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvD,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClD,KAA4B,IAAA,6BAAoB,EACpD,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,YAAY,EACnB,MAAM,CACP,EALiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAK3B;gBAEc,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBAE1B,qBAAM,IAAA,gDAA2B,EAC9C,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,UAAU,EACvB,EAAE,CACH,EAAA;;gBAPK,MAAM,GAAG,SAOd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA3BW,QAAA,6BAA6B,iCA2BxC","sourcesContent":["import { scale, getTokenInfoByAddress } from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { signAndBroadcastTransaction } from '../executeTransaction';\nimport { encodeTransferMargin } from './encode';\nimport {\n TransferMarginBetweenAccountsParams,\n TransferMarginBetweenAccountsResult,\n} from './types';\n\nexport const transferMarginBetweenAccounts = async (\n params: TransferMarginBetweenAccountsParams,\n): Promise<TransferMarginBetweenAccountsResult> => {\n const tokenInfo = getTokenInfoByAddress(params.tokenAddress);\n const amount = scale(tokenInfo.decimals)(params.amount);\n const { calldata: data, value } = encodeTransferMargin(\n params.fromMarginAccountId,\n params.toMarginAccountId,\n params.tokenAddress,\n amount,\n );\n\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n\n const result = await signAndBroadcastTransaction(\n params.signer,\n data,\n value,\n chainId,\n ContractType.CORE_PROXY,\n {},\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"transferMarginBetweenAccounts.js","sourceRoot":"/","sources":["services/margin-accounts/transferMarginBetweenAccounts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA+D;AAC/D,mEAA6D;AAC7D,4DAAoE;AACpE,mCAAgD;AAMzC,IAAM,6BAA6B,GAAG,UAC3C,MAA2C;;;;;;gBAErC,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvD,MAAM,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAExC,qBAAM,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;gBAApD,OAAO,GAAG,SAA0C;gBACpD,OAAO,GAAG,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;gBACP,qBAAM,IAAA,6BAAoB,EAC1D,MAAM,CAAC,MAAM,EACb,OAAO,EACP,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,YAAY,EACnB,MAAM,CACP,EAAA;;gBARK,KAA4B,SAQjC,EARiB,IAAI,cAAA,EAAE,KAAK,WAAA;gBAUd,qBAAM,IAAA,gDAA2B,EAC9C,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,OAAO,EACP,gCAAY,CAAC,UAAU,EACvB,EAAE,CACH,EAAA;;gBAPK,MAAM,GAAG,SAOd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA9BW,QAAA,6BAA6B,iCA8BxC","sourcesContent":["import { scale, getTokenInfoByAddress } from '@reyaxyz/common';\nimport { ContractType } from '../../utils/contractAddresses';\nimport { signAndBroadcastTransaction } from '../executeTransaction';\nimport { encodeTransferMargin } from './encode';\nimport {\n TransferMarginBetweenAccountsParams,\n TransferMarginBetweenAccountsResult,\n} from './types';\n\nexport const transferMarginBetweenAccounts = async (\n params: TransferMarginBetweenAccountsParams,\n): Promise<TransferMarginBetweenAccountsResult> => {\n const tokenInfo = getTokenInfoByAddress(params.tokenAddress);\n const amount = scale(tokenInfo.decimals)(params.amount);\n\n const network = await params.signer.provider?.getNetwork();\n const chainId = Number(network?.chainId);\n const { calldata: data, value } = await encodeTransferMargin(\n params.signer,\n chainId,\n params.owner.coreSigNonce,\n params.fromMarginAccountId,\n params.toMarginAccountId,\n params.tokenAddress,\n amount,\n );\n\n const result = await signAndBroadcastTransaction(\n params.signer,\n data,\n value,\n chainId,\n ContractType.CORE_PROXY,\n {},\n );\n\n return {\n transactionHash: result?.hash || 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 MarginAccountEntity,\n MoneyInOutChainId,\n OwnerMetadataEntity,\n TokenEntity,\n} from '@reyaxyz/common';\n\nexport type CreateAccountParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: string;\n name: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n};\n\nexport type DepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type DepositResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type WithdrawResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateDepositResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateDepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type SimulateWithdrawResult = {\n bridgeGasFees: number;\n\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateWithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n // if not provided it has same value as owner.address\n receiverAddress?: Lowercase<string>;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositNewMAParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositNewMAResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositExistingMAParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositExistingMAResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateTransferMarginBetweenAccountsResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateTransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport {\n MarginAccountEntity,\n MoneyInOutChainId,\n OwnerMetadataEntity,\n TokenEntity,\n} from '@reyaxyz/common';\n\nexport type CreateAccountParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: string;\n name: string;\n};\n\nexport type CreateAccountResult = {\n transactionHash: string | null;\n};\n\nexport type DepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type DepositResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type WithdrawResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateDepositResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateDepositParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type SimulateWithdrawResult = {\n bridgeGasFees: number;\n\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateWithdrawParams = {\n signer: Signer | JsonRpcSigner;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type TransferMarginBetweenAccountsResult = {\n transactionHash: string | null;\n};\n\nexport type WithdrawMAAndBridgeParams = {\n signer: Signer | JsonRpcSigner;\n moneyInOutChainId: MoneyInOutChainId;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n // if not provided it has same value as owner.address\n receiverAddress?: Lowercase<string>;\n};\n\nexport type WithdrawMAAndBridgeParamsResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositNewMAParams = {\n signer: Signer | JsonRpcSigner;\n ownerAddress: OwnerMetadataEntity['address'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositNewMAResult = {\n transactionHash: string | null;\n};\n\nexport type BridgeAndDepositExistingMAParams = {\n signer: Signer | JsonRpcSigner;\n owner: Pick<OwnerMetadataEntity, 'address' | 'coreSigNonce'>;\n marginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n\nexport type BridgeAndDepositExistingMAResult = {\n transactionHash: string | null;\n};\n\nexport type SimulateTransferMarginBetweenAccountsResult = {\n bridgeGasFees: number;\n marginRatioHealth: MarginAccountEntity['marginRatioHealth'];\n marginRatio: MarginAccountEntity['marginRatioPercentage'];\n};\n\n// TODO: Milan reevaluate these params\nexport type SimulateTransferMarginBetweenAccountsParams = {\n signer: Signer | JsonRpcSigner;\n fromMarginAccountId: MarginAccountEntity['id'];\n toMarginAccountId: MarginAccountEntity['id'];\n tokenAddress: TokenEntity['address'];\n amount: number;\n};\n"]}
@@ -48,7 +48,7 @@ var action_1 = require("../../utils/action");
48
48
  var withdrawMAAndBridge = function (_a) {
49
49
  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;
50
50
  return __awaiter(void 0, void 0, void 0, function () {
51
- var network, reyaChainId, bridgeTokenInfo, corePeripheryTokenInfo, multiAction, eip712Signature, socketConnectors, _c, data, value, result;
51
+ var network, reyaChainId, corePeripheryTokenInfo, bridgeTokenInfo, multiAction, eip712Signature, socketConnectors, _c, data, value, result;
52
52
  var _d;
53
53
  return __generator(this, function (_e) {
54
54
  switch (_e.label) {
@@ -56,10 +56,10 @@ var withdrawMAAndBridge = function (_a) {
56
56
  case 1:
57
57
  network = _e.sent();
58
58
  reyaChainId = Number(network === null || network === void 0 ? void 0 : network.chainId);
59
- bridgeTokenInfo = (0, common_1.getTokenInfoByAddress)(tokenAddress);
60
- corePeripheryTokenInfo = bridgeTokenInfo.name === 'USDC'
61
- ? (0, common_1.getTokenInfoByName)('RUSD', reyaChainId)
62
- : bridgeTokenInfo;
59
+ corePeripheryTokenInfo = (0, common_1.getTokenInfoByAddress)(tokenAddress);
60
+ bridgeTokenInfo = corePeripheryTokenInfo.name === 'RUSD'
61
+ ? (0, common_1.getTokenInfoByName)('USDC', reyaChainId)
62
+ : corePeripheryTokenInfo;
63
63
  multiAction = new action_1.MultiAction();
64
64
  (0, encode_2.encodeSingleWithdraw)(corePeripheryTokenInfo.address, (0, common_1.scale)(corePeripheryTokenInfo.decimals)(unscaledAmount), multiAction);
65
65
  return [4 /*yield*/, (0, sign_1.signCoreCommands)(signer, reyaChainId, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.PERIPHERY_PROXY), marginAccountId, multiAction.commands, owner.coreSigNonce + 1, (0, common_1.getCurrentTimestampInSeconds)() + consts_1.BRIDGE_DEADLINE_IN_SECONDS)];
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAOyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,gCAA2C;AAC3C,mCAAqD;AAKrD,6CAAgE;AAChE,oCAAiD;AACjD,6CAAiD;AAE1C,IAAM,mBAAmB,GAAG,UAAO,EAQd;QAP1B,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;;;;;;wBAEf,qBAAM,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;oBAA7C,OAAO,GAAG,SAAmC;oBAC7C,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;oBAEpD,eAAe,GAAG,IAAA,8BAAqB,EAAC,YAAY,CAAC,CAAC;oBACtD,sBAAsB,GAC1B,eAAe,CAAC,IAAI,KAAK,MAAM;wBAC7B,CAAC,CAAC,IAAA,2BAAkB,EAAC,MAAM,EAAE,WAAW,CAAC;wBACzC,CAAC,CAAC,eAAe,CAAC;oBAEhB,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;oBACsB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,EACN,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,eAAe,EACf,WAAW,CAAC,QAAQ,EACpB,KAAK,CAAC,YAAY,GAAG,CAAC,EACtB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;oBARK,eAAe,GAAG,SAQvB;oBAEK,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;wBAC3C,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,eAAe,CAAC,IAAI;qBAChC,CAAC,CAAC;oBAEG,KAA4B,IAAA,kCAAyB,EACzD,eAAe,EACf,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,QAAQ,EACzB,eAAe,CAChB,EARiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAQ3B;oBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,EACN,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,CAC7B,EAAA;;oBANK,MAAM,GAAG,SAMd;oBAED,sBAAO;4BACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;yBACtC,EAAC;;;;CACH,CAAC;AA5DW,QAAA,mBAAmB,uBA4D9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnectors,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\nimport { encodeSingleWithdraw } from '../encode';\nimport { MultiAction } from '../../utils/action';\n\nexport const withdrawMAAndBridge = async ({\n signer,\n moneyInOutChainId,\n marginAccountId,\n owner,\n amount: unscaledAmount,\n tokenAddress,\n receiverAddress = owner.address,\n}: WithdrawMAAndBridgeParams): Promise<WithdrawMAAndBridgeParamsResult> => {\n const network = await signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n const bridgeTokenInfo = getTokenInfoByAddress(tokenAddress);\n const corePeripheryTokenInfo =\n bridgeTokenInfo.name === 'USDC'\n ? getTokenInfoByName('RUSD', reyaChainId)\n : bridgeTokenInfo;\n\n const multiAction = new MultiAction();\n encodeSingleWithdraw(\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n multiAction,\n );\n const 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 );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: bridgeTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n marginAccountId,\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n eip712Signature,\n BigInt('10000000'),\n socketConnectors.withdraw,\n receiverAddress,\n );\n\n const result = await executeTransaction(\n signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAOyB;AACzB,mEAAyE;AACzE,4DAA2D;AAC3D,gCAA2C;AAC3C,mCAAqD;AAKrD,6CAAgE;AAChE,oCAAiD;AACjD,6CAAiD;AAE1C,IAAM,mBAAmB,GAAG,UAAO,EAQd;QAP1B,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;;;;;;wBAEf,qBAAM,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA,EAAA;;oBAA7C,OAAO,GAAG,SAAmC;oBAC7C,WAAW,GAAgB,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;oBAEpD,sBAAsB,GAAG,IAAA,8BAAqB,EAAC,YAAY,CAAC,CAAC;oBAC7D,eAAe,GACnB,sBAAsB,CAAC,IAAI,KAAK,MAAM;wBACpC,CAAC,CAAC,IAAA,2BAAkB,EAAC,MAAM,EAAE,WAAW,CAAC;wBACzC,CAAC,CAAC,sBAAsB,CAAC;oBAEvB,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;oBACsB,qBAAM,IAAA,uBAAgB,EAC5C,MAAM,EACN,WAAW,EACX,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,eAAe,CAAC,EACrD,eAAe,EACf,WAAW,CAAC,QAAQ,EACpB,KAAK,CAAC,YAAY,GAAG,CAAC,EACtB,IAAA,qCAA4B,GAAE,GAAG,mCAA0B,CAC5D,EAAA;;oBARK,eAAe,GAAG,SAQvB;oBAEK,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;wBAC3C,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,eAAe,CAAC,IAAI;qBAChC,CAAC,CAAC;oBAEG,KAA4B,IAAA,kCAAyB,EACzD,eAAe,EACf,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,QAAQ,EACzB,eAAe,CAChB,EARiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAQ3B;oBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,EACN,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gCAAY,CAAC,eAAe,CAC7B,EAAA;;oBANK,MAAM,GAAG,SAMd;oBAED,sBAAO;4BACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;yBACtC,EAAC;;;;CACH,CAAC;AA5DW,QAAA,mBAAmB,uBA4D9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n getSocketConnectors,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '../../utils/contractAddresses';\nimport { executeTransaction } from '../executeTransaction';\nimport { signCoreCommands } from '../sign';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';\nimport { encodeSingleWithdraw } from '../encode';\nimport { MultiAction } from '../../utils/action';\n\nexport const withdrawMAAndBridge = async ({\n signer,\n moneyInOutChainId,\n marginAccountId,\n owner,\n amount: unscaledAmount,\n tokenAddress,\n receiverAddress = owner.address,\n}: WithdrawMAAndBridgeParams): Promise<WithdrawMAAndBridgeParamsResult> => {\n const network = await signer.provider?.getNetwork();\n const reyaChainId: ReyaChainId = Number(network?.chainId);\n\n const corePeripheryTokenInfo = getTokenInfoByAddress(tokenAddress);\n const bridgeTokenInfo =\n corePeripheryTokenInfo.name === 'RUSD'\n ? getTokenInfoByName('USDC', reyaChainId)\n : corePeripheryTokenInfo;\n\n const multiAction = new MultiAction();\n encodeSingleWithdraw(\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n multiAction,\n );\n const 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 );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: bridgeTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n marginAccountId,\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n eip712Signature,\n BigInt('10000000'),\n socketConnectors.withdraw,\n receiverAddress,\n );\n\n const result = await executeTransaction(\n signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositPassivePool.d.ts","sourceRoot":"/","sources":["services/lp/bridgeAndDepositPassivePool.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EAClC,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,2BAA2B,WAC9B,iCAAiC,KACxC,QAAQ,iCAAiC,CAmD3C,CAAC"}
1
+ {"version":3,"file":"bridgeAndDepositPassivePool.d.ts","sourceRoot":"/","sources":["services/lp/bridgeAndDepositPassivePool.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EAClC,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,2BAA2B,WAC9B,iCAAiC,KACxC,QAAQ,iCAAiC,CAkD3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transferFromMAToPool.d.ts","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,oBAAoB,WACvB,0BAA0B,KACjC,QAAQ,0BAA0B,CAwCpC,CAAC"}
1
+ {"version":3,"file":"transferFromMAToPool.d.ts","sourceRoot":"/","sources":["services/lp/transferFromMAToPool.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,oBAAoB,WACvB,0BAA0B,KACjC,QAAQ,0BAA0B,CAuCpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawPassivePoolAndBridge.d.ts","sourceRoot":"/","sources":["services/lp/withdrawPassivePoolAndBridge.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,SAAS,CAAC;AAWjB,eAAO,MAAM,4BAA4B,WAC/B,kCAAkC,KACzC,QAAQ,kCAAkC,CAkD5C,CAAC"}
1
+ {"version":3,"file":"withdrawPassivePoolAndBridge.d.ts","sourceRoot":"/","sources":["services/lp/withdrawPassivePoolAndBridge.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,SAAS,CAAC;AAUjB,eAAO,MAAM,4BAA4B,WAC/B,kCAAkC,KACzC,QAAQ,kCAAkC,CA+C5C,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { MethodParameters } from '../../utils/action';
2
2
  import { EIP712Signature } from '../sign';
3
+ import { Signer } from 'ethers';
3
4
  export declare const encodeCreateAccountCall: (accountOwner: string) => MethodParameters;
4
5
  export declare const encodeDeposit: (accountId: number, token: string, amount: bigint) => MethodParameters;
5
6
  export declare const encodeWithdraw: (accountId: number, token: string, amount: bigint) => MethodParameters;
6
- export declare const encodeTransferMargin: (fromMarginAccountId: number, toMarginAccountId: number, token: string, amount: bigint) => MethodParameters;
7
+ export declare const encodeTransferMargin: (signer: Signer, chainId: number, coreSigNonce: number, fromMarginAccountId: number, toMarginAccountId: number, token: string, amount: bigint) => Promise<MethodParameters>;
7
8
  export declare const encodeWithdrawMAAndBridge: (accountId: number, corePeripheryTokenAddress: string, corePeripheryTokenAmount: bigint, sig: EIP712Signature, socketMsgGasLimit: bigint, socketConnector: string, receiver: string) => MethodParameters;
8
9
  export declare const encodeBridgeAndDepositNewMA: (receiver: string, socketMsgGasLimit: bigint, socketConnector: string, socketFees: bigint, accountOwner: string, peripheryTokenAddress: string, peripheryTokenAmount: bigint, moneyInOutTokenAmount: bigint, fallbackSocketMsgGasLimit: bigint, fallbackSocketConnector: string) => MethodParameters;
9
10
  export declare const encodeBridgeAndDepositExistingMA: (receiver: string, socketMsgGasLimit: bigint, socketConnector: string, socketFees: bigint, accountId: number, peripheryTokenAddress: string, peripheryTokenAmount: bigint, sig: EIP712Signature, moneyInOutTokenAmount: bigint, fallbackSocketMsgGasLimit: bigint, fallbackSocketConnector: string) => MethodParameters;
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAYnE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,uBAAuB,iBACpB,MAAM,KACnB,gBAMF,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,MAAM,SACV,MAAM,UACL,MAAM,KACb,gBAWF,CAAC;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,SACV,MAAM,UACL,MAAM,KACb,gBAWF,CAAC;AAEF,eAAO,MAAM,oBAAoB,wBACV,MAAM,qBACR,MAAM,SAClB,MAAM,UACL,MAAM,KACb,gBAWF,CAAC;AAEF,eAAO,MAAM,yBAAyB,cACzB,MAAM,6BACU,MAAM,4BACP,MAAM,OAC3B,eAAe,qBACD,MAAM,mBACR,MAAM,YACb,MAAM,KACf,gBAgBF,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAC5B,MAAM,qBACG,MAAM,mBACR,MAAM,cACX,MAAM,gBACJ,MAAM,yBACG,MAAM,wBACP,MAAM,yBACL,MAAM,6BACF,MAAM,2BACR,MAAM,KAC9B,gBA2BF,CAAC;AAEF,eAAO,MAAM,gCAAgC,aACjC,MAAM,qBACG,MAAM,mBACR,MAAM,cACX,MAAM,aACP,MAAM,yBACM,MAAM,wBACP,MAAM,OACvB,eAAe,yBACG,MAAM,6BACF,MAAM,2BACR,MAAM,KAC9B,gBA4BF,CAAC"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAanE,OAAO,EAAE,eAAe,EAAoB,MAAM,SAAS,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,uBAAuB,iBACpB,MAAM,KACnB,gBAMF,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,MAAM,SACV,MAAM,UACL,MAAM,KACb,gBAWF,CAAC;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,SACV,MAAM,UACL,MAAM,KACb,gBAWF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,MAAM,WACL,MAAM,gBACD,MAAM,uBACC,MAAM,qBACR,MAAM,SAClB,MAAM,UACL,MAAM,KACb,QAAQ,gBAAgB,CA6B1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,cACzB,MAAM,6BACU,MAAM,4BACP,MAAM,OAC3B,eAAe,qBACD,MAAM,mBACR,MAAM,YACb,MAAM,KACf,gBAgBF,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAC5B,MAAM,qBACG,MAAM,mBACR,MAAM,cACX,MAAM,gBACJ,MAAM,yBACG,MAAM,wBACP,MAAM,yBACL,MAAM,6BACF,MAAM,2BACR,MAAM,KAC9B,gBA2BF,CAAC;AAEF,eAAO,MAAM,gCAAgC,aACjC,MAAM,qBACG,MAAM,mBACR,MAAM,cACX,MAAM,aACP,MAAM,yBACM,MAAM,wBACP,MAAM,OACvB,eAAe,yBACG,MAAM,6BACF,MAAM,2BACR,MAAM,KAC9B,gBA4BF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transferMarginBetweenAccounts.d.ts","sourceRoot":"/","sources":["services/margin-accounts/transferMarginBetweenAccounts.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mCAAmC,EACnC,mCAAmC,EACpC,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,6BAA6B,WAChC,mCAAmC,KAC1C,QAAQ,mCAAmC,CAyB7C,CAAC"}
1
+ {"version":3,"file":"transferMarginBetweenAccounts.d.ts","sourceRoot":"/","sources":["services/margin-accounts/transferMarginBetweenAccounts.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mCAAmC,EACnC,mCAAmC,EACpC,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,6BAA6B,WAChC,mCAAmC,KAC1C,QAAQ,mCAAmC,CA4B7C,CAAC"}
@@ -50,6 +50,7 @@ export type SimulateWithdrawParams = {
50
50
  };
51
51
  export type TransferMarginBetweenAccountsParams = {
52
52
  signer: Signer | JsonRpcSigner;
53
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
53
54
  fromMarginAccountId: MarginAccountEntity['id'];
54
55
  toMarginAccountId: MarginAccountEntity['id'];
55
56
  tokenAddress: TokenEntity['address'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/sdk",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -29,10 +29,10 @@
29
29
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
30
30
  },
31
31
  "dependencies": {
32
- "@reyaxyz/common": "0.49.1",
32
+ "@reyaxyz/common": "0.50.0",
33
33
  "bignumber.js": "^9.1.2",
34
34
  "ethers": "6.9.0"
35
35
  },
36
36
  "packageManager": "pnpm@8.10.4",
37
- "gitHead": "ef217997d5c05761aca24d60db64ddf876388a0a"
37
+ "gitHead": "b9080518c83b975a0d8e1a255645a5b4b10c23e4"
38
38
  }
@@ -4,8 +4,8 @@ import {
4
4
  scale,
5
5
  MoneyInOutChainId,
6
6
  getSocketConnectors,
7
- getTokenInfoByAddress,
8
7
  getReyaNetworkFromMoneyInOutChainId,
8
+ getTokenInfoByName,
9
9
  } from '@reyaxyz/common';
10
10
  import { ContractType, getAddress } from '../../utils/contractAddresses';
11
11
  import { executeTransaction } from '../executeTransaction';
@@ -14,7 +14,6 @@ import {
14
14
  BridgeAndDepositPassivePoolParams,
15
15
  BridgeAndDepositPassivePoolResult,
16
16
  } from './types';
17
- import { getTokenInfoByName } from '@reyaxyz/common';
18
17
 
19
18
  export const bridgeAndDepositPassivePool = async (
20
19
  params: BridgeAndDepositPassivePoolParams,
@@ -22,11 +21,10 @@ export const bridgeAndDepositPassivePool = async (
22
21
  const network = await params.signer.provider?.getNetwork();
23
22
  const moneyInOutChainId: MoneyInOutChainId = Number(network?.chainId);
24
23
 
25
- // todo: to be removed once lp form in offchain/UI is fixed
26
- let tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);
27
- if (tokenInfo.name === 'RUSD') {
28
- tokenInfo = getTokenInfoByName('USDC', moneyInOutChainId);
29
- }
24
+ // todo: maybe usdc should not be hardcoded
25
+ // it should be the token of the pool, or the underlying token
26
+ // if token is rusd.
27
+ const tokenInfo = getTokenInfoByName('USDC', moneyInOutChainId);
30
28
 
31
29
  const amount = scale(tokenInfo.decimals)(params.amount);
32
30
 
@@ -5,7 +5,7 @@ import {
5
5
  getTokenInfoByAddress,
6
6
  } from '@reyaxyz/common';
7
7
  import { ContractType, getAddress } from '../../utils/contractAddresses';
8
- import { signAndBroadcastTransaction } from '../executeTransaction';
8
+ import { executeTransaction } from '../executeTransaction';
9
9
  import { signCoreCommands } from '../sign';
10
10
  import { encodeTransferFromMAToPool } from './encode';
11
11
  import {
@@ -46,13 +46,12 @@ export const transferFromMAToPool = async (
46
46
  BigInt(0),
47
47
  );
48
48
 
49
- const result = await signAndBroadcastTransaction(
49
+ const result = await executeTransaction(
50
50
  params.signer,
51
51
  data,
52
52
  value,
53
53
  reyaChainId,
54
54
  ContractType.PERIPHERY_PROXY,
55
- {},
56
55
  );
57
56
 
58
57
  return {
@@ -10,7 +10,6 @@ import {
10
10
  ReyaChainId,
11
11
  getCurrentTimestampInSeconds,
12
12
  getSocketConnectors,
13
- getTokenInfoByAddress,
14
13
  scale,
15
14
  } from '@reyaxyz/common';
16
15
  import { BRIDGE_DEADLINE_IN_SECONDS } from '../../utils/consts';
@@ -22,7 +21,6 @@ export const withdrawPassivePoolAndBridge = async (
22
21
  const reyaChainId: ReyaChainId = Number(network?.chainId);
23
22
 
24
23
  let sharesAmount;
25
-
26
24
  if (params.withdrawMax) {
27
25
  sharesAmount = scale(30)(params.sharesAmount);
28
26
  } else {
@@ -41,8 +39,6 @@ export const withdrawPassivePoolAndBridge = async (
41
39
  getCurrentTimestampInSeconds() + BRIDGE_DEADLINE_IN_SECONDS,
42
40
  );
43
41
 
44
- const tokenInfo = getTokenInfoByAddress(params.pool.tokenAddress);
45
-
46
42
  const { calldata: data, value } = encodeWithdrawPassivePoolAndBridge(
47
43
  params.pool.id,
48
44
  sharesAmount,
@@ -51,7 +47,7 @@ export const withdrawPassivePoolAndBridge = async (
51
47
  BigInt('10000000'), //todo
52
48
  getSocketConnectors({
53
49
  moneyInOutChainId: params.moneyInOutChainId,
54
- tokenName: tokenInfo.name,
50
+ tokenName: 'USDC', // todo: this should not be hardcoded
55
51
  }).withdraw,
56
52
  params.owner.address,
57
53
  );
@@ -8,9 +8,13 @@ import {
8
8
  } from '../encode';
9
9
 
10
10
  import { abi } from '../../abis/AccountModule.json';
11
+ import { abi as coreAbi } from '../../abis/ExecutionModule.json';
11
12
  import { abi as peripheryAbi } from '../../abis/Periphery.json';
12
13
  import { abi as Socket_VaultWithPayloadAbi } from '../../abis/socket/VaultWithPayload.json';
13
- import { EIP712Signature } from '../sign';
14
+ import { EIP712Signature, signCoreCommands } from '../sign';
15
+ import { CORE_DEADLINE_IN_SECONDS, RELAYER_ACCOUNT } from '../../utils/consts';
16
+ import { getCurrentTimestampInSeconds } from '@reyaxyz/common';
17
+ import { Signer } from 'ethers';
14
18
 
15
19
  export const encodeCreateAccountCall = (
16
20
  accountOwner: string,
@@ -56,21 +60,42 @@ export const encodeWithdraw = (
56
60
  };
57
61
  };
58
62
 
59
- export const encodeTransferMargin = (
63
+ export const encodeTransferMargin = async (
64
+ signer: Signer,
65
+ chainId: number,
66
+ coreSigNonce: number,
60
67
  fromMarginAccountId: number,
61
68
  toMarginAccountId: number,
62
69
  token: string,
63
70
  amount: bigint,
64
- ): MethodParameters => {
71
+ ): Promise<MethodParameters> => {
65
72
  const multiAction = new MultiAction();
66
73
 
67
74
  encodeSingleTransferMargin(toMarginAccountId, token, amount, multiAction);
68
75
 
76
+ const eip712Signature = await signCoreCommands(
77
+ signer,
78
+ chainId,
79
+ RELAYER_ACCOUNT,
80
+ fromMarginAccountId,
81
+ multiAction.commands,
82
+ coreSigNonce + 1,
83
+ getCurrentTimestampInSeconds() + CORE_DEADLINE_IN_SECONDS,
84
+ );
85
+
69
86
  const value = BigInt(0);
70
- const call = encodeRouterCall(multiAction, fromMarginAccountId, value);
87
+ const functionSignature = 'executeBySig';
88
+ const parameters = [
89
+ fromMarginAccountId,
90
+ multiAction.commands,
91
+ eip712Signature,
92
+ ];
71
93
 
94
+ const INTERFACE = new Interface(coreAbi);
95
+ const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
72
96
  return {
73
- ...call,
97
+ calldata: calldata,
98
+ value: BigInt(value).toString(10),
74
99
  };
75
100
  };
76
101
 
@@ -12,16 +12,19 @@ export const transferMarginBetweenAccounts = async (
12
12
  ): Promise<TransferMarginBetweenAccountsResult> => {
13
13
  const tokenInfo = getTokenInfoByAddress(params.tokenAddress);
14
14
  const amount = scale(tokenInfo.decimals)(params.amount);
15
- const { calldata: data, value } = encodeTransferMargin(
15
+
16
+ const network = await params.signer.provider?.getNetwork();
17
+ const chainId = Number(network?.chainId);
18
+ const { calldata: data, value } = await encodeTransferMargin(
19
+ params.signer,
20
+ chainId,
21
+ params.owner.coreSigNonce,
16
22
  params.fromMarginAccountId,
17
23
  params.toMarginAccountId,
18
24
  params.tokenAddress,
19
25
  amount,
20
26
  );
21
27
 
22
- const network = await params.signer.provider?.getNetwork();
23
- const chainId = Number(network?.chainId);
24
-
25
28
  const result = await signAndBroadcastTransaction(
26
29
  params.signer,
27
30
  data,
@@ -69,6 +69,7 @@ export type SimulateWithdrawParams = {
69
69
 
70
70
  export type TransferMarginBetweenAccountsParams = {
71
71
  signer: Signer | JsonRpcSigner;
72
+ owner: Pick<OwnerMetadataEntity, 'coreSigNonce'>;
72
73
  fromMarginAccountId: MarginAccountEntity['id'];
73
74
  toMarginAccountId: MarginAccountEntity['id'];
74
75
  tokenAddress: TokenEntity['address'];
@@ -30,11 +30,11 @@ export const withdrawMAAndBridge = async ({
30
30
  const network = await signer.provider?.getNetwork();
31
31
  const reyaChainId: ReyaChainId = Number(network?.chainId);
32
32
 
33
- const bridgeTokenInfo = getTokenInfoByAddress(tokenAddress);
34
- const corePeripheryTokenInfo =
35
- bridgeTokenInfo.name === 'USDC'
36
- ? getTokenInfoByName('RUSD', reyaChainId)
37
- : bridgeTokenInfo;
33
+ const corePeripheryTokenInfo = getTokenInfoByAddress(tokenAddress);
34
+ const bridgeTokenInfo =
35
+ corePeripheryTokenInfo.name === 'RUSD'
36
+ ? getTokenInfoByName('USDC', reyaChainId)
37
+ : corePeripheryTokenInfo;
38
38
 
39
39
  const multiAction = new MultiAction();
40
40
  encodeSingleWithdraw(