@gobob/bob-sdk 4.3.5 → 4.3.7

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 (64) hide show
  1. package/dist/gateway/base-client.d.ts +4 -0
  2. package/dist/gateway/base-client.js +29 -0
  3. package/dist/gateway/base-client.js.map +1 -0
  4. package/dist/gateway/client.d.ts +4 -11
  5. package/dist/gateway/client.js +10 -29
  6. package/dist/gateway/client.js.map +1 -1
  7. package/dist/gateway/index.d.ts +4 -4
  8. package/dist/gateway/index.js +9 -7
  9. package/dist/gateway/index.js.map +1 -1
  10. package/dist/gateway/layerzero.d.ts +12 -16
  11. package/dist/gateway/layerzero.js +273 -69
  12. package/dist/gateway/layerzero.js.map +1 -1
  13. package/dist/gateway/tokens.d.ts +1 -1
  14. package/dist/gateway/tokens.js +16 -3
  15. package/dist/gateway/tokens.js.map +1 -1
  16. package/dist/gateway/types/bitcoin.d.ts +10 -0
  17. package/dist/gateway/types/bitcoin.js +3 -0
  18. package/dist/gateway/types/bitcoin.js.map +1 -0
  19. package/dist/gateway/types/crosschain-swap.d.ts +33 -0
  20. package/dist/gateway/types/crosschain-swap.js +3 -0
  21. package/dist/gateway/types/crosschain-swap.js.map +1 -0
  22. package/dist/gateway/types/defiLlama.d.ts +11 -0
  23. package/dist/gateway/types/defiLlama.js +3 -0
  24. package/dist/gateway/types/defiLlama.js.map +1 -0
  25. package/dist/gateway/types/index.d.ts +11 -0
  26. package/dist/gateway/types/index.js +28 -0
  27. package/dist/gateway/types/index.js.map +1 -0
  28. package/dist/gateway/types/layerzero.d.ts +90 -0
  29. package/dist/gateway/types/layerzero.js +3 -0
  30. package/dist/gateway/types/layerzero.js.map +1 -0
  31. package/dist/gateway/types/offramp.d.ts +96 -0
  32. package/dist/gateway/types/offramp.js +3 -0
  33. package/dist/gateway/types/offramp.js.map +1 -0
  34. package/dist/gateway/types/onramp.d.ts +96 -0
  35. package/dist/gateway/types/onramp.js +3 -0
  36. package/dist/gateway/types/onramp.js.map +1 -0
  37. package/dist/gateway/types/order.d.ts +77 -0
  38. package/dist/gateway/types/order.js +10 -0
  39. package/dist/gateway/types/order.js.map +1 -0
  40. package/dist/gateway/types/quote.d.ts +34 -0
  41. package/dist/gateway/{types.js → types/quote.js} +1 -1
  42. package/dist/gateway/types/quote.js.map +1 -0
  43. package/dist/gateway/types/strategy.d.ts +64 -0
  44. package/dist/gateway/types/strategy.js +3 -0
  45. package/dist/gateway/types/strategy.js.map +1 -0
  46. package/dist/gateway/types/token.d.ts +24 -0
  47. package/dist/gateway/types/token.js +3 -0
  48. package/dist/gateway/types/token.js.map +1 -0
  49. package/dist/gateway/types/utils.d.ts +1 -0
  50. package/dist/gateway/types/utils.js +3 -0
  51. package/dist/gateway/types/utils.js.map +1 -0
  52. package/dist/gateway/{utils.d.ts → utils/common.d.ts} +2 -3
  53. package/dist/gateway/{utils.js → utils/common.js} +8 -9
  54. package/dist/gateway/utils/common.js.map +1 -0
  55. package/dist/gateway/utils/index.d.ts +2 -0
  56. package/dist/gateway/utils/index.js +19 -0
  57. package/dist/gateway/utils/index.js.map +1 -0
  58. package/dist/gateway/utils/layerzero.d.ts +3 -0
  59. package/dist/gateway/utils/layerzero.js +27 -0
  60. package/dist/gateway/utils/layerzero.js.map +1 -0
  61. package/package.json +1 -1
  62. package/dist/gateway/types.d.ts +0 -379
  63. package/dist/gateway/types.js.map +0 -1
  64. package/dist/gateway/utils.js.map +0 -1
