@gobob/bob-sdk 3.1.5 → 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, StakeTransactionParams, BuildStakeParams } 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,6 +10,8 @@ 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)[]>;
@@ -1,16 +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");
10
- const strategyABI_1 = require("./strategyABI");
33
+ const abi_1 = require("./abi");
11
34
  const viem_1 = require("viem");
35
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
12
36
  exports.MAINNET_GATEWAY_BASE_URL = 'https://gateway-api-mainnet.gobob.xyz';
13
37
  exports.TESTNET_GATEWAY_BASE_URL = 'https://gateway-api-testnet.gobob.xyz';
38
+ exports.SIGNET_GATEWAY_BASE_URL = 'https://gateway-api-signet.gobob.xyz';
14
39
  class GatewayApiClient {
15
40
  constructor(chainName) {
16
41
  switch (chainName) {
@@ -20,10 +45,13 @@ class GatewayApiClient {
20
45
  this.baseUrl = exports.MAINNET_GATEWAY_BASE_URL;
21
46
  break;
22
47
  case 'testnet':
23
- case types_1.Chain.BOB_SEPOLIA:
24
48
  this.chain = types_1.Chain.BOB_SEPOLIA;
25
49
  this.baseUrl = exports.TESTNET_GATEWAY_BASE_URL;
26
50
  break;
51
+ case 'signet':
52
+ this.chain = types_1.Chain.BOB_SEPOLIA;
53
+ this.baseUrl = exports.SIGNET_GATEWAY_BASE_URL;
54
+ break;
27
55
  default:
28
56
  throw new Error('Invalid chain');
29
57
  }
@@ -86,6 +114,82 @@ class GatewayApiClient {
86
114
  outputToken: quote.strategyAddress ? tokens_1.ADDRESS_LOOKUP[chainId][outputTokenAddress] : undefined,
87
115
  };
88
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
+ }
89
193
  async startOrder(gatewayQuote, params) {
90
194
  if (!params.toUserAddress.startsWith('0x') || !ethers_1.ethers.isAddress(params.toUserAddress)) {
91
195
  throw new Error('Invalid user address');
@@ -289,7 +393,7 @@ class GatewayApiClient {
289
393
  }
290
394
  return {
291
395
  strategyAddress: stakeParams.strategyAddress,
292
- strategyABI: strategyABI_1.strategyCaller,
396
+ strategyABI: abi_1.strategyCaller,
293
397
  strategyFunctionName: 'handleGatewayMessageWithSlippageArgs',
294
398
  strategyArgs: [
295
399
  stakeParams.token,
@@ -323,6 +427,11 @@ function calculateOpReturnHash(req) {
323
427
  req.strategyExtraData || '0x',
324
428
  ]));
325
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
+ }
326
435
  function isHexPrefixed(str) {
327
436
  return str.slice(0, 2) === '0x';
328
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,6 +1,6 @@
1
1
  import type { EsploraClient } from '../esplora';
2
2
  import { Address } from 'viem';
3
- import { strategyCaller } from './strategyABI';
3
+ import { offRampCaller, strategyCaller } from './abi';
4
4
  type ChainSlug = string | number;
5
5
  type TokenSymbol = string;
6
6
  export type EvmAddress = string;
@@ -56,6 +56,7 @@ export interface GatewayQuoteParams {
56
56
  fromUserPublicKey?: string;
57
57
  strategyAddress?: string;
58
58
  campaignId?: string;
59
+ bitcoinUserAddress?: string;
59
60
  }
60
61
  type GatewayIntegrationType = 'bridge' | 'dex' | 'staking' | 'lending';
61
62
  interface GatewayIntegration {
@@ -108,6 +109,20 @@ export type GatewayQuote = {
108
109
  txProofDifficultyFactor: number;
109
110
  strategyAddress?: EvmAddress;
110
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
+ };
111
126
  export type GatewayCreateOrderRequest = {
112
127
  gatewayAddress: EvmAddress;
113
128
  strategyAddress?: EvmAddress;
@@ -118,6 +133,11 @@ export type GatewayCreateOrderRequest = {
118
133
  satoshis: number;
119
134
  campaignId?: string;
120
135
  };
136
+ export type OffRampGatewayCreateQuoteResponse = {
137
+ amountToLock: string;
138
+ minimumFeesToPay: string;
139
+ gateway: EvmAddress;
140
+ };
121
141
  export interface GatewayOrderResponse {
122
142
  gatewayAddress: EvmAddress;
123
143
  baseTokenAddress: EvmAddress;
@@ -176,6 +196,16 @@ export type GatewayStartOrder = GatewayCreateOrderResponse & {
176
196
  satoshis: number;
177
197
  psbtBase64?: string;
178
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
+ };
179
209
  export interface GatewayStrategy {
180
210
  strategyAddress: string;
181
211
  strategyName: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "3.1.5",
3
+ "version": "3.1.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -1,28 +0,0 @@
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
- }];
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- 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
- //# sourceMappingURL=strategyABI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategyABI.js","sourceRoot":"","sources":["../../src/gateway/strategyABI.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"}