@gobob/bob-sdk 3.1.4 → 3.1.6

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.
@@ -0,0 +1,64 @@
1
+ export declare const strategyCaller: readonly [{
2
+ readonly type: "function";
3
+ readonly name: "handleGatewayMessageWithSlippageArgs";
4
+ readonly inputs: readonly [{
5
+ readonly name: "tokenSent";
6
+ readonly type: "address";
7
+ readonly internalType: "contract IERC20";
8
+ }, {
9
+ readonly name: "amountIn";
10
+ readonly type: "uint256";
11
+ readonly internalType: "uint256";
12
+ }, {
13
+ readonly name: "recipient";
14
+ readonly type: "address";
15
+ readonly internalType: "address";
16
+ }, {
17
+ readonly name: "args";
18
+ readonly type: "tuple";
19
+ readonly internalType: "struct StrategySlippageArgs";
20
+ readonly components: readonly [{
21
+ readonly name: "amountOutMin";
22
+ readonly type: "uint256";
23
+ readonly internalType: "uint256";
24
+ }];
25
+ }];
26
+ readonly outputs: readonly [];
27
+ readonly stateMutability: "nonpayable";
28
+ }];
29
+ export declare const offRampCaller: readonly [{
30
+ readonly type: "function";
31
+ readonly name: "createOffRampRequest";
32
+ readonly inputs: readonly [{
33
+ readonly name: "_offRampRequestArgs";
34
+ readonly type: "tuple";
35
+ readonly internalType: "struct OffRampRequestArgs";
36
+ readonly components: readonly [{
37
+ readonly name: "offRampAddress";
38
+ readonly type: "address";
39
+ readonly internalType: "contract IGateway";
40
+ }, {
41
+ readonly name: "amountLocked";
42
+ readonly type: "uint256";
43
+ readonly internalType: "uint256";
44
+ }, {
45
+ readonly name: "maxFees";
46
+ readonly type: "uint256";
47
+ readonly internalType: "uint256";
48
+ }, {
49
+ readonly name: "user";
50
+ readonly type: "address";
51
+ readonly internalType: "address";
52
+ }, {
53
+ readonly name: "token";
54
+ readonly type: "address";
55
+ readonly internalType: "contract IERC20Ext";
56
+ }, {
57
+ readonly name: "userBtcAddress";
58
+ readonly type: "bytes";
59
+ readonly internalType: "bytes";
60
+ }];
61
+ }];
62
+ readonly outputs: readonly [];
63
+ readonly stateMutability: "nonpayable";
64
+ }];
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.offRampCaller = exports.strategyCaller = void 0;
4
+ exports.strategyCaller = [
5
+ {
6
+ type: 'function',
7
+ name: 'handleGatewayMessageWithSlippageArgs',
8
+ inputs: [
9
+ {
10
+ name: 'tokenSent',
11
+ type: 'address',
12
+ internalType: 'contract IERC20',
13
+ },
14
+ {
15
+ name: 'amountIn',
16
+ type: 'uint256',
17
+ internalType: 'uint256',
18
+ },
19
+ {
20
+ name: 'recipient',
21
+ type: 'address',
22
+ internalType: 'address',
23
+ },
24
+ {
25
+ name: 'args',
26
+ type: 'tuple',
27
+ internalType: 'struct StrategySlippageArgs',
28
+ components: [
29
+ {
30
+ name: 'amountOutMin',
31
+ type: 'uint256',
32
+ internalType: 'uint256',
33
+ },
34
+ ],
35
+ },
36
+ ],
37
+ outputs: [],
38
+ stateMutability: 'nonpayable',
39
+ },
40
+ ];
41
+ exports.offRampCaller = [
42
+ {
43
+ type: 'function',
44
+ name: 'createOffRampRequest',
45
+ inputs: [
46
+ {
47
+ name: '_offRampRequestArgs',
48
+ type: 'tuple',
49
+ internalType: 'struct OffRampRequestArgs',
50
+ components: [
51
+ {
52
+ name: 'offRampAddress',
53
+ type: 'address',
54
+ internalType: 'contract IGateway',
55
+ },
56
+ {
57
+ name: 'amountLocked',
58
+ type: 'uint256',
59
+ internalType: 'uint256',
60
+ },
61
+ {
62
+ name: 'maxFees',
63
+ type: 'uint256',
64
+ internalType: 'uint256',
65
+ },
66
+ {
67
+ name: 'user',
68
+ type: 'address',
69
+ internalType: 'address',
70
+ },
71
+ {
72
+ name: 'token',
73
+ type: 'address',
74
+ internalType: 'contract IERC20Ext',
75
+ },
76
+ {
77
+ name: 'userBtcAddress',
78
+ type: 'bytes',
79
+ internalType: 'bytes',
80
+ },
81
+ ],
82
+ },
83
+ ],
84
+ outputs: [],
85
+ stateMutability: 'nonpayable',
86
+ },
87
+ ];
88
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/gateway/abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC1B;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,sCAAsC;QAC5C,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,iBAAiB;aAClC;YACD;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;YACD;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,6BAA6B;gBAC3C,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBAC1B;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAChC;CACK,CAAC;AAEE,QAAA,aAAa,GAAG;IACzB;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,2BAA2B;gBACzC,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,mBAAmB;qBACpC;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBAC1B;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBAC1B;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBAC1B;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,oBAAoB;qBACrC;oBACD;wBACI,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,OAAO;wBACb,YAAY,EAAE,OAAO;qBACxB;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAChC;CACK,CAAC"}
@@ -1,7 +1,8 @@
1
- import { GatewayQuoteParams, GatewayQuote, Token, GatewayStrategyContract, GatewayOrder, GatewayStartOrder, EvmAddress, GatewayTokensInfo } from './types';
1
+ import { GatewayQuoteParams, GatewayQuote, Token, GatewayStrategyContract, GatewayOrder, GatewayStartOrder, EvmAddress, GatewayTokensInfo, StakeTransactionParams, BuildStakeParams, OffRampRequestPayload, GatewayOffRampOrder } from './types';
2
2
  type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