@@ -48,12 +48,11 @@ exports.formatBtc = formatBtc;
48
48
  exports.getChainConfig = getChainConfig;
49
49
  exports.computeAllowanceSlot = computeAllowanceSlot;
50
50
  exports.computeBalanceSlot = computeBalanceSlot;
51
- const viem_1 = require("viem");
52
- const viem_2 = require("viem");
53
51
  const bitcoin = __importStar(require("bitcoinjs-lib"));
52
+ const viem_1 = require("viem");
54
53
  const chains_1 = require("viem/chains");
55
54
  function calculateOpReturnHash(req) {
56
- return (0, viem_2.keccak256)((0, viem_2.encodeAbiParameters)((0, viem_2.parseAbiParameters)([
55
+ return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)([
57
56
  'address gateway',
58
57
  'address strategy',
59
58
  'uint256 satsToConvertToEth',
@@ -141,10 +140,10 @@ function convertOnrampFeeBreakdown(order) {
141
140
  };
142
141
  }
143
142
  function parseBtc(btc) {
144
- return (0, viem_2.parseUnits)(btc, 8);
143
+ return (0, viem_1.parseUnits)(btc, 8);
145
144
  }
146
145
  function formatBtc(btc) {
147
- return (0, viem_2.formatUnits)(btc, 8);
146
+ return (0, viem_1.formatUnits)(btc, 8);
148
147
  }
149
148
  const supportedChains = [
150
149
  chains_1.bob,
@@ -189,21 +188,21 @@ function getChainConfig(fromChain) {
189
188
  return getChainConfigById(fromChain);
190
189
  }
191
190
  function computeAllowanceSlot(user, offrampRegistryAddress, tokenAllowanceSlot) {
192
- const innerSlot = (0, viem_2.keccak256)((0, viem_2.encodeAbiParameters)([
191
+ const innerSlot = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
193
192
  { name: 'owner', type: 'address' },
194
193
  { name: 'slot', type: 'uint256' },
195
194
  ], [user, tokenAllowanceSlot]));
196
- const allowanceSlot = (0, viem_2.keccak256)((0, viem_2.encodeAbiParameters)([
195
+ const allowanceSlot = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
197
196
  { name: 'spender', type: 'address' },
198
197
  { name: 'innerSlot', type: 'bytes32' },
199
198
  ], [offrampRegistryAddress, innerSlot]));
200
199
  return allowanceSlot;
201
200
  }
202
201
  function computeBalanceSlot(user, balancesMappingSlot) {
203
- const balanceSlot = (0, viem_2.keccak256)((0, viem_2.encodeAbiParameters)([
202
+ const balanceSlot = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
204
203
  { name: 'owner', type: 'address' },
205
204
  { name: 'slot', type: 'uint256' },
206
205
  ], [user, balancesMappingSlot]));
207
206
  return balanceSlot;
208
207
  }
209
- //# sourceMappingURL=utils.js.map
208
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/gateway/utils/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,sDAqBC;AAED,8CAIC;AAED,sCAEC;AAED,wCAEC;AAED,0BAKC;AAID,4CAIC;AAED,gCAEC;AAMD,oFAeC;AAED,4DAeC;AAED,8DAQC;AAED,4BAEC;AAED,8BAEC;AAqDD,wCAOC;AAGD,oDAqBC;AAGD,gDAaC;AA9OD,uDAAyC;AACzC,+BAYc;AACd,wCAAqH;AAcrH,SAAgB,qBAAqB,CAAC,GAA8B;IAChE,OAAO,IAAA,gBAAS,EACZ,IAAA,0BAAmB,EACf,IAAA,yBAAkB,EAAC;QACf,iBAAiB;QACjB,kBAAkB;QAClB,4BAA4B;QAC5B,mBAAmB;QACnB,wBAAwB;QACxB,yBAAyB;KAC5B,CAAC,EACF;QACI,GAAG,CAAC,cAAc;QAClB,GAAG,CAAC,eAAe,IAAI,kBAAW;QAClC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC9B,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC5B,GAAG,CAAC,iBAAiB,IAAI,IAAI;KAChC,CACJ,CACJ,CAAC;AACN,CAAC;AAED,SAAgB,iBAAiB,CAAC,WAAmB,EAAE,OAAwB;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;AACpC,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACtC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,SAAgB,OAAO,CAAC,GAAW;IAC/B,OAAO,GAAG;SACL,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAE1E,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,UAAU,CAAC,KAAgB;IACvC,OAAO,IAAA,yBAAkB,EAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,WAAI,GAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,oCAAoC,CAAC,KAAsB;IACvE,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE;YACF,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC5D,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe;YAC3C,mBAAmB,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC9D,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACxD,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC1D,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC1D,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1F,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB;SAC1D;KACJ,CAAC;AACN,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAmB;IACxD,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE;YACF,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC5D,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe;YAC3C,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YAC9D,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YACxD,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC1D,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC1D,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC1C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YAC1F,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB;SAC1D;KACJ,CAAC;AACN,CAAC;AAED,SAAgB,yBAAyB,CAAC,KAA4B;IAClE,OAAO;QACH,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;KAC3C,CAAC;AACN,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAW;IAChC,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACjC,OAAO,IAAA,kBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,eAAe,GAAG;IACpB,YAAG;IACH,gBAAO;IACP,cAAK;IACL,YAAG;IACH,iBAAQ;IACR,kBAAS;IACT,YAAG;IACH,kBAAS;IACT,aAAI;IACJ,gBAAO;IACP,iBAAQ;CACF,CAAC;AAEX,MAAM,2BAA2B,GAAG,eAAe,CAAC,MAAM,CACtD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACtB,OAAO,GAAG,CAAC;AACf,CAAC,EACD,EAAwC,CAC3C,CAAC;AAEF,MAAM,yBAAyB,GAAG,eAAe,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACX,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;IACzC,OAAO,GAAG,CAAC;AACf,CAAC,EACD,EAAgD,CACnD,CAAC;AAEF,SAAS,gBAAgB,CAAC,SAAiB;IACvC,MAAM,OAAO,GAAG,yBAAyB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACX,iBAAiB,SAAS,+BAA+B,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CACxG,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,iBAAiB,OAAO,+BAA+B,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CACpG,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,cAAc,CAAC,SAA0B;IACrD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAGD,SAAgB,oBAAoB,CAAC,IAAa,EAAE,sBAA+B,EAAE,kBAA0B;IAC3G,MAAM,SAAS,GAAG,IAAA,gBAAS,EACvB,IAAA,0BAAmB,EACf;QACI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;KACpC,EACD,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAC7B,CACJ,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,gBAAS,EAC3B,IAAA,0BAAmB,EACf;QACI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACzC,EACD,CAAC,sBAAsB,EAAE,SAAS,CAAC,CACtC,CACJ,CAAC;IACF,OAAO,aAAa,CAAC;AACzB,CAAC;AAGD,SAAgB,kBAAkB,CAAC,IAAa,EAAE,mBAA2B;IAEzE,MAAM,WAAW,GAAG,IAAA,gBAAS,EACzB,IAAA,0BAAmB,EACf;QACI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;KACpC,EACD,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAC9B,CACJ,CAAC;IAEF,OAAO,WAAW,CAAC;AACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './common';
2
+ export * from './layerzero';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./layerzero"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B"}
@@ -0,0 +1,3 @@
1
+ import { LayerZeroMessageWallet } from '../types';
2
+ import { CrossChainOrderStatus } from '../types/crosschain-swap';
3
+ export declare const getCrossChainStatus: (item: LayerZeroMessageWallet) => CrossChainOrderStatus;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCrossChainStatus = void 0;
4
+ const getCrossChainStatus = (item) => {
5
+ const { source, destination } = item;
6
+ if (source.status === 'WAITING') {
7
+ return 'source-pending';
8
+ }
9
+ if (source.status === 'SIMULATION_REVERTED') {
10
+ return 'source-failed';
11
+ }
12
+ if (source.status === 'SUCCEEDED') {
13
+ switch (destination.status) {
14
+ case 'WAITING':
15
+ return 'destination-pending';
16
+ case 'SUCCEEDED':
17
+ return 'destination-confirmed';
18
+ case 'SIMULATION_REVERTED':
19
+ return 'destination-failed';
20
+ default:
21
+ return 'unknown';
22
+ }
23
+ }
24
+ return 'unknown';
25
+ };
26
+ exports.getCrossChainStatus = getCrossChainStatus;
27
+ //# sourceMappingURL=layerzero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layerzero.js","sourceRoot":"","sources":["../../../src/gateway/utils/layerzero.ts"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,CAAC,IAA4B,EAAyB,EAAE;IACvF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAGrC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC;IAC3B,CAAC;IAGD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,QAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,SAAS;gBACV,OAAO,qBAAqB,CAAC;YACjC,KAAK,WAAW;gBACZ,OAAO,uBAAuB,CAAC;YACnC,KAAK,qBAAqB;gBACtB,OAAO,oBAAoB,CAAC;YAChC;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAGD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AA5BW,QAAA,mBAAmB,uBA4B9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "4.3.5",
3
+ "version": "4.3.7",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -1,379 +0,0 @@
1
- import type { EsploraClient } from '../esplora';
2
- import { Address, Hex } from 'viem';
3
- import { offrampCaller } from './abi';
4
- type ChainSlug = string | number;
5
- type TokenSymbol = string;
6
- export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
7
- export type StrategyParams = {
8
- strategyAddress: Address;
9
- token: Address;
10
- sender: Address;
11
- receiver: Address;
12
- amount: bigint;
13
- amountOutMin: bigint;
14
- };
15
- export interface Token {
16
- chainId: number;
17
- address: Address;
18
- name: string;
19
- symbol: string;
20
- decimals: number;
21
- logoURI: string;
22
- }
23
- export interface PointsIncentive {
24
- id: string;
25
- name: string;
26
- }
27
- export interface EnrichedToken extends Token {
28
- tvl: number;
29
- apyBase: number;
30
- apyReward: number;
31
- rewardTokens: Token[];
32
- points: PointsIncentive[];
33
- }
34
- export interface GatewayQuoteParams {
35
- fromChain: ChainSlug;
36
- toChain: ChainSlug;
37
- fromToken: TokenSymbol;
38
- toToken: TokenSymbol;
39
- fromUserAddress: string;
40
- toUserAddress: string;
41
- amount: number | string | bigint;
42
- maxSlippage?: number;
43
- affiliateId?: string;
44
- type?: 'swap' | 'deposit' | 'withdraw' | 'claim';
45
- fee?: number;
46
- feeRate?: number;
47
- gasRefill?: bigint;
48
- fromUserPublicKey?: string;
49
- strategyAddress?: string;
50
- campaignId?: string;
51
- message?: Hex;
52
- }
53
- type GatewayIntegrationType = 'bridge' | 'dex' | 'staking' | 'lending';
54
- interface GatewayIntegration {
55
- type: GatewayIntegrationType;
56
- slug: string;
57
- name: string;
58
- logo: string;
59
- monetization: boolean;
60
- }
61
- type GatewayStrategyType = 'deposit' | 'withdraw' | 'claim' | 'router' | 'bridge';
62
- interface GatewayToken {
63
- symbol: string;
64
- address: string;
65
- logo: string;
66
- decimals: number;
67
- chain: string;
68
- }
69
- type GatewayChainType = 'evm' | 'ibc' | 'solana' | 'multiversx' | 'bitcoin' | 'ton' | 'tron';
70
- interface GatewayChain {
71
- id: string;
72
- chainId: number;
73
- slug: string;
74
- name: string;
75
- logo: string;
76
- type: GatewayChainType;
77
- singleChainSwap: boolean;
78
- singleChainStaking: boolean;
79
- nativeToken?: GatewayToken;
80
- txExplorer?: string;
81
- tokenExplorer?: string;
82
- rpcUrl?: string;
83
- }
84
- export interface GatewayStrategyContract {
85
- id: string;
86
- type: GatewayStrategyType;
87
- address: Address;
88
- method: string;
89
- chain: GatewayChain;
90
- integration: GatewayIntegration;
91
- inputToken: GatewayToken;
92
- outputToken: GatewayToken | null;
93
- }
94
- export interface OnrampFeeBreakdownRaw {
95
- overallFeeSats: number;
96
- protocolFeeSats: number;
97
- affiliateFeeSats: number;
98
- executionFeeWei: string;
99
- l1DataFeeWei: string;
100
- }
101
- export type OnrampFeeBreakdown = Omit<OnrampFeeBreakdownRaw, 'executionFeeWei' | 'l1DataFeeWei'> & {
102
- executionFeeWei: bigint;
103
- l1DataFeeWei: bigint;
104
- };
105
- export type OnrampQuote = {
106
- gatewayAddress: Address;
107
- baseTokenAddress: Address;
108
- dustThreshold: number;
109
- satoshis: number;
110
- outputSatoshis: number;
111
- fee: number;
112
- bitcoinAddress: string;
113
- txProofDifficultyFactor: number;
114
- strategyAddress?: Address;
115
- orderDetails: OrderDetails;
116
- feeBreakdown: OnrampFeeBreakdown;
117
- };
118
- export type OrderDetailsRaw = {
119
- version: string;
120
- data: {
121
- ethAmountToReceive: string;
122
- satsToSwapToEth: number;
123
- ethTransferGasLimit: string;
124
- strategyGasLimit: string;
125
- totalUserGasLimit: string;
126
- userGasPriceLimit: string;
127
- l1DataFee: string;
128
- extraSatsFee: string | null;
129
- extraSatsFeeRecipient: Address | null;
130
- };
131
- };
132
- export type OrderDetails = {
133
- version: string;
134
- data: {
135
- ethAmountToReceive: bigint;
136
- satsToSwapToEth: number;
137
- ethTransferGasLimit: bigint;
138
- strategyGasLimit: bigint;
139
- totalUserGasLimit: bigint;
140
- userGasPriceLimit: bigint;
141
- l1DataFee: bigint;
142
- extraSatsFee: bigint | null;
143
- extraSatsFeeRecipient: Address | null;
144
- };
145
- };
146
- export type GatewayCreateOrderRequest = {
147
- gatewayAddress: Address;
148
- strategyAddress?: Address;
149
- satsToConvertToEth: number;
150
- userAddress: Address;
151
- gatewayExtraData?: Hex;
152
- strategyExtraData?: Hex;
153
- satoshis: number;
154
- campaignId?: string;
155
- orderDetails?: OrderDetails;
156
- };
157
- export type GatewayCreateOrderRequestPayload = {
158
- gatewayAddress: Address;
159
- strategyAddress?: Address;
160
- userAddress: Address;
161
- gatewayExtraData?: Hex;
162
- strategyExtraData?: Hex;
163
- satoshis: number;
164
- campaignId?: string;
165
- orderDetails?: OrderDetailsRaw;
166
- };
167
- export type OfframpGatewayCreateQuoteResponse = {
168
- amountToLock: string;
169
- minimumFeesToPay: string;
170
- gateway: Address;
171
- };
172
- export interface TokenReceived {
173
- amount: string;
174
- tokenAddress: Address;
175
- }
176
- export interface OnrampOrderResponse {
177
- gatewayAddress: Address;
178
- baseTokenAddress: Address;
179
- txid: string;
180
- status: boolean;
181
- timestamp: number;
182
- tokens: string;
183
- satoshis: number;
184
- fee: number;
185
- txProofDifficultyFactor: number;
186
- strategyAddress: Address | null;
187
- satsToConvertToEth: number;
188
- outputEthAmount: string | null;
189
- outputTokenAddress: Address | null;
190
- outputTokenAmount: string | null;
191
- txHash: string | null;
192
- orderDetails: OrderDetailsRaw | null;
193
- layerzeroDstEid: number | null;
194
- tokensReceived: TokenReceived[] | null;
195
- strategyFailed: boolean | null;
196
- }
197
- export type OrderStatusData = {
198
- confirmations: number;
199
- };
200
- export type OrderStatus = {
201
- confirmed: false;
202
- pending?: never;
203
- success?: never;
204
- data: OrderStatusData;
205
- } | {
206
- confirmed?: never;
207
- pending: true;
208
- success?: never;
209
- data: OrderStatusData;
210
- } | {
211
- confirmed?: never;
212
- pending?: never;
213
- success: boolean;
214
- data: OrderStatusData;
215
- };
216
- export type OnrampOrder = Omit<OnrampOrderResponse, 'satsToConvertToEth' | 'orderDetails' | 'tokensReceived' | 'outputTokenAddress' | 'outputTokenAmount'> & {
217
- gasRefill: number;
218
- orderDetails?: OrderDetails;
219
- } & {
220
- getTokenAddress(): string | undefined;
221
- getToken(): Token | undefined;
222
- getTokenAmount(): string | number | null;
223
- getConfirmations(esploraClient: EsploraClient, latestHeight?: number): Promise<number>;
224
- getStatus(esploraClient: EsploraClient, latestHeight?: number): Promise<OrderStatus>;
225
- getOutputTokens(): {
226
- amount: string;
227
- token: Token;
228
- }[];
229
- getTokens(): {
230
- amount: string | number;
231
- token: Token;
232
- }[];
233
- } & GatewayTokensInfo;
234
- export type GatewayTokensInfo = {
235
- baseToken: Token;
236
- outputToken?: Token;
237
- };
238
- export type GatewayCreateOrderResponse = {
239
- uuid: string;
240
- opReturnHash: string;
241
- };
242
- export type GatewayStartOrder = GatewayCreateOrderResponse & {
243
- bitcoinAddress: string;
244
- satoshis: number;
245
- psbtBase64?: string;
246
- };
247
- export type OfframpOrderStatus = 'Active' | 'Accepted' | 'Processed' | 'Refunded';
248
- export interface OfframpFeeBreakdown {
249
- overallFeeSats: number;
250
- inclusionFeeSats: number;
251
- protocolFeeSats: number;
252
- affiliateFeeSats: number;
253
- fastestFeeRate: number;
254
- gasFee?: bigint;
255
- }
256
- export interface OfframpQuote {
257
- amountLockInSat: number;
258
- amountReceiveInSat: number;
259
- deadline: number;
260
- registryAddress: Address;
261
- token: Address;
262
- feeBreakdown: OfframpFeeBreakdown;
263
- }
264
- export interface OfframpLiquidity {
265
- token: Address;
266
- maxOrderAmount: bigint;
267
- totalOfframpLiquidity: bigint;
268
- }
269
- export type OfframpCreateOrderParams = {
270
- quote: OfframpQuote;
271
- feeBreakdown: OfframpFeeBreakdown;
272
- offrampABI: typeof offrampCaller;
273
- offrampFunctionName: 'createOrder';
274
- offrampArgs: [
275
- {
276
- satAmountToLock: bigint;
277
- satFeesMax: bigint;
278
- creationDeadline: bigint;
279
- outputScript: `0x${string}`;
280
- token: Address;
281
- owner: Address;
282
- }
283
- ];
284
- };
285
- export type OfframpOrder = {
286
- orderId: bigint;
287
- token: Address;
288
- satAmountLocked: bigint;
289
- satFeesMax: bigint;
290
- status: OfframpOrderStatus;
291
- orderTimestamp: number;
292
- submitOrderEvmTx: string | null;
293
- refundedEvmTx: string | null;
294
- btcTx: string | null;
295
- shouldFeesBeBumped: boolean;
296
- canOrderBeUnlocked: boolean;
297
- offrampRegistryAddress: Address;
298
- };
299
- export type OnchainOfframpOrderDetails = {
300
- orderId: bigint;
301
- token: Address;
302
- satAmountLocked: bigint;
303
- satFeesMax: bigint;
304
- owner: Address;
305
- solverOwner: Address | null;
306
- solverRecipient: Address | null;
307
- outputScript: string;
308
- status: OfframpOrderStatus;
309
- orderTimestamp: number;
310
- };
311
- export interface OfframpRawOrder {
312
- orderId: string;
313
- token: string;
314
- satAmountLocked: string;
315
- satFeesMax: string;
316
- status: string;
317
- orderTimestamp: string;
318
- btcTx: string | null;
319
- submitOrderEvmTx: string | null;
320
- shouldFeesBeBumped: boolean;
321
- refundedEvmTx: string | null;
322
- }
323
- export interface GatewayStrategy {
324
- strategyAddress: string;
325
- strategyName: string;
326
- strategyType: 'staking' | 'lending';
327
- projectName: string;
328
- projectLogo?: string;
329
- inputTokenAddress: string;
330
- outputTokenAddress?: string;
331
- }
332
- export interface StrategyAssetState {
333
- address: Address | 'usd';
334
- totalUnderlying: bigint;
335
- }
336
- export interface DefiLlamaPool {
337
- pool: string;
338
- chain: string;
339
- project: string;
340
- tvlUsd: number;
341
- apy: number | null;
342
- apyBase: number | null;
343
- apyReward: number | null;
344
- underlyingTokens: null | string[];
345
- rewardTokens: null | string[];
346
- }
347
- export type GetQuoteParams<T = {}> = Optional<GatewayQuoteParams & T, 'fromUserAddress'>;
348
- type BaseExecuteQuoteParams<T = {}> = {
349
- finalOutputSats: number;
350
- finalFeeSats: number;
351
- params: GetQuoteParams;
352
- } & T;
353
- export type OnrampExecuteQuoteParams<T = {}> = BaseExecuteQuoteParams<T> & {
354
- type: 'onramp';
355
- data: OnrampQuote & GatewayTokensInfo;
356
- };
357
- export type OfframpExecuteQuoteParams<T = {}> = BaseExecuteQuoteParams<T> & {
358
- type: 'offramp';
359
- data: OfframpQuote;
360
- };
361
- export type ExecuteQuoteParams<T = {}> = OnrampExecuteQuoteParams<T> | OfframpExecuteQuoteParams<T>;
362
- export interface BitcoinSigner {
363
- signAllInputs?: (psbtBase64: string) => Promise<string>;
364
- sendBitcoin?: (params: {
365
- from: string;
366
- to: string;
367
- value: string;
368
- opReturn: string;
369
- isSignet: boolean;
370
- }) => Promise<string>;
371
- }
372
- export interface BumpFeeParams {
373
- orderId: bigint;
374
- }
375
- export interface UnlockOrderParams {
376
- orderId: bigint;
377
- receiver: Address;
378
- }
379
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/gateway/utils.ts"],"names":[],"mappings":"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"}