@reyaxyz/sdk 0.82.1 → 0.83.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.
package/README.md CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-9.15%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-5.97%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-5.08%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-8.56%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-13.14%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-4.47%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-8.33%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-12.53%25-red.svg?style=flat) |
10
10
 
@@ -72,6 +72,21 @@ var TransactionModule = /** @class */ (function (_super) {
72
72
  });
73
73
  });
74
74
  };
75
+ TransactionModule.prototype.pushPendingTransaction = function (marginAccountId, transactionHash, sourceChainId, amount, assetId, type) {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var uri;
78
+ return __generator(this, function (_a) {
79
+ uri = "/api/accounts/".concat(marginAccountId, "/push-pending-transaction");
80
+ return [2 /*return*/, this.post(uri, {}, {
81
+ tx_hash: transactionHash,
82
+ source_chain_id: sourceChainId,
83
+ amount: amount,
84
+ asset_id: assetId,
85
+ type: type,
86
+ })];
87
+ });
88
+ });
89
+ };
75
90
  return TransactionModule;
76
91
  }(common_1.RestClient));
77
92
  exports.TransactionModule = TransactionModule;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AAgBzB;IAAuC,qCAAU;IAAjD;;IAkBA,CAAC;IAjBO,8CAAkB,GAAxB,UACE,MAAc,EACd,eAAuB,EACvB,QAAsC;;;;gBAEhC,GAAG,GAAG,uCAAuC,CAAC;gBACpD,uFAAuF;gBACvF,sBAAO,IAAI,CAAC,IAAI,CACd,GAAG,EACH,EAAE,EACF;wBACE,MAAM,EAAE,MAAM;wBACd,eAAe,iBAAA;wBACf,QAAQ,UAAA;qBACT,CACF,EAAC;;;KACH;IACH,wBAAC;AAAD,CAAC,AAlBD,CAAuC,mBAAU,GAkBhD;AAlBY,8CAAiB;AAoB9B;IAAsC,oCAAU;IAAhD;;IAUA,CAAC;IATO,iDAAsB,GAA5B,UAA6B,MAAsB;;;;gBAE3C,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAErC,GAAG,GAAG,2BAA2B,CAAC;gBACxC,sBAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;;;KACvD;IACH,uBAAC;AAAD,CAAC,AAVD,CAAsC,mBAAU,GAU/C;AAVY,4CAAgB;AAY7B,iBAAiB;AACjB,IAAI,iBAAiB,GAAsB,IAAI,iBAAiB,CAC9D,2BAAkB,CAAC,MAAM,CAAC,CAAC,WAAW,CACvC,CAAC;AACF,IAAI,gBAAgB,GAAqB,IAAI,gBAAgB,CAC3D,2BAAkB,CAAC,MAAM,CAAC,CAAC,WAAW,CACvC,CAAC;AAEF,IAAI,MAAM,GAAiC,MAAM,CAAC;AAE3C,IAAM,iBAAiB,GAAG;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AACF,gCAAgC;AACzB,IAAM,YAAY,GAAG,UAC1B,WAAyC;IAEzC,IAAM,MAAM,GAAG,2BAAkB,CAAC,WAAW,CAAC,IAAI,2BAAkB,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,GAAG,WAAW,CAAC;IACrB,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAPW,QAAA,YAAY,gBAOvB;AAEK,IAAM,0BAA0B,GAAG;IACxC,IAAI,CAAC,iBAAiB;QACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAJW,QAAA,0BAA0B,8BAIrC;AAEK,IAAM,yBAAyB,GAAG;IACvC,IAAI,CAAC,gBAAgB;QACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC","sourcesContent":["import {\n Address,\n API_CLIENT_CONFIGS,\n RestClient,\n ServiceConfig,\n} from '@reyaxyz/common';\n\nexport type BroadcastTransactionMetadata = {\n accountName?: string;\n};\n\nexport type TxData = {\n to: string;\n data: string;\n};\n\ntype AlphaTermsData = {\n walletAddress: Address;\n link: string;\n};\n\nexport class TransactionModule extends RestClient {\n async executeTransaction(\n txData: TxData,\n contractAddress: string,\n metadata: BroadcastTransactionMetadata,\n ) {\n const uri = `/api/transaction-gelato/executeGelato`;\n // const uri = `/api/transaction/execute`; //switch between Gelato and internal relayer\n return this.post<{ txHash: string; accountId?: string }>(\n uri,\n {},\n {\n txData: txData,\n contractAddress,\n metadata,\n },\n );\n }\n}\n\nexport class AlphaTermsModule extends RestClient {\n async registerAlphaSignature(params: AlphaTermsData): Promise<void> {\n // Build formData object.\n const formData = new FormData();\n formData.append('walletAddress', params.walletAddress);\n formData.append('signedLink', params.link);\n\n const uri = '/api/tos/alpha-signatures';\n return this.post(uri, undefined, formData, undefined);\n }\n}\n\n// Internal state\nlet transactionModule: TransactionModule = new TransactionModule(\n API_CLIENT_CONFIGS['test'].apiEndpoint,\n);\nlet alphaTermsModule: AlphaTermsModule = new AlphaTermsModule(\n API_CLIENT_CONFIGS['test'].apiEndpoint,\n);\n\nlet sdkEnv: ServiceConfig['environment'] = 'test';\n\nexport const getSdkEnvironment = (): ServiceConfig['environment'] => {\n return sdkEnv;\n};\n// Function to configure the SDK\nexport const configureSDK = (\n environment: ServiceConfig['environment'],\n): void => {\n const config = API_CLIENT_CONFIGS[environment] || API_CLIENT_CONFIGS['test'];\n sdkEnv = environment;\n transactionModule = new TransactionModule(config.apiEndpoint);\n alphaTermsModule = new AlphaTermsModule(config.apiEndpoint);\n};\n\nexport const getTransactionModuleClient = (): TransactionModule => {\n if (!transactionModule)\n throw new Error('SDK is not configured! Call configureSDK()');\n return transactionModule;\n};\n\nexport const getAlphaTermsModuleClient = (): AlphaTermsModule => {\n if (!alphaTermsModule)\n throw new Error('SDK is not configured! Call configureSDK()');\n return alphaTermsModule;\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AAgBzB;IAAuC,qCAAU;IAAjD;;IAwCA,CAAC;IAvCO,8CAAkB,GAAxB,UACE,MAAc,EACd,eAAuB,EACvB,QAAsC;;;;gBAEhC,GAAG,GAAG,uCAAuC,CAAC;gBACpD,uFAAuF;gBACvF,sBAAO,IAAI,CAAC,IAAI,CACd,GAAG,EACH,EAAE,EACF;wBACE,MAAM,EAAE,MAAM;wBACd,eAAe,iBAAA;wBACf,QAAQ,UAAA;qBACT,CACF,EAAC;;;KACH;IAEK,kDAAsB,GAA5B,UACE,eAAuB,EACvB,eAAuB,EACvB,aAAqB,EACrB,MAAc,EACd,OAAe,EACf,IAAY;;;;gBAEN,GAAG,GAAG,wBAAiB,eAAe,8BAA2B,CAAC;gBACxE,sBAAO,IAAI,CAAC,IAAI,CACd,GAAG,EACH,EAAE,EACF;wBACE,OAAO,EAAE,eAAe;wBACxB,eAAe,EAAE,aAAa;wBAC9B,MAAM,QAAA;wBACN,QAAQ,EAAE,OAAO;wBACjB,IAAI,EAAE,IAAI;qBACX,CACF,EAAC;;;KACH;IACH,wBAAC;AAAD,CAAC,AAxCD,CAAuC,mBAAU,GAwChD;AAxCY,8CAAiB;AA0C9B;IAAsC,oCAAU;IAAhD;;IAUA,CAAC;IATO,iDAAsB,GAA5B,UAA6B,MAAsB;;;;gBAE3C,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAErC,GAAG,GAAG,2BAA2B,CAAC;gBACxC,sBAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;;;KACvD;IACH,uBAAC;AAAD,CAAC,AAVD,CAAsC,mBAAU,GAU/C;AAVY,4CAAgB;AAY7B,iBAAiB;AACjB,IAAI,iBAAiB,GAAsB,IAAI,iBAAiB,CAC9D,2BAAkB,CAAC,MAAM,CAAC,CAAC,WAAW,CACvC,CAAC;AACF,IAAI,gBAAgB,GAAqB,IAAI,gBAAgB,CAC3D,2BAAkB,CAAC,MAAM,CAAC,CAAC,WAAW,CACvC,CAAC;AAEF,IAAI,MAAM,GAAiC,MAAM,CAAC;AAE3C,IAAM,iBAAiB,GAAG;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AACF,gCAAgC;AACzB,IAAM,YAAY,GAAG,UAC1B,WAAyC;IAEzC,IAAM,MAAM,GAAG,2BAAkB,CAAC,WAAW,CAAC,IAAI,2BAAkB,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,GAAG,WAAW,CAAC;IACrB,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAPW,QAAA,YAAY,gBAOvB;AAEK,IAAM,0BAA0B,GAAG;IACxC,IAAI,CAAC,iBAAiB;QACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAJW,QAAA,0BAA0B,8BAIrC;AAEK,IAAM,yBAAyB,GAAG;IACvC,IAAI,CAAC,gBAAgB;QACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC","sourcesContent":["import {\n Address,\n API_CLIENT_CONFIGS,\n RestClient,\n ServiceConfig,\n} from '@reyaxyz/common';\n\nexport type BroadcastTransactionMetadata = {\n accountName?: string;\n};\n\nexport type TxData = {\n to: string;\n data: string;\n};\n\ntype AlphaTermsData = {\n walletAddress: Address;\n link: string;\n};\n\nexport class TransactionModule extends RestClient {\n async executeTransaction(\n txData: TxData,\n contractAddress: string,\n metadata: BroadcastTransactionMetadata,\n ) {\n const uri = `/api/transaction-gelato/executeGelato`;\n // const uri = `/api/transaction/execute`; //switch between Gelato and internal relayer\n return this.post<{ txHash: string; accountId?: string }>(\n uri,\n {},\n {\n txData: txData,\n contractAddress,\n metadata,\n },\n );\n }\n\n async pushPendingTransaction(\n marginAccountId: number,\n transactionHash: string,\n sourceChainId: number,\n amount: number,\n assetId: string,\n type: string,\n ) {\n const uri = `/api/accounts/${marginAccountId}/push-pending-transaction`;\n return this.post<{ successful: boolean }>(\n uri,\n {},\n {\n tx_hash: transactionHash,\n source_chain_id: sourceChainId,\n amount,\n asset_id: assetId,\n type: type,\n },\n );\n }\n}\n\nexport class AlphaTermsModule extends RestClient {\n async registerAlphaSignature(params: AlphaTermsData): Promise<void> {\n // Build formData object.\n const formData = new FormData();\n formData.append('walletAddress', params.walletAddress);\n formData.append('signedLink', params.link);\n\n const uri = '/api/tos/alpha-signatures';\n return this.post(uri, undefined, formData, undefined);\n }\n}\n\n// Internal state\nlet transactionModule: TransactionModule = new TransactionModule(\n API_CLIENT_CONFIGS['test'].apiEndpoint,\n);\nlet alphaTermsModule: AlphaTermsModule = new AlphaTermsModule(\n API_CLIENT_CONFIGS['test'].apiEndpoint,\n);\n\nlet sdkEnv: ServiceConfig['environment'] = 'test';\n\nexport const getSdkEnvironment = (): ServiceConfig['environment'] => {\n return sdkEnv;\n};\n// Function to configure the SDK\nexport const configureSDK = (\n environment: ServiceConfig['environment'],\n): void => {\n const config = API_CLIENT_CONFIGS[environment] || API_CLIENT_CONFIGS['test'];\n sdkEnv = environment;\n transactionModule = new TransactionModule(config.apiEndpoint);\n alphaTermsModule = new AlphaTermsModule(config.apiEndpoint);\n};\n\nexport const getTransactionModuleClient = (): TransactionModule => {\n if (!transactionModule)\n throw new Error('SDK is not configured! Call configureSDK()');\n return transactionModule;\n};\n\nexport const getAlphaTermsModuleClient = (): AlphaTermsModule => {\n if (!alphaTermsModule)\n throw new Error('SDK is not configured! Call configureSDK()');\n return alphaTermsModule;\n};\n"]}
@@ -42,8 +42,9 @@ var common_2 = require("@reyaxyz/common");
42
42
  var encode_1 = require("./encode");
43
43
  var encode_2 = require("../encode");
44
44
  var common_3 = require("@reyaxyz/common");
45
+ var config_1 = require("../../config");
45
46
  var bridgeAndDepositExistingMA = function (params) { return __awaiter(void 0, void 0, void 0, function () {
46
- var network, moneyInOutChainId, reyaChainId, moneyInOutTokenInfo, reyaPeripheryTokenInfo, reyaCoreTokenInfo, multiAction, peripheryAddress, socketConnectors, _a, data, value, result;
47
+ var network, moneyInOutChainId, reyaChainId, moneyInOutTokenInfo, reyaPeripheryTokenInfo, reyaCoreTokenInfo, multiAction, peripheryAddress, socketConnectors, _a, data, value, result, transactionModuleClient, error_1;
47
48
  var _b;
48
49
  return __generator(this, function (_c) {
49
50
  switch (_c.label) {
@@ -71,9 +72,26 @@ var bridgeAndDepositExistingMA = function (params) { return __awaiter(void 0, vo
71
72
  }))];
72
73
  case 2:
73
74
  result = _c.sent();
74
- return [2 /*return*/, {
75
- transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
76
- }];
75
+ if (!(result === null || result === void 0 ? void 0 : result.hash)) {
76
+ return [2 /*return*/, {
77
+ transactionHash: null,
78
+ }];
79
+ }
80
+ _c.label = 3;
81
+ case 3:
82
+ _c.trys.push([3, 5, , 6]);
83
+ transactionModuleClient = (0, config_1.getTransactionModuleClient)();
84
+ return [4 /*yield*/, transactionModuleClient.pushPendingTransaction(params.marginAccountId, result.hash, moneyInOutChainId, params.amount, reyaCoreTokenInfo.address, 'deposit')];
85
+ case 4:
86
+ _c.sent();
87
+ return [3 /*break*/, 6];
88
+ case 5:
89
+ error_1 = _c.sent();
90
+ console.log('Error persisting pending deposit transaction', error_1);
91
+ return [3 /*break*/, 6];
92
+ case 6: return [2 /*return*/, {
93
+ transactionHash: result === null || result === void 0 ? void 0 : result.hash,
94
+ }];
77
95
  }
78
96
  });
79
97
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQyB;AACzB,0CAA+E;AAC/E,mCAA4D;AAK5D,oCAAgD;AAChD,0CAA8C;AAEvC,IAAM,0BAA0B,GAAG,UACxC,MAAwC;;;;;oBAExB,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;gBAChE,WAAW,GAAG,IAAA,4CAAmC,EAAC,iBAAiB,CAAC,CAAC;gBAErE,mBAAmB,GAAG,IAAA,8BAAqB,EAC/C,MAAM,CAAC,YAAY,EACnB,iBAAiB,CAClB,CAAC;gBACI,sBAAsB,GAAG,IAAA,2BAAkB,EAC/C,mBAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EACzE,WAAW,CACZ,CAAC;gBACI,iBAAiB,GAAG,sBAAsB,CAAC,gBAAgB;oBAC/D,CAAC,CAAC,IAAA,2BAAkB,EAAC,MAAM,EAAE,WAAW,CAAC;oBACzC,CAAC,CAAC,sBAAsB,CAAC;gBAErB,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;gBACtC,IAAA,4BAAmB,EACjB,iBAAiB,CAAC,OAAO,EACzB,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACrD,WAAW,CACZ,CAAC;gBAEI,gBAAgB,GAAG,IAAA,mBAAU,EACjC,WAAW,EACX,qBAAY,CAAC,eAAe,CAC7B,CAAC;gBAEI,gBAAgB,GAAG,IAAA,4BAAmB,EAAC;oBAC3C,iBAAiB,EAAE,iBAAiB;oBACpC,SAAS,EAAE,mBAAmB,CAAC,IAAI;iBACpC,CAAC,CAAC;gBAEG,KAA4B,IAAA,yCAAgC,EAChE,gBAAgB,EAChB,MAAM,CAAC,UAAU,CAAC,EAClB,gBAAgB,CAAC,OAAO,EACxB,IAAI,EACJ,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,eAAe,EACtB,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACrD,IAAA,cAAK,EAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACnD,EAViB,IAAI,cAAA,EAAE,KAAK,WAAA,CAU3B;gBAEa,qBAAM,IAAA,2BAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,iBAAiB,EACjB,IAAA,uBAAc,EAAC;wBACb,iBAAiB,EAAE,iBAAiB;wBACpC,SAAS,EAAE,mBAAmB,CAAC,IAAI;qBACpC,CAAC,CACH,EAAA;;gBATK,MAAM,GAAG,SASd;gBAED,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;KACH,CAAC;AA9DW,QAAA,0BAA0B,8BA8DrC","sourcesContent":["import {\n getSocketConnectors,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n getReyaNetworkFromMoneyInOutChainId,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress, executeTransaction } from '@reyaxyz/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExistingMAParams,\n BridgeAndDepositExistingMAResult,\n} from './types';\nimport { encodeSingleDeposit } from '../encode';\nimport { MultiAction } from '@reyaxyz/common';\n\nexport const bridgeAndDepositExistingMA = async (\n params: BridgeAndDepositExistingMAParams,\n): Promise<BridgeAndDepositExistingMAResult> => {\n const network = await params.signer.provider?.getNetwork();\n const moneyInOutChainId: MoneyInOutChainId = Number(network?.chainId);\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId);\n\n const moneyInOutTokenInfo = getTokenInfoByAddress(\n params.tokenAddress,\n moneyInOutChainId,\n );\n const reyaPeripheryTokenInfo = getTokenInfoByName(\n moneyInOutTokenInfo.name === 'USDC.E' ? 'USDC' : moneyInOutTokenInfo.name,\n reyaChainId,\n );\n const reyaCoreTokenInfo = reyaPeripheryTokenInfo.isRUSDUnderlying\n ? getTokenInfoByName('RUSD', reyaChainId)\n : reyaPeripheryTokenInfo;\n\n const multiAction = new MultiAction();\n encodeSingleDeposit(\n reyaCoreTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n multiAction,\n );\n\n const peripheryAddress = getAddress(\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n peripheryAddress,\n BigInt('10000000'),\n socketConnectors.deposit,\n '0x',\n params.socketDepositFees,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n scale(moneyInOutTokenInfo.decimals)(params.amount),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n }),\n );\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
1
+ {"version":3,"file":"bridgeAndDepositExistingMA.js","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getSocketConnectors,\n getSocketVault,\n scale,\n MoneyInOutChainId,\n getTokenInfoByAddress,\n getTokenInfoByName,\n getReyaNetworkFromMoneyInOutChainId,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress, executeTransaction } from '@reyaxyz/common';\nimport { encodeBridgeAndDepositExistingMA } from './encode';\nimport {\n BridgeAndDepositExistingMAParams,\n BridgeAndDepositExistingMAResult,\n} from './types';\nimport { encodeSingleDeposit } from '../encode';\nimport { MultiAction } from '@reyaxyz/common';\nimport { getTransactionModuleClient } from '../../config';\n\nexport const bridgeAndDepositExistingMA = async (\n params: BridgeAndDepositExistingMAParams,\n): Promise<BridgeAndDepositExistingMAResult> => {\n const network = await params.signer.provider?.getNetwork();\n const moneyInOutChainId: MoneyInOutChainId = Number(network?.chainId);\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId);\n\n const moneyInOutTokenInfo = getTokenInfoByAddress(\n params.tokenAddress,\n moneyInOutChainId,\n );\n const reyaPeripheryTokenInfo = getTokenInfoByName(\n moneyInOutTokenInfo.name === 'USDC.E' ? 'USDC' : moneyInOutTokenInfo.name,\n reyaChainId,\n );\n const reyaCoreTokenInfo = reyaPeripheryTokenInfo.isRUSDUnderlying\n ? getTokenInfoByName('RUSD', reyaChainId)\n : reyaPeripheryTokenInfo;\n\n const multiAction = new MultiAction();\n encodeSingleDeposit(\n reyaCoreTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n multiAction,\n );\n\n const peripheryAddress = getAddress(\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n );\n\n const socketConnectors = getSocketConnectors({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n });\n\n const { calldata: data, value } = encodeBridgeAndDepositExistingMA(\n peripheryAddress,\n BigInt('10000000'),\n socketConnectors.deposit,\n '0x',\n params.socketDepositFees,\n params.marginAccountId,\n reyaPeripheryTokenInfo.address,\n scale(reyaPeripheryTokenInfo.decimals)(params.amount),\n scale(moneyInOutTokenInfo.decimals)(params.amount),\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n moneyInOutChainId,\n getSocketVault({\n moneyInOutChainId: moneyInOutChainId,\n tokenName: moneyInOutTokenInfo.name,\n }),\n );\n\n if (!result?.hash) {\n return {\n transactionHash: null,\n };\n }\n\n try {\n const transactionModuleClient = getTransactionModuleClient();\n await transactionModuleClient.pushPendingTransaction(\n params.marginAccountId,\n result.hash,\n moneyInOutChainId,\n params.amount,\n reyaCoreTokenInfo.address,\n 'deposit',\n );\n } catch (error) {\n console.log('Error persisting pending deposit transaction', error);\n }\n\n return {\n transactionHash: result?.hash,\n };\n};\n"]}
@@ -46,10 +46,11 @@ var common_4 = require("@reyaxyz/common");
46
46
  var encode_2 = require("../encode");
47
47
  var common_5 = require("@reyaxyz/common");
48
48
  var ethers_1 = require("ethers");
49
+ var config_1 = require("../../config");
49
50
  var withdrawMAAndBridge = function (_a) {
50
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;
51
52
  return __awaiter(void 0, void 0, void 0, function () {
52
- var network, reyaChainId, corePeripheryTokenInfo, multiAction, socketMsgGasLimit, eip712Signature, _c, data, value, result;
53
+ var network, reyaChainId, corePeripheryTokenInfo, multiAction, socketMsgGasLimit, eip712Signature, _c, data, value, result, transactionModuleClient, error_1;
53
54
  var _d;
54
55
  return __generator(this, function (_e) {
55
56
  switch (_e.label) {
@@ -68,9 +69,26 @@ var withdrawMAAndBridge = function (_a) {
68
69
  return [4 /*yield*/, (0, signAndBroadcastTransaction_1.signAndBroadcastTransaction)(signer, data, value, reyaChainId, common_2.ContractType.PERIPHERY_PROXY, {})];
69
70
  case 3:
70
71
  result = _e.sent();
71
- return [2 /*return*/, {
72
- transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
73
- }];
72
+ if (!(result === null || result === void 0 ? void 0 : result.hash)) {
73
+ return [2 /*return*/, {
74
+ transactionHash: null,
75
+ }];
76
+ }
77
+ _e.label = 4;
78
+ case 4:
79
+ _e.trys.push([4, 6, , 7]);
80
+ transactionModuleClient = (0, config_1.getTransactionModuleClient)();
81
+ return [4 /*yield*/, transactionModuleClient.pushPendingTransaction(marginAccountId, result.hash, moneyInOutChainId, unscaledAmount, corePeripheryTokenInfo.address, 'withdrawal')];
82
+ case 5:
83
+ _e.sent();
84
+ return [3 /*break*/, 7];
85
+ case 6:
86
+ error_1 = _e.sent();
87
+ console.log('Error persisting pending withdraw transaction', error_1);
88
+ return [3 /*break*/, 7];
89
+ case 7: return [2 /*return*/, {
90
+ transactionHash: (result === null || result === void 0 ? void 0 : result.hash) || null,
91
+ }];
74
92
  }
75
93
  });
76
94
  });
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AACzB,0CAA2D;AAC3D,8EAA6E;AAC7E,0CAAmD;AACnD,mCAAqD;AAKrD,0CAA6D;AAC7D,oCAAiD;AACjD,0CAA8C;AAC9C,iCAAgC;AAEzB,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;oBAE7D,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,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrB,qBAAM,IAAA,yBAAgB,EAC5C,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,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CACxD,CACF,EAAA;;oBAZK,eAAe,GAAG,SAYvB;oBAEK,KAA4B,IAAA,kCAAyB,EACzD,eAAe,EACf,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,CAChB,EARiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAQ3B;oBAEa,qBAAM,IAAA,yDAA2B,EAC9C,MAAM,EACN,IAAI,EACJ,KAAK,EACL,WAAW,EACX,qBAAY,CAAC,eAAe,EAC5B,EAAE,CACH,EAAA;;oBAPK,MAAM,GAAG,SAOd;oBAED,sBAAO;4BACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;yBACtC,EAAC;;;;CACH,CAAC;AA1DW,QAAA,mBAAmB,uBA0D9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '@reyaxyz/common';\nimport { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';\nimport { signCoreCommands } from '@reyaxyz/common';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\n} from './types';\nimport { BRIDGE_DEADLINE_IN_SECONDS } from '@reyaxyz/common';\nimport { encodeSingleWithdraw } from '../encode';\nimport { MultiAction } from '@reyaxyz/common';\nimport { ethers } from 'ethers';\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\n const multiAction = new MultiAction();\n encodeSingleWithdraw(\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n multiAction,\n );\n\n const socketMsgGasLimit = BigInt('10000000');\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 ethers.AbiCoder.defaultAbiCoder().encode(\n ['address', 'uint256', 'uint256'],\n [receiverAddress, moneyInOutChainId, socketMsgGasLimit],\n ),\n );\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n marginAccountId,\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n eip712Signature,\n socketMsgGasLimit,\n moneyInOutChainId,\n receiverAddress,\n );\n\n const result = await signAndBroadcastTransaction(\n 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":"withdrawMAAndBridge.js","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAKyB;AACzB,0CAA2D;AAC3D,8EAA6E;AAC7E,0CAAmD;AACnD,mCAAqD;AAKrD,0CAA6D;AAC7D,oCAAiD;AACjD,0CAA8C;AAC9C,iCAAgC;AAChC,uCAA0D;AAEnD,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;oBAE7D,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,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrB,qBAAM,IAAA,yBAAgB,EAC5C,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,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CACxD,CACF,EAAA;;oBAZK,eAAe,GAAG,SAYvB;oBAEK,KAA4B,IAAA,kCAAyB,EACzD,eAAe,EACf,sBAAsB,CAAC,OAAO,EAC9B,IAAA,cAAK,EAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EACtD,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,CAChB,EARiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAQ3B;oBAEa,qBAAM,IAAA,yDAA2B,EAC9C,MAAM,EACN,IAAI,EACJ,KAAK,EACL,WAAW,EACX,qBAAY,CAAC,eAAe,EAC5B,EAAE,CACH,EAAA;;oBAPK,MAAM,GAAG,SAOd;oBAED,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,EAAE,CAAC;wBAClB,sBAAO;gCACL,eAAe,EAAE,IAAI;6BACtB,EAAC;oBACJ,CAAC;;;;oBAGO,uBAAuB,GAAG,IAAA,mCAA0B,GAAE,CAAC;oBAC7D,qBAAM,uBAAuB,CAAC,sBAAsB,CAClD,eAAe,EACf,MAAM,CAAC,IAAI,EACX,iBAAiB,EACjB,cAAc,EACd,sBAAsB,CAAC,OAAO,EAC9B,YAAY,CACb,EAAA;;oBAPD,SAOC,CAAC;;;;oBAEF,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,OAAK,CAAC,CAAC;;wBAGtE,sBAAO;wBACL,eAAe,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI;qBACtC,EAAC;;;;CACH,CAAC;AA9EW,QAAA,mBAAmB,uBA8E9B","sourcesContent":["import {\n getCurrentTimestampInSeconds,\n scale,\n ReyaChainId,\n getTokenInfoByAddress,\n} from '@reyaxyz/common';\nimport { ContractType, getAddress } from '@reyaxyz/common';\nimport { signAndBroadcastTransaction } from '../signAndBroadcastTransaction';\nimport { signCoreCommands } from '@reyaxyz/common';\nimport { encodeWithdrawMAAndBridge } from './encode';\nimport {\n WithdrawMAAndBridgeParams,\n WithdrawMAAndBridgeParamsResult,\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 { getTransactionModuleClient } from '../../config';\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\n const multiAction = new MultiAction();\n encodeSingleWithdraw(\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n multiAction,\n );\n\n const socketMsgGasLimit = BigInt('10000000');\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 ethers.AbiCoder.defaultAbiCoder().encode(\n ['address', 'uint256', 'uint256'],\n [receiverAddress, moneyInOutChainId, socketMsgGasLimit],\n ),\n );\n\n const { calldata: data, value } = encodeWithdrawMAAndBridge(\n marginAccountId,\n corePeripheryTokenInfo.address,\n scale(corePeripheryTokenInfo.decimals)(unscaledAmount),\n eip712Signature,\n socketMsgGasLimit,\n moneyInOutChainId,\n receiverAddress,\n );\n\n const result = await signAndBroadcastTransaction(\n signer,\n data,\n value,\n reyaChainId,\n ContractType.PERIPHERY_PROXY,\n {},\n );\n\n if (!result?.hash) {\n return {\n transactionHash: null,\n };\n }\n\n try {\n const transactionModuleClient = getTransactionModuleClient();\n await transactionModuleClient.pushPendingTransaction(\n marginAccountId,\n result.hash,\n moneyInOutChainId,\n unscaledAmount,\n corePeripheryTokenInfo.address,\n 'withdrawal',\n );\n } catch (error) {\n console.log('Error persisting pending withdraw transaction', error);\n }\n\n return {\n transactionHash: result?.hash || null,\n };\n};\n"]}
@@ -15,6 +15,9 @@ export declare class TransactionModule extends RestClient {
15
15
  txHash: string;
16
16
  accountId?: string | undefined;
17
17
  }>;
18
+ pushPendingTransaction(marginAccountId: number, transactionHash: string, sourceChainId: number, amount: number, assetId: string, type: string): Promise<{
19
+ successful: boolean;
20
+ }>;
18
21
  }
19
22
  export declare class AlphaTermsModule extends RestClient {
20
23
  registerAlphaSignature(params: AlphaTermsData): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,UAAU;IACzC,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,4BAA4B;gBAIX,MAAM;;;CAUpC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CASpE;AAYD,eAAO,MAAM,iBAAiB,QAAO,aAAa,CAAC,aAAa,CAE/D,CAAC;AAEF,eAAO,MAAM,YAAY,gBACV,aAAa,CAAC,aAAa,CAAC,KACxC,IAKF,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,iBAI7C,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,gBAI5C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,UAAU;IACzC,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,4BAA4B;gBAIX,MAAM;;;IAW7B,sBAAsB,CAC1B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM;oBAGmB,OAAO;;CAYzC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CASpE;AAYD,eAAO,MAAM,iBAAiB,QAAO,aAAa,CAAC,aAAa,CAE/D,CAAC;AAEF,eAAO,MAAM,YAAY,gBACV,aAAa,CAAC,aAAa,CAAC,KACxC,IAKF,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,iBAI7C,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,gBAI5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeAndDepositExistingMA.d.ts","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,0BAA0B,WAC7B,gCAAgC,KACvC,QAAQ,gCAAgC,CA4D1C,CAAC"}
1
+ {"version":3,"file":"bridgeAndDepositExistingMA.d.ts","sourceRoot":"/","sources":["services/margin-accounts/bridgeAndDepositExistingMA.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,0BAA0B,WAC7B,gCAAgC,KACvC,QAAQ,gCAAgC,CAgF1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawMAAndBridge.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,mBAAmB,kHAQ7B,yBAAyB,KAAG,QAAQ,+BAA+B,CAkDrE,CAAC"}
1
+ {"version":3,"file":"withdrawMAAndBridge.d.ts","sourceRoot":"/","sources":["services/margin-accounts/withdrawMAAndBridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAOjB,eAAO,MAAM,mBAAmB,kHAQ7B,yBAAyB,KAAG,QAAQ,+BAA+B,CAsErE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/sdk",
3
- "version": "0.82.1",
3
+ "version": "0.83.1",
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.98.1",
32
+ "@reyaxyz/common": "0.98.2",
33
33
  "bignumber.js": "^9.1.2",
34
34
  "ethers": "6.9.0"
35
35
  },
36
36
  "packageManager": "pnpm@8.3.1",
37
- "gitHead": "97c1070b09e50ca0fdf2fbd451aebab41787dfbd"
37
+ "gitHead": "37afd1166860d2840ae25d0007a332f7e86566f4"
38
38
  }
@@ -37,6 +37,28 @@ export class TransactionModule extends RestClient {
37
37
  },
38
38
  );
39
39
  }
40
+
41
+ async pushPendingTransaction(
42
+ marginAccountId: number,
43
+ transactionHash: string,
44
+ sourceChainId: number,
45
+ amount: number,
46
+ assetId: string,
47
+ type: string,
48
+ ) {
49
+ const uri = `/api/accounts/${marginAccountId}/push-pending-transaction`;
50
+ return this.post<{ successful: boolean }>(
51
+ uri,
52
+ {},
53
+ {
54
+ tx_hash: transactionHash,
55
+ source_chain_id: sourceChainId,
56
+ amount,
57
+ asset_id: assetId,
58
+ type: type,
59
+ },
60
+ );
61
+ }
40
62
  }
41
63
 
42
64
  export class AlphaTermsModule extends RestClient {
@@ -15,6 +15,7 @@ import {
15
15
  } from './types';
16
16
  import { encodeSingleDeposit } from '../encode';
17
17
  import { MultiAction } from '@reyaxyz/common';
18
+ import { getTransactionModuleClient } from '../../config';
18
19
 
19
20
  export const bridgeAndDepositExistingMA = async (
20
21
  params: BridgeAndDepositExistingMAParams,
@@ -75,7 +76,27 @@ export const bridgeAndDepositExistingMA = async (
75
76
  }),
76
77
  );
77
78
 
79
+ if (!result?.hash) {
80
+ return {
81
+ transactionHash: null,
82
+ };
83
+ }
84
+
85
+ try {
86
+ const transactionModuleClient = getTransactionModuleClient();
87
+ await transactionModuleClient.pushPendingTransaction(
88
+ params.marginAccountId,
89
+ result.hash,
90
+ moneyInOutChainId,
91
+ params.amount,
92
+ reyaCoreTokenInfo.address,
93
+ 'deposit',
94
+ );
95
+ } catch (error) {
96
+ console.log('Error persisting pending deposit transaction', error);
97
+ }
98
+
78
99
  return {
79
- transactionHash: result?.hash || null,
100
+ transactionHash: result?.hash,
80
101
  };
81
102
  };
@@ -16,6 +16,7 @@ import { BRIDGE_DEADLINE_IN_SECONDS } from '@reyaxyz/common';
16
16
  import { encodeSingleWithdraw } from '../encode';
17
17
  import { MultiAction } from '@reyaxyz/common';
18
18
  import { ethers } from 'ethers';
19
+ import { getTransactionModuleClient } from '../../config';
19
20
 
20
21
  export const withdrawMAAndBridge = async ({
21
22
  signer,
@@ -72,6 +73,26 @@ export const withdrawMAAndBridge = async ({
72
73
  {},
73
74
  );
74
75
 
76
+ if (!result?.hash) {
77
+ return {
78
+ transactionHash: null,
79
+ };
80
+ }
81
+
82
+ try {
83
+ const transactionModuleClient = getTransactionModuleClient();
84
+ await transactionModuleClient.pushPendingTransaction(
85
+ marginAccountId,
86
+ result.hash,
87
+ moneyInOutChainId,
88
+ unscaledAmount,
89
+ corePeripheryTokenInfo.address,
90
+ 'withdrawal',
91
+ );
92
+ } catch (error) {
93
+ console.log('Error persisting pending withdraw transaction', error);
94
+ }
95
+
75
96
  return {
76
97
  transactionHash: result?.hash || null,
77
98
  };