3
3
  export declare const MAINNET_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
4
4
  export declare const TESTNET_GATEWAY_BASE_URL = "https://gateway-api-testnet.gobob.xyz";
5
+ export declare const SIGNET_GATEWAY_BASE_URL = "https://gateway-api-signet.gobob.xyz";
5
6
  export declare class GatewayApiClient {
6
7
  private chain;
7
8
  private baseUrl;
@@ -9,12 +10,15 @@ export declare class GatewayApiClient {
9
10
  private get chainId();
10
11
  getChains(): string[];
11
12
  getQuote(params: Optional<GatewayQuoteParams, 'amount' | 'fromChain' | 'fromToken' | 'fromUserAddress' | 'toUserAddress'>): Promise<GatewayQuote & GatewayTokensInfo>;
13
+ getOffRampQuoteAndRequest(params: Optional<GatewayQuoteParams, 'toChain' | 'toToken' | 'toUserAddress' | 'affiliateId' | 'type' | 'fee' | 'feeRate' | 'gasRefill' | 'strategyAddress' | 'campaignId' | 'fromToken' | 'fromUserAddress' | 'maxSlippage' | 'fromChain'>): Promise<OffRampRequestPayload>;
14
+ getOffRampOrders(userAddress: EvmAddress): Promise<GatewayOffRampOrder[]>;
12
15
  startOrder(gatewayQuote: GatewayQuote, params: Optional<GatewayQuoteParams, 'toToken' | 'amount'>): Promise<GatewayStartOrder>;
13
16
  finalizeOrder(uuid: string, bitcoinTxOrId: string): Promise<string>;
14
17
  getOrders(userAddress: EvmAddress): Promise<(GatewayOrder & GatewayTokensInfo)[]>;
15
18
  getStrategies(): Promise<GatewayStrategyContract[]>;
16
19
  getTokenAddresses(includeStrategies?: boolean): Promise<EvmAddress[]>;
17
20
  getTokens(includeStrategies?: boolean): Promise<Token[]>;
21
+ buildStake(stakeParams: BuildStakeParams): Promise<StakeTransactionParams>;
18
22
  private fetchGet;
19
23
  }
20
24
  export {};
@@ -1,14 +1,41 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GatewayApiClient = exports.TESTNET_GATEWAY_BASE_URL = exports.MAINNET_GATEWAY_BASE_URL = void 0;
26
+ exports.GatewayApiClient = exports.SIGNET_GATEWAY_BASE_URL = exports.TESTNET_GATEWAY_BASE_URL = exports.MAINNET_GATEWAY_BASE_URL = void 0;
4
27
  const ethers_1 = require("ethers");
5
28
  const types_1 = require("./types");
6
29
  const tokens_1 = require("./tokens");
7
30
  const wallet_1 = require("../wallet");
8
31
  const bitcoin_address_validation_1 = require("bitcoin-address-validation");
9
32
  const esplora_1 = require("../esplora");
33
+ const abi_1 = require("./abi");
34
+ const viem_1 = require("viem");
35
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
10
36
  exports.MAINNET_GATEWAY_BASE_URL = 'https://gateway-api-mainnet.gobob.xyz';
11
37
  exports.TESTNET_GATEWAY_BASE_URL = 'https://gateway-api-testnet.gobob.xyz';
38
+ exports.SIGNET_GATEWAY_BASE_URL = 'https://gateway-api-signet.gobob.xyz';
12
39
  class GatewayApiClient {
13
40
  constructor(chainName) {
14
41
  switch (chainName) {
@@ -18,10 +45,13 @@ class GatewayApiClient {
18
45
  this.baseUrl = exports.MAINNET_GATEWAY_BASE_URL;
19
46
  break;
20
47
  case 'testnet':
21
- case types_1.Chain.BOB_SEPOLIA:
22
48
  this.chain = types_1.Chain.BOB_SEPOLIA;
23
49
  this.baseUrl = exports.TESTNET_GATEWAY_BASE_URL;
24
50
  break;
51
+ case 'signet':
52
+ this.chain = types_1.Chain.BOB_SEPOLIA;
53
+ this.baseUrl = exports.SIGNET_GATEWAY_BASE_URL;
54
+ break;
25
55
  default:
26
56
  throw new Error('Invalid chain');
27
57
  }
@@ -84,6 +114,82 @@ class GatewayApiClient {
84
114
  outputToken: quote.strategyAddress ? tokens_1.ADDRESS_LOOKUP[chainId][outputTokenAddress] : undefined,
85
115
  };
86
116
  }
117
+ async getOffRampQuoteAndRequest(params) {
118
+ let bitcoinNetwork = bitcoin.networks.regtest;
119
+ const isMainnet = this.chainId === types_1.ChainId.BOB || (typeof this.chainId === 'string' && this.chainId === types_1.Chain.BOB);
120
+ const isTestnet = this.chainId === types_1.ChainId.BOB_SEPOLIA ||
121
+ (typeof this.chainId === 'string' && this.chainId === types_1.Chain.BOB_SEPOLIA);
122
+ const isInvalidNetwork = !isMainnet && !isTestnet;
123
+ const isMismatchMainnet = isMainnet && this.chain !== types_1.Chain.BOB;
124
+ const isMismatchTestnet = isTestnet && this.chain !== types_1.Chain.BOB_SEPOLIA;
125
+ let outputTokenAddress = '';
126
+ const toToken = params.toToken.toLowerCase();
127
+ if (toToken.startsWith('0x')) {
128
+ outputTokenAddress = toToken;
129
+ }
130
+ else if (isMainnet && tokens_1.SYMBOL_LOOKUP[this.chainId][toToken]) {
131
+ outputTokenAddress = tokens_1.SYMBOL_LOOKUP[this.chainId][toToken].address;
132
+ }
133
+ else if (isTestnet && tokens_1.SYMBOL_LOOKUP[this.chainId][toToken]) {
134
+ outputTokenAddress = tokens_1.SYMBOL_LOOKUP[this.chainId][toToken].address;
135
+ }
136
+ else {
137
+ throw new Error('Unknown output token');
138
+ }
139
+ if (isMismatchMainnet) {
140
+ throw new Error('OffRamp not enabled for mainnet');
141
+ }
142
+ if (isInvalidNetwork || isMismatchTestnet) {
143
+ throw new Error('Invalid output chain');
144
+ }
145
+ if (isMainnet) {
146
+ bitcoinNetwork = bitcoin.networks.bitcoin;
147
+ }
148
+ else if (isTestnet) {
149
+ bitcoinNetwork = bitcoin.networks.testnet;
150
+ }
151
+ const receiverAddress = toHexScriptPubKey(params.bitcoinUserAddress, bitcoinNetwork);
152
+ const queryParams = new URLSearchParams({
153
+ amountToLock: params.amount.toString(),
154
+ token: outputTokenAddress,
155
+ });
156
+ const response = await fetch(`${this.baseUrl}/offramp-quote?${queryParams}`, {
157
+ method: 'GET',
158
+ headers: {
159
+ 'Content-Type': 'application/json',
160
+ Accept: 'application/json',
161
+ },
162
+ });
163
+ if (!response.ok) {
164
+ const errorData = await response.json();
165
+ const errorMessage = errorData?.message || 'Failed to get offramp quote';
166
+ throw new Error(`Offramp API Error: ${errorMessage}`);
167
+ }
168
+ const data = await response.json();
169
+ return {
170
+ offRampABI: abi_1.offRampCaller,
171
+ offRampFunctionName: 'createOffRampRequest',
172
+ offRampArgs: [
173
+ {
174
+ offRampAddress: data.gateway,
175
+ amountLocked: BigInt(data.amountToLock.toString()),
176
+ maxFees: BigInt(data.minimumFeesToPay.toString()),
177
+ user: params.fromUserAddress,
178
+ token: outputTokenAddress,
179
+ userBtcAddress: receiverAddress,
180
+ },
181
+ ],
182
+ };
183
+ }
184
+ async getOffRampOrders(userAddress) {
185
+ const isTestnet = this.chainId === types_1.ChainId.BOB_SEPOLIA ||
186
+ (typeof this.chainId === 'string' && this.chainId === types_1.Chain.BOB_SEPOLIA);
187
+ if (!isTestnet) {
188
+ throw new Error('Invalid output chain offramp only enabled for testnet');
189
+ }
190
+ const response = await this.fetchGet(`${this.baseUrl}/offramp-orders/${userAddress}`);
191
+ return await response.json();
192
+ }
87
193
  async startOrder(gatewayQuote, params) {
88
194
  if (!params.toUserAddress.startsWith('0x') || !ethers_1.ethers.isAddress(params.toUserAddress)) {
89
195
  throw new Error('Invalid user address');
@@ -97,6 +203,7 @@ class GatewayApiClient {
97
203
  gatewayExtraData: undefined,
98
204
  strategyExtraData: abiCoder.encode(['uint256'], [0]),
99
205
  satoshis: gatewayQuote.satoshis,
206
+ campaignId: params.campaignId,
100
207
  };
101
208
  const response = await fetch(`${this.baseUrl}/order`, {
102
209
  method: 'POST',
@@ -272,6 +379,32 @@ class GatewayApiClient {
272
379
  const tokens = await this.getTokenAddresses(includeStrategies);
273
380
  return tokens.map((token) => tokens_1.ADDRESS_LOOKUP[this.chainId][token]).filter((token) => token !== undefined);
274
381
  }
382
+ async buildStake(stakeParams) {
383
+ const strategies = await this.getStrategies();
384
+ const strategy = strategies.find((s) => (0, viem_1.isAddressEqual)(s.address, stakeParams.strategyAddress));
385
+ if (!strategy) {
386
+ throw new Error(`Strategy with address ${stakeParams.strategyAddress} not found.`);
387
+ }
388
+ if (!(0, viem_1.isAddressEqual)(strategy.inputToken.address, stakeParams.token)) {
389
+ throw new Error(`Provided token ${stakeParams.token} does not match strategy's input token ${strategy.inputToken.address}.`);
390
+ }
391
+ if (![stakeParams.sender, stakeParams.receiver, stakeParams.token].every((address) => (0, viem_1.isAddress)(address))) {
392
+ throw new Error(`Invalid EVM address detected.`);
393
+ }
394
+ return {
395
+ strategyAddress: stakeParams.strategyAddress,
396
+ strategyABI: abi_1.strategyCaller,
397
+ strategyFunctionName: 'handleGatewayMessageWithSlippageArgs',
398
+ strategyArgs: [
399
+ stakeParams.token,
400
+ stakeParams.amount,
401
+ stakeParams.receiver,
402
+ { amountOutMin: stakeParams.amountOutMin },
403
+ ],
404
+ erc20ApproveArgs: [stakeParams.strategyAddress, stakeParams.amount],
405
+ account: stakeParams.sender,
406
+ };
407
+ }
275
408
  async fetchGet(url) {
276
409
  return await fetch(url, {
277
410
  method: 'GET',
@@ -294,6 +427,11 @@ function calculateOpReturnHash(req) {
294
427
  req.strategyExtraData || '0x',
295
428
  ]));
296
429
  }
430
+ function toHexScriptPubKey(userAddress, network) {
431
+ const address = bitcoin.address.toOutputScript(userAddress, network);
432
+ const buffer = Buffer.concat([Buffer.from([address.length]), address]);
433
+ return '0x' + buffer.toString('hex');
434
+ }
297
435
  function isHexPrefixed(str) {
298
436
  return str.slice(0, 2) === '0x';
299
437
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { EsploraClient } from '../esplora';
2
+ import { Address } from 'viem';
3
+ import { offRampCaller, strategyCaller } from './abi';
2
4
  type ChainSlug = string | number;
3
5
  type TokenSymbol = string;
4
6
  export type EvmAddress = string;
@@ -11,6 +13,24 @@ export declare enum ChainId {
11
13
  BOB = 60808,
12
14
  BOB_SEPOLIA = 808813
13
15
  }
16
+ export type BuildStakeParams = {
17
+ strategyAddress: Address;
18
+ token: Address;
19
+ sender: Address;
20
+ receiver: Address;
21
+ amount: bigint;
22
+ amountOutMin: bigint;
23
+ };
24
+ export type StakeTransactionParams = {
25
+ strategyAddress: Address;
26
+ strategyABI: typeof strategyCaller;
27
+ strategyFunctionName: string;
28
+ strategyArgs: [Address, bigint, Address, {
29
+ amountOutMin: bigint;
30
+ }];
31
+ account: Address;
32
+ erc20ApproveArgs: [Address, bigint];
33
+ };
14
34
  export interface Token {
15
35
  chainId: number;
16
36
  address: string;
@@ -35,6 +55,8 @@ export interface GatewayQuoteParams {
35
55
  gasRefill?: number;
36
56
  fromUserPublicKey?: string;
37
57
  strategyAddress?: string;
58
+ campaignId?: string;
59
+ bitcoinUserAddress?: string;
38
60
  }
39
61
  type GatewayIntegrationType = 'bridge' | 'dex' | 'staking' | 'lending';
40
62
  interface GatewayIntegration {
@@ -87,6 +109,20 @@ export type GatewayQuote = {
87
109
  txProofDifficultyFactor: number;
88
110
  strategyAddress?: EvmAddress;
89
111
  };
112
+ export type OffRampRequestPayload = {
113
+ offRampABI: typeof offRampCaller;
114
+ offRampFunctionName: string;
115
+ offRampArgs: [
116
+ {
117
+ offRampAddress: Address;
118
+ amountLocked: bigint;
119
+ maxFees: bigint;
120
+ user: Address;
121
+ token: Address;
122
+ userBtcAddress: string;
123
+ }
124
+ ];
125
+ };
90
126
  export type GatewayCreateOrderRequest = {
91
127
  gatewayAddress: EvmAddress;
92
128
  strategyAddress?: EvmAddress;
@@ -95,6 +131,12 @@ export type GatewayCreateOrderRequest = {
95
131
  gatewayExtraData?: string;
96
132
  strategyExtraData?: string;
97
133
  satoshis: number;
134
+ campaignId?: string;
135
+ };
136
+ export type OffRampGatewayCreateQuoteResponse = {
137
+ amountToLock: string;
138
+ minimumFeesToPay: string;
139
+ gateway: EvmAddress;
98
140
  };
99
141
  export interface GatewayOrderResponse {
100
142
  gatewayAddress: EvmAddress;
@@ -154,6 +196,16 @@ export type GatewayStartOrder = GatewayCreateOrderResponse & {
154
196
  satoshis: number;
155
197
  psbtBase64?: string;
156
198
  };
199
+ export type GatewayOffRampOrder = {
200
+ requestId: string;
201
+ offrampAddress: string;
202
+ satoshisToGet: number;
203
+ evmTxHash: string;
204
+ btcTxHash: string;
205
+ timestamp: number;
206
+ done: boolean;
207
+ userAddress: string;
208
+ };
157
209
  export interface GatewayStrategy {
158
210
  strategyAddress: string;
159
211
  strategyName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":";;;AAOA,IAAY,KAKX;AALD,WAAY,KAAK;IAEb,4BAAmB,CAAA;IACnB,oBAAW,CAAA;IACX,oCAA2B,CAAA;AAC/B,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,uCAAW,CAAA;IACX,wDAAoB,CAAA;AACxB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":";;;AASA,IAAY,KAKX;AALD,WAAY,KAAK;IAEb,4BAAmB,CAAA;IACnB,oBAAW,CAAA;IACX,oCAA2B,CAAA;AAC/B,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,uCAAW,CAAA;IACX,wDAAoB,CAAA;AACxB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB"}
@@ -3,12 +3,7 @@ import { AddressType, Network } from 'bitcoin-address-validation';
3
3
  import { EsploraClient, UTXO } from '../esplora';
4
4
  import { OrdinalsClient } from '../ordinal-api';
5
5
  export type BitcoinNetworkName = Exclude<Network, 'regtest'>;
6
- export declare const getBtcNetwork: (name: BitcoinNetworkName) => {
7
- bech32: string;
8
- pubKeyHash: number;
9
- scriptHash: number;
10
- wif: number;
11
- };
6
+ export declare const getBtcNetwork: (name: BitcoinNetworkName) => import("@scure/btc-signer/utils").BTC_NETWORK;
12
7
  export declare const findSafeUtxos: (utxos: UTXO[], cardinalOutputsSet: Set<string>, esploraClient: EsploraClient, ordinalsClient: OrdinalsClient) => Promise<UTXO[]>;
13
8
  export interface Input {
14
9
  txid: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "3.1.4",
3
+ "version": "3.1.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -8,7 +8,7 @@
8
8
  "deploy-relay": "ts-node src/scripts/relay-genesis.ts",
9
9
  "update-relay": "ts-node src/scripts/relay-retarget.ts",
10
10
  "build": "tsc -p tsconfig.json",
11
- "lint": "eslint . --ext .ts",
11
+ "lint": "eslint .",
12
12
  "format": "prettier --write {examples,src,test}",
13
13
  "format:check": "prettier --check {examples,src,test}"
14
14
  },
@@ -23,27 +23,31 @@
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.5.5",
25
25
  "@types/yargs": "^17.0.33",
26
- "@typescript-eslint/eslint-plugin": "^8.6.0",
27
- "@typescript-eslint/parser": "^8.6.0",
26
+ "@typescript-eslint/eslint-plugin": "^8.22.0",
27
+ "@typescript-eslint/parser": "^8.22.0",
28
28
  "ecpair": "^2.1.0",
29
- "eslint": "^8.48.0",
29
+ "eslint": "^9.19.0",
30
30
  "eslint-config-prettier": "^9.1.0",
31
31
  "eslint-plugin-prettier": "^5.2.1",
32
- "mocha": "^10.7.3",
33
- "nock": "^14.0.0-beta.11",
32
+ "mocha": "^11.1.0",
33
+ "nock": "^14.0.0",
34
34
  "prettier": "^3.3.3",
35
35
  "tiny-secp256k1": "^2.2.3",
36
36
  "ts-node": "^10.0.0",
37
37
  "typescript": "^5.6.2",
38
- "vitest": "^2.0.5",
38
+ "vitest": "^3.0.4",
39
39
  "yargs": "^17.5.1"
40
40
  },
41
41
  "dependencies": {
42
+ "@eslint/eslintrc": "^3.2.0",
43
+ "@eslint/js": "^9.19.0",
42
44
  "@magiceden-oss/runestone-lib": "^1.0.2",
43
- "@scure/base": "^1.1.7",
44
- "@scure/btc-signer": "^1.3.2",
45
+ "@scure/base": "^1.2.4",
46
+ "@scure/btc-signer": "^1.6.0",
45
47
  "bitcoin-address-validation": "^2.2.3",
46
48
  "bitcoinjs-lib": "^6.1.6",
47
- "ethers": "^6.13.2"
49
+ "ethers": "^6.13.2",
50
+ "viem": "^2.22.19",
51
+ "global": "^4.4.0"
48
52
  }
49
53
  }