hermes-swap 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,11 @@ declare class Hermes {
20
20
  to: string;
21
21
  data: string;
22
22
  };
23
+ getBridgeCallData(params: IBridgeParams): {
24
+ to: string;
25
+ data: string;
26
+ value: bigint;
27
+ };
23
28
  bridge(params: IBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
24
29
  estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
25
30
  swapAndBridge(params: ISwapAndBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
package/dist/cjs/index.js CHANGED
@@ -77,7 +77,6 @@ var Hermes = class {
77
77
  if (!wallet) {
78
78
  throw new Error(`Wallet not configured for chain: ${params.chain}`);
79
79
  }
80
- console.log(`params: ${JSON.stringify(params, (sanitizePricing, value) => typeof value === "bigint" ? value.toString() : value)}`);
81
80
  const response = await fetch(`${this.config.hermesSignalDomain}/api/v1/quote`, {
82
81
  method: "POST",
83
82
  headers: {
@@ -210,6 +209,30 @@ var Hermes = class {
210
209
  data: calldata
211
210
  };
212
211
  }
212
+ getBridgeCallData(params) {
213
+ this.validateParams(params);
214
+ if (!params.bridgeType || !params.tokenAddress) {
215
+ throw new Error("bridge path not provided");
216
+ }
217
+ const aggregatorAddress = this.getAggregatorAddress(params.chain);
218
+ console.log("aggregator address: ", aggregatorAddress);
219
+ const bridgeArgs = {
220
+ bridge: params.bridgeType,
221
+ token: params.tokenAddress,
222
+ amount: params.amountInWei,
223
+ bridgeAddress: params.bridgeAddress,
224
+ destChain: params.destChain,
225
+ destUser: params.destUser,
226
+ extra: params.extra ?? "0x"
227
+ };
228
+ const iface = new import_ethers.ethers.Interface(import_aggregator.default);
229
+ const calldata = iface.encodeFunctionData("bridge", [params.user, bridgeArgs]);
230
+ return {
231
+ to: aggregatorAddress,
232
+ data: calldata,
233
+ value: params.bridgeFee
234
+ };
235
+ }
213
236
  async bridge(params, txReq = {}) {
214
237
  this.validateParams(params);
215
238
  const aggregatorAddress = this.getAggregatorAddress(params.chain);
@@ -20,6 +20,11 @@ declare class Hermes {
20
20
  to: string;
21
21
  data: string;
22
22
  };
23
+ getBridgeCallData(params: IBridgeParams): {
24
+ to: string;
25
+ data: string;
26
+ value: bigint;
27
+ };
23
28
  bridge(params: IBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
24
29
  estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
25
30
  swapAndBridge(params: ISwapAndBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
package/dist/esm/index.js CHANGED
@@ -84,11 +84,7 @@ var Hermes = /*#__PURE__*/function () {
84
84
  }
85
85
  throw new Error("Wallet not configured for chain: ".concat(params.chain));
86
86
  case 3:
87
- // 请求 hermesSignalDomain 下的 /api/v1/quote 接口,参数为 params
88
- console.log("params: ".concat(JSON.stringify(params, function (sanitizePricing, value) {
89
- return typeof value === 'bigint' ? value.toString() : value;
90
- })));
91
- _context.next = 6;
87
+ _context.next = 5;
92
88
  return fetch("".concat(this.config.hermesSignalDomain, "/api/v1/quote"), {
93
89
  method: 'POST',
94
90
  headers: {
@@ -98,26 +94,26 @@ var Hermes = /*#__PURE__*/function () {
98
94
  return typeof value === 'bigint' ? value.toString() : value;
99
95
  })
100
96
  });
101
- case 6:
97
+ case 5:
102
98
  response = _context.sent;
103
- _context.next = 9;
99
+ _context.next = 8;
104
100
  return response.json();
105
- case 9:
101
+ case 8:
106
102
  data = _context.sent;
107
103
  if (!(data.message && !data.amountOutWei)) {
108
- _context.next = 12;
104
+ _context.next = 11;
109
105
  break;
110
106
  }
111
107
  throw new Error("Hermes Signal API \u9519\u8BEF: ".concat(data.message));
112
- case 12:
108
+ case 11:
113
109
  if (data.amountOutWei) {
114
- _context.next = 14;
110
+ _context.next = 13;
115
111
  break;
116
112
  }
117
113
  throw new Error("Invalid response: amountOutWei is undefined. Response: ".concat(JSON.stringify(data)));
118
- case 14:
114
+ case 13:
119
115
  return _context.abrupt("return", BigInt(data.amountOutWei));
120
- case 15:
116
+ case 14:
121
117
  case "end":
122
118
  return _context.stop();
123
119
  }
@@ -400,11 +396,40 @@ var Hermes = /*#__PURE__*/function () {
400
396
  data: calldata
401
397
  };
402
398
  }
399
+ }, {
400
+ key: "getBridgeCallData",
401
+ value: function getBridgeCallData(params) {
402
+ var _params$extra;
403
+ this.validateParams(params);
404
+ if (!params.bridgeType || !params.tokenAddress) {
405
+ throw new Error('bridge path not provided');
406
+ }
407
+ var aggregatorAddress = this.getAggregatorAddress(params.chain);
408
+ console.log('aggregator address: ', aggregatorAddress);
409
+
410
+ // 准备 bridge 参数
411
+ var bridgeArgs = {
412
+ bridge: params.bridgeType,
413
+ token: params.tokenAddress,
414
+ amount: params.amountInWei,
415
+ bridgeAddress: params.bridgeAddress,
416
+ destChain: params.destChain,
417
+ destUser: params.destUser,
418
+ extra: (_params$extra = params.extra) !== null && _params$extra !== void 0 ? _params$extra : '0x'
419
+ };
420
+ var iface = new ethers.Interface(AggregatorAbi);
421
+ var calldata = iface.encodeFunctionData('bridge', [params.user, bridgeArgs]);
422
+ return {
423
+ to: aggregatorAddress,
424
+ data: calldata,
425
+ value: params.bridgeFee
426
+ };
427
+ }
403
428
  }, {
404
429
  key: "bridge",
405
430
  value: function () {
406
431
  var _bridge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
407
- var _params$extra;
432
+ var _params$extra2;
408
433
  var txReq,
409
434
  aggregatorAddress,
410
435
  wallet,
@@ -470,7 +495,7 @@ var Hermes = /*#__PURE__*/function () {
470
495
  bridgeAddress: params.bridgeAddress,
471
496
  destChain: params.destChain,
472
497
  destUser: params.destUser,
473
- extra: (_params$extra = params.extra) !== null && _params$extra !== void 0 ? _params$extra : '0x'
498
+ extra: (_params$extra2 = params.extra) !== null && _params$extra2 !== void 0 ? _params$extra2 : '0x'
474
499
  };
475
500
  if (txReq.value == null) {
476
501
  txReq = _objectSpread(_objectSpread({}, txReq), {}, {
@@ -535,7 +560,7 @@ var Hermes = /*#__PURE__*/function () {
535
560
  key: "estimateBridgeFee",
536
561
  value: function () {
537
562
  var _estimateBridgeFee = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(params) {
538
- var _params$extra2;
563
+ var _params$extra3;
539
564
  var wallet, address, quoter, bridgeArgs, bridgeFee;
540
565
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
541
566
  while (1) switch (_context5.prev = _context5.next) {
@@ -563,7 +588,7 @@ var Hermes = /*#__PURE__*/function () {
563
588
  bridgeAddress: params.bridgeAddress,
564
589
  destChain: params.destChain,
565
590
  destUser: params.destUser,
566
- extra: (_params$extra2 = params.extra) !== null && _params$extra2 !== void 0 ? _params$extra2 : '0x'
591
+ extra: (_params$extra3 = params.extra) !== null && _params$extra3 !== void 0 ? _params$extra3 : '0x'
567
592
  };
568
593
  _context5.next = 11;
569
594
  return quoter.quoteBridge.staticCall(bridgeArgs, {
@@ -587,7 +612,7 @@ var Hermes = /*#__PURE__*/function () {
587
612
  key: "swapAndBridge",
588
613
  value: function () {
589
614
  var _swapAndBridge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(params) {
590
- var _params$extra3;
615
+ var _params$extra4;
591
616
  var txReq,
592
617
  aggregatorAddress,
593
618
  wallet,
@@ -649,7 +674,7 @@ var Hermes = /*#__PURE__*/function () {
649
674
  bridgeAddress: params.bridgeAddress,
650
675
  destChain: params.destChain,
651
676
  destUser: params.destUser,
652
- extra: (_params$extra3 = params.extra) !== null && _params$extra3 !== void 0 ? _params$extra3 : '0x'
677
+ extra: (_params$extra4 = params.extra) !== null && _params$extra4 !== void 0 ? _params$extra4 : '0x'
653
678
  };
654
679
  if (txReq.value == null) {
655
680
  txReq = _objectSpread(_objectSpread({}, txReq), {}, {
@@ -754,7 +779,7 @@ var Hermes = /*#__PURE__*/function () {
754
779
  key: "estimateGas",
755
780
  value: function () {
756
781
  var _estimateGas = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(estimateType, params) {
757
- var _params$extra4, _swapAndBridgeParams$;
782
+ var _params$extra5, _swapAndBridgeParams$;
758
783
  var aggregatorAddress, wallet, aggregator, bridgeArgs1, txOverrides1, gasInBridge, swapParams1, swapGas, swapAndBridgeParams, swapParams, bridgeArgs, txOverrides, gas;
759
784
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
760
785
  while (1) switch (_context7.prev = _context7.next) {
@@ -788,7 +813,7 @@ var Hermes = /*#__PURE__*/function () {
788
813
  bridgeAddress: params.bridgeAddress,
789
814
  destChain: params.destChain,
790
815
  destUser: params.destUser,
791
- extra: (_params$extra4 = params.extra) !== null && _params$extra4 !== void 0 ? _params$extra4 : '0x'
816
+ extra: (_params$extra5 = params.extra) !== null && _params$extra5 !== void 0 ? _params$extra5 : '0x'
792
817
  };
793
818
  txOverrides1 = {
794
819
  from: wallet.address,
@@ -1022,7 +1047,7 @@ var Hermes = /*#__PURE__*/function () {
1022
1047
  }, {
1023
1048
  key: "genSwapAndBridgeCalldata",
1024
1049
  value: function genSwapAndBridgeCalldata(params) {
1025
- var _params$extra5;
1050
+ var _params$extra6;
1026
1051
  this.validateParams(params);
1027
1052
  if (!params.path || params.path.length === 0) {
1028
1053
  throw new Error('Swap path not provided');
@@ -1049,7 +1074,7 @@ var Hermes = /*#__PURE__*/function () {
1049
1074
  bridgeAddress: params.bridgeAddress,
1050
1075
  destChain: params.destChain,
1051
1076
  destUser: params.destUser,
1052
- extra: (_params$extra5 = params.extra) !== null && _params$extra5 !== void 0 ? _params$extra5 : '0x'
1077
+ extra: (_params$extra6 = params.extra) !== null && _params$extra6 !== void 0 ? _params$extra6 : '0x'
1053
1078
  };
1054
1079
  var amountIn = params.amountInWei;
1055
1080
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermes-swap",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "A TypeScript utility library for swap and bridge",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",