@gobob/bob-sdk 2.1.0 → 2.2.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/dist/esplora.d.ts +3 -15
- package/dist/esplora.js +3 -3
- package/dist/esplora.js.map +1 -1
- package/dist/gateway/client.d.ts +11 -48
- package/dist/gateway/client.js +125 -72
- package/dist/gateway/client.js.map +1 -1
- package/dist/gateway/index.d.ts +1 -1
- package/dist/gateway/tokens.d.ts +4 -7
- package/dist/gateway/tokens.js +71 -20
- package/dist/gateway/tokens.js.map +1 -1
- package/dist/gateway/types.d.ts +115 -5
- package/dist/gateway/types.js +12 -0
- package/dist/gateway/types.js.map +1 -1
- package/dist/ordinal-api/index.d.ts +3 -11
- package/dist/ordinal-api/index.js +10 -10
- package/dist/ordinal-api/index.js.map +1 -1
- package/dist/ordinals/index.js +1 -1
- package/dist/ordinals/index.js.map +1 -1
- package/dist/ordinals/reveal.js.map +1 -1
- package/dist/ordinals/signer.js +0 -1
- package/dist/ordinals/signer.js.map +1 -1
- package/dist/scripts/relay-genesis.js +6 -7
- package/dist/scripts/relay-genesis.js.map +1 -1
- package/dist/scripts/relay-retarget.js +9 -10
- package/dist/scripts/relay-retarget.js.map +1 -1
- package/dist/wallet/index.d.ts +1 -1
- package/dist/wallet/inscriptions.js +4 -4
- package/dist/wallet/inscriptions.js.map +1 -1
- package/dist/wallet/utxo.d.ts +3 -3
- package/dist/wallet/utxo.js +20 -20
- package/dist/wallet/utxo.js.map +1 -1
- package/package.json +4 -1
package/dist/esplora.d.ts
CHANGED
|
@@ -67,19 +67,7 @@ export interface Block {
|
|
|
67
67
|
previousblockhash: string | null;
|
|
68
68
|
mediantime: number;
|
|
69
69
|
}
|
|
70
|
-
export
|
|
71
|
-
getLatestHeight(): Promise<number>;
|
|
72
|
-
getBlock(hash: string): Promise<Block>;
|
|
73
|
-
getBlockHash(height: number): Promise<string>;
|
|
74
|
-
getBlockHeader(hash: string): Promise<string>;
|
|
75
|
-
getTransaction(txId: string): Promise<Transaction>;
|
|
76
|
-
getTransactionHex(txId: string): Promise<string>;
|
|
77
|
-
getMerkleProof(txId: string): Promise<MerkleProof>;
|
|
78
|
-
getFeeEstimate(confirmationTarget: number): Promise<number>;
|
|
79
|
-
getAddressUtxos(address: string): Promise<Array<UTXO>>;
|
|
80
|
-
broadcastTx(txHex: string): Promise<string>;
|
|
81
|
-
}
|
|
82
|
-
export declare class DefaultEsploraClient implements EsploraClient {
|
|
70
|
+
export declare class EsploraClient {
|
|
83
71
|
private basePath;
|
|
84
72
|
constructor(networkOrUrl?: string);
|
|
85
73
|
getLatestHeight(): Promise<number>;
|
|
@@ -93,6 +81,6 @@ export declare class DefaultEsploraClient implements EsploraClient {
|
|
|
93
81
|
getFeeEstimate(confirmationTarget: number): Promise<number>;
|
|
94
82
|
getAddressUtxos(address: string, confirmed?: boolean): Promise<Array<UTXO>>;
|
|
95
83
|
broadcastTx(txHex: string): Promise<string>;
|
|
96
|
-
getJson
|
|
97
|
-
getText
|
|
84
|
+
private getJson;
|
|
85
|
+
private getText;
|
|
98
86
|
}
|
package/dist/esplora.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.EsploraClient = exports.REGTEST_ESPLORA_BASE_PATH = exports.TESTNET_ESPLORA_BASE_PATH = exports.MAINNET_ESPLORA_BASE_PATH = void 0;
|
|
4
4
|
exports.MAINNET_ESPLORA_BASE_PATH = "https://btc-mainnet.gobob.xyz";
|
|
5
5
|
exports.TESTNET_ESPLORA_BASE_PATH = "https://btc-testnet.gobob.xyz";
|
|
6
6
|
exports.REGTEST_ESPLORA_BASE_PATH = "http://localhost:3003";
|
|
7
7
|
function encodeEsploraMerkleProof(merkle) {
|
|
8
8
|
return merkle.map(item => Buffer.from(item, "hex").reverse().toString("hex")).join('');
|
|
9
9
|
}
|
|
10
|
-
class
|
|
10
|
+
class EsploraClient {
|
|
11
11
|
constructor(networkOrUrl = "mainnet") {
|
|
12
12
|
switch (networkOrUrl) {
|
|
13
13
|
case "mainnet":
|
|
@@ -93,5 +93,5 @@ class DefaultEsploraClient {
|
|
|
93
93
|
return await response.text();
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
exports.
|
|
96
|
+
exports.EsploraClient = EsploraClient;
|
|
97
97
|
//# sourceMappingURL=esplora.js.map
|
package/dist/esplora.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esplora.js","sourceRoot":"","sources":["../src/esplora.ts"],"names":[],"mappings":";;;AAIa,QAAA,yBAAyB,GAAG,+BAA+B,CAAC;AAK5D,QAAA,yBAAyB,GAAG,+BAA+B,CAAC;AAK5D,QAAA,yBAAyB,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"esplora.js","sourceRoot":"","sources":["../src/esplora.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway/client.d.ts
CHANGED
|
@@ -1,56 +1,19 @@
|
|
|
1
|
-
import { GatewayQuoteParams } from "./types";
|
|
2
|
-
|
|
3
|
-
export declare enum Chains {
|
|
4
|
-
Bitcoin = "bitcoin",
|
|
5
|
-
BOB = "bob",
|
|
6
|
-
BOBSepolia = "bobsepolia"
|
|
7
|
-
}
|
|
8
|
-
type EvmAddress = string;
|
|
9
|
-
type GatewayQuote = {
|
|
10
|
-
gatewayAddress: EvmAddress;
|
|
11
|
-
dustThreshold: number;
|
|
12
|
-
satoshis: number;
|
|
13
|
-
fee: number;
|
|
14
|
-
bitcoinAddress: string;
|
|
15
|
-
txProofDifficultyFactor: number;
|
|
16
|
-
strategyAddress?: EvmAddress;
|
|
17
|
-
};
|
|
18
|
-
type GatewayOrderResponse = {
|
|
19
|
-
gatewayAddress: EvmAddress;
|
|
20
|
-
tokenAddress: EvmAddress;
|
|
21
|
-
txid: string;
|
|
22
|
-
status: boolean;
|
|
23
|
-
timestamp: number;
|
|
24
|
-
tokens: string;
|
|
25
|
-
satoshis: number;
|
|
26
|
-
fee: number;
|
|
27
|
-
txProofDifficultyFactor: number;
|
|
28
|
-
strategyAddress?: EvmAddress;
|
|
29
|
-
satsToConvertToEth: number;
|
|
30
|
-
};
|
|
31
|
-
type GatewayOrder = Omit<GatewayOrderResponse & {
|
|
32
|
-
gasRefill: number;
|
|
33
|
-
}, "satsToConvertToEth">;
|
|
34
|
-
type GatewayCreateOrderResponse = {
|
|
35
|
-
uuid: string;
|
|
36
|
-
opReturnHash: string;
|
|
37
|
-
};
|
|
38
|
-
type GatewayStartOrderResult = GatewayCreateOrderResponse & {
|
|
39
|
-
bitcoinAddress: string;
|
|
40
|
-
satoshis: number;
|
|
41
|
-
psbtBase64?: string;
|
|
42
|
-
};
|
|
1
|
+
import { GatewayQuoteParams, GatewayQuote, Token, GatewayStrategyContract, GatewayOrder, GatewayStartOrder, EvmAddress } from "./types";
|
|
2
|
+
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
43
3
|
export declare const MAINNET_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
|
|
44
4
|
export declare const TESTNET_GATEWAY_BASE_URL = "https://gateway-api-testnet.gobob.xyz";
|
|
45
5
|
export declare class GatewayApiClient {
|
|
46
|
-
private
|
|
6
|
+
private chain;
|
|
47
7
|
private baseUrl;
|
|
48
|
-
constructor(
|
|
49
|
-
|
|
50
|
-
|
|
8
|
+
constructor(chainName: string);
|
|
9
|
+
getChains(): string[];
|
|
10
|
+
getQuote(params: Optional<GatewayQuoteParams, "amount" | "fromChain" | "fromToken" | "fromUserAddress" | "toUserAddress">): Promise<GatewayQuote>;
|
|
11
|
+
startOrder(gatewayQuote: GatewayQuote, params: Optional<GatewayQuoteParams, "toToken" | "amount">): Promise<GatewayStartOrder>;
|
|
51
12
|
finalizeOrder(uuid: string, bitcoinTxHex: string): Promise<void>;
|
|
52
13
|
getOrders(userAddress: EvmAddress): Promise<GatewayOrder[]>;
|
|
53
|
-
|
|
54
|
-
|
|
14
|
+
getStrategies(): Promise<GatewayStrategyContract[]>;
|
|
15
|
+
getTokenAddresses(includeStrategies?: boolean): Promise<EvmAddress[]>;
|
|
16
|
+
getTokens(includeStrategies?: boolean): Promise<Token[]>;
|
|
17
|
+
private fetchGet;
|
|
55
18
|
}
|
|
56
19
|
export {};
|
package/dist/gateway/client.js
CHANGED
|
@@ -1,68 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GatewayApiClient = exports.TESTNET_GATEWAY_BASE_URL = exports.MAINNET_GATEWAY_BASE_URL =
|
|
3
|
+
exports.GatewayApiClient = exports.TESTNET_GATEWAY_BASE_URL = exports.MAINNET_GATEWAY_BASE_URL = void 0;
|
|
4
4
|
const ethers_1 = require("ethers");
|
|
5
|
+
const types_1 = require("./types");
|
|
5
6
|
const tokens_1 = require("./tokens");
|
|
6
7
|
const wallet_1 = require("../wallet");
|
|
7
|
-
var Chains;
|
|
8
|
-
(function (Chains) {
|
|
9
|
-
Chains["Bitcoin"] = "bitcoin";
|
|
10
|
-
Chains["BOB"] = "bob";
|
|
11
|
-
Chains["BOBSepolia"] = "bobsepolia";
|
|
12
|
-
})(Chains || (exports.Chains = Chains = {}));
|
|
13
|
-
;
|
|
14
8
|
exports.MAINNET_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
|
|
15
9
|
exports.TESTNET_GATEWAY_BASE_URL = "https://gateway-api-testnet.gobob.xyz";
|
|
16
|
-
var Network;
|
|
17
|
-
(function (Network) {
|
|
18
|
-
Network[Network["Mainnet"] = 0] = "Mainnet";
|
|
19
|
-
Network[Network["Testnet"] = 1] = "Testnet";
|
|
20
|
-
})(Network || (Network = {}));
|
|
21
10
|
class GatewayApiClient {
|
|
22
|
-
constructor(
|
|
23
|
-
switch (
|
|
11
|
+
constructor(chainName) {
|
|
12
|
+
switch (chainName) {
|
|
24
13
|
case "mainnet":
|
|
25
|
-
case
|
|
26
|
-
this.
|
|
14
|
+
case types_1.Chain.BOB:
|
|
15
|
+
this.chain = types_1.Chain.BOB;
|
|
27
16
|
this.baseUrl = exports.MAINNET_GATEWAY_BASE_URL;
|
|
28
17
|
break;
|
|
29
18
|
case "testnet":
|
|
30
|
-
case
|
|
31
|
-
this.
|
|
19
|
+
case types_1.Chain.BOB_SEPOLIA:
|
|
20
|
+
this.chain = types_1.Chain.BOB_SEPOLIA;
|
|
32
21
|
this.baseUrl = exports.TESTNET_GATEWAY_BASE_URL;
|
|
33
22
|
break;
|
|
34
23
|
default:
|
|
35
|
-
|
|
24
|
+
throw new Error("Invalid chain");
|
|
36
25
|
}
|
|
37
26
|
}
|
|
27
|
+
getChains() {
|
|
28
|
+
return Object.values(types_1.Chain);
|
|
29
|
+
}
|
|
38
30
|
async getQuote(params) {
|
|
39
|
-
const isMainnet = params.toChain ===
|
|
40
|
-
|
|
41
|
-
const
|
|
31
|
+
const isMainnet = params.toChain === types_1.ChainId.BOB ||
|
|
32
|
+
(typeof params.toChain === "string" && params.toChain.toLowerCase() === types_1.Chain.BOB);
|
|
33
|
+
const isTestnet = params.toChain === types_1.ChainId.BOB_SEPOLIA ||
|
|
34
|
+
(typeof params.toChain === "string" && params.toChain.toLowerCase() === types_1.Chain.BOB_SEPOLIA);
|
|
35
|
+
const isInvalidNetwork = !isMainnet && !isTestnet;
|
|
36
|
+
const isMismatchMainnet = isMainnet && this.chain !== types_1.Chain.BOB;
|
|
37
|
+
const isMismatchTestnet = isTestnet && this.chain !== types_1.Chain.BOB_SEPOLIA;
|
|
38
|
+
if (isInvalidNetwork || isMismatchMainnet || isMismatchTestnet) {
|
|
39
|
+
throw new Error("Invalid output chain");
|
|
40
|
+
}
|
|
42
41
|
let outputToken = "";
|
|
42
|
+
let strategyAddress;
|
|
43
|
+
const toToken = params.toToken.toLowerCase();
|
|
44
|
+
if (params.strategyAddress?.startsWith("0x")) {
|
|
45
|
+
strategyAddress = params.strategyAddress;
|
|
46
|
+
}
|
|
43
47
|
if (toToken.startsWith("0x")) {
|
|
44
48
|
outputToken = toToken;
|
|
45
49
|
}
|
|
46
|
-
else if (
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
outputToken = tokens_1.SYMBOL_LOOKUP[toToken].bobSepolia;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
throw new Error('Unknown network');
|
|
55
|
-
}
|
|
50
|
+
else if (isMainnet && this.chain === types_1.Chain.BOB && tokens_1.SYMBOL_LOOKUP[types_1.ChainId.BOB][toToken]) {
|
|
51
|
+
outputToken = tokens_1.SYMBOL_LOOKUP[types_1.ChainId.BOB][toToken].address;
|
|
52
|
+
}
|
|
53
|
+
else if (isTestnet && this.chain === types_1.Chain.BOB_SEPOLIA && tokens_1.SYMBOL_LOOKUP[types_1.ChainId.BOB_SEPOLIA][toToken]) {
|
|
54
|
+
outputToken = tokens_1.SYMBOL_LOOKUP[types_1.ChainId.BOB_SEPOLIA][toToken].address;
|
|
56
55
|
}
|
|
57
56
|
else {
|
|
58
|
-
throw new Error(
|
|
57
|
+
throw new Error("Unknown output token");
|
|
58
|
+
}
|
|
59
|
+
var url = new URL(`${this.baseUrl}/quote/${outputToken}`);
|
|
60
|
+
if (strategyAddress) {
|
|
61
|
+
url.searchParams.append("strategy", `${strategyAddress}`);
|
|
59
62
|
}
|
|
60
63
|
const atomicAmount = params.amount;
|
|
61
|
-
|
|
64
|
+
if (atomicAmount) {
|
|
65
|
+
url.searchParams.append("satoshis", `${atomicAmount}`);
|
|
66
|
+
}
|
|
67
|
+
const response = await fetch(url, {
|
|
62
68
|
headers: {
|
|
63
|
-
|
|
64
|
-
Accept:
|
|
65
|
-
}
|
|
69
|
+
"Content-Type": "application/json",
|
|
70
|
+
Accept: "application/json",
|
|
71
|
+
},
|
|
66
72
|
});
|
|
67
73
|
return await response.json();
|
|
68
74
|
}
|
|
@@ -77,22 +83,24 @@ class GatewayApiClient {
|
|
|
77
83
|
satoshis: gatewayQuote.satoshis,
|
|
78
84
|
};
|
|
79
85
|
const response = await fetch(`${this.baseUrl}/order`, {
|
|
80
|
-
method:
|
|
86
|
+
method: "POST",
|
|
81
87
|
headers: {
|
|
82
|
-
|
|
83
|
-
Accept:
|
|
88
|
+
"Content-Type": "application/json",
|
|
89
|
+
Accept: "application/json",
|
|
84
90
|
},
|
|
85
|
-
body: JSON.stringify(request)
|
|
91
|
+
body: JSON.stringify(request),
|
|
86
92
|
});
|
|
87
93
|
if (!response.ok) {
|
|
88
|
-
throw new Error(
|
|
94
|
+
throw new Error("Failed to create order");
|
|
89
95
|
}
|
|
90
96
|
const data = await response.json();
|
|
91
97
|
if (data.opReturnHash != calculateOpReturnHash(request)) {
|
|
92
|
-
throw new Error(
|
|
98
|
+
throw new Error("Invalid OP_RETURN hash");
|
|
93
99
|
}
|
|
94
100
|
let psbtBase64;
|
|
95
|
-
if (params.fromUserAddress &&
|
|
101
|
+
if (params.fromUserAddress &&
|
|
102
|
+
typeof params.fromChain === "string" &&
|
|
103
|
+
params.fromChain.toLowerCase() === types_1.Chain.BITCOIN) {
|
|
96
104
|
psbtBase64 = await (0, wallet_1.createBitcoinPsbt)(params.fromUserAddress, gatewayQuote.bitcoinAddress, gatewayQuote.satoshis, params.fromUserPublicKey, data.opReturnHash, gatewayQuote.txProofDifficultyFactor);
|
|
97
105
|
}
|
|
98
106
|
return {
|
|
@@ -105,44 +113,89 @@ class GatewayApiClient {
|
|
|
105
113
|
}
|
|
106
114
|
async finalizeOrder(uuid, bitcoinTxHex) {
|
|
107
115
|
const response = await fetch(`${this.baseUrl}/order/${uuid}`, {
|
|
108
|
-
method:
|
|
116
|
+
method: "PATCH",
|
|
109
117
|
headers: {
|
|
110
|
-
|
|
111
|
-
Accept:
|
|
118
|
+
"Content-Type": "application/json",
|
|
119
|
+
Accept: "application/json",
|
|
112
120
|
},
|
|
113
|
-
body: JSON.stringify({ bitcoinTx: bitcoinTxHex })
|
|
121
|
+
body: JSON.stringify({ bitcoinTx: bitcoinTxHex }),
|
|
114
122
|
});
|
|
115
123
|
if (!response.ok) {
|
|
116
|
-
throw new Error(
|
|
124
|
+
throw new Error("Failed to update order");
|
|
117
125
|
}
|
|
118
126
|
}
|
|
119
127
|
async getOrders(userAddress) {
|
|
120
|
-
const response = await
|
|
121
|
-
method: 'GET',
|
|
122
|
-
headers: {
|
|
123
|
-
'Content-Type': 'application/json',
|
|
124
|
-
Accept: 'application/json'
|
|
125
|
-
}
|
|
126
|
-
});
|
|
128
|
+
const response = await this.fetchGet(`${this.baseUrl}/orders/${userAddress}`);
|
|
127
129
|
const orders = await response.json();
|
|
128
|
-
return orders.map(order => {
|
|
130
|
+
return orders.map((order) => {
|
|
131
|
+
return { gasRefill: order.satsToConvertToEth, ...order };
|
|
132
|
+
});
|
|
129
133
|
}
|
|
130
|
-
async
|
|
131
|
-
const response = await
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
async getStrategies() {
|
|
135
|
+
const response = await this.fetchGet(`${this.baseUrl}/strategies`);
|
|
136
|
+
const chainName = (this.chain === types_1.Chain.BOB ? types_1.Chain.BOB : types_1.Chain.BOB_SEPOLIA).toString();
|
|
137
|
+
const chainId = this.chain === types_1.Chain.BOB ? types_1.ChainId.BOB : types_1.ChainId.BOB_SEPOLIA;
|
|
138
|
+
const strategies = await response.json();
|
|
139
|
+
return strategies.map((strategy) => {
|
|
140
|
+
const inputToken = tokens_1.ADDRESS_LOOKUP[strategy.inputTokenAddress];
|
|
141
|
+
const outputToken = strategy.outputTokenAddress ? tokens_1.ADDRESS_LOOKUP[strategy.outputTokenAddress] : undefined;
|
|
142
|
+
return {
|
|
143
|
+
id: "",
|
|
144
|
+
type: "deposit",
|
|
145
|
+
address: strategy.strategyAddress,
|
|
146
|
+
method: "",
|
|
147
|
+
chain: {
|
|
148
|
+
id: "",
|
|
149
|
+
chainId: chainId,
|
|
150
|
+
slug: chainName,
|
|
151
|
+
name: chainName,
|
|
152
|
+
logo: "",
|
|
153
|
+
type: "evm",
|
|
154
|
+
singleChainSwap: true,
|
|
155
|
+
singleChainStaking: true,
|
|
156
|
+
},
|
|
157
|
+
integration: {
|
|
158
|
+
type: strategy.strategyType,
|
|
159
|
+
slug: strategy.strategyName,
|
|
160
|
+
name: strategy.strategyName,
|
|
161
|
+
logo: "",
|
|
162
|
+
monetization: false,
|
|
163
|
+
},
|
|
164
|
+
inputToken: {
|
|
165
|
+
symbol: inputToken.symbol,
|
|
166
|
+
address: inputToken.address,
|
|
167
|
+
logo: inputToken.logoURI,
|
|
168
|
+
decimals: inputToken.decimals,
|
|
169
|
+
chain: chainName,
|
|
170
|
+
},
|
|
171
|
+
outputToken: outputToken
|
|
172
|
+
? {
|
|
173
|
+
symbol: outputToken.symbol,
|
|
174
|
+
address: outputToken.address,
|
|
175
|
+
logo: outputToken.logoURI,
|
|
176
|
+
decimals: outputToken.decimals,
|
|
177
|
+
chain: chainName,
|
|
178
|
+
}
|
|
179
|
+
: null,
|
|
180
|
+
};
|
|
137
181
|
});
|
|
182
|
+
}
|
|
183
|
+
async getTokenAddresses(includeStrategies = true) {
|
|
184
|
+
const response = await this.fetchGet(`${this.baseUrl}/tokens?includeStrategies=${includeStrategies}`);
|
|
138
185
|
return response.json();
|
|
139
186
|
}
|
|
140
|
-
async
|
|
141
|
-
const tokens = await this.
|
|
142
|
-
return tokens
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
187
|
+
async getTokens(includeStrategies = true) {
|
|
188
|
+
const tokens = await this.getTokenAddresses(includeStrategies);
|
|
189
|
+
return tokens.map((token) => tokens_1.ADDRESS_LOOKUP[token]).filter((token) => token !== undefined);
|
|
190
|
+
}
|
|
191
|
+
async fetchGet(url) {
|
|
192
|
+
return await fetch(url, {
|
|
193
|
+
method: "GET",
|
|
194
|
+
headers: {
|
|
195
|
+
"Content-Type": "application/json",
|
|
196
|
+
Accept: "application/json",
|
|
197
|
+
},
|
|
198
|
+
});
|
|
146
199
|
}
|
|
147
200
|
}
|
|
148
201
|
exports.GatewayApiClient = GatewayApiClient;
|
|
@@ -154,7 +207,7 @@ function calculateOpReturnHash(req) {
|
|
|
154
207
|
req.satsToConvertToEth,
|
|
155
208
|
req.userAddress,
|
|
156
209
|
req.gatewayExtraData || "0x",
|
|
157
|
-
req.strategyExtraData || "0x"
|
|
210
|
+
req.strategyExtraData || "0x",
|
|
158
211
|
]));
|
|
159
212
|
}
|
|
160
213
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { GatewayApiClient as GatewaySDK } from "./client";
|
|
2
|
-
export { GatewayQuoteParams } from "./types";
|
|
2
|
+
export { GatewayQuoteParams, GatewayQuote, GatewayOrder, GatewayStrategyContract } from "./types";
|
package/dist/gateway/tokens.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
name: string;
|
|
3
|
-
symbol: string;
|
|
4
|
-
bob: string;
|
|
5
|
-
bobSepolia: string;
|
|
6
|
-
};
|
|
1
|
+
import { Token } from "./types";
|
|
7
2
|
export declare const SYMBOL_LOOKUP: {
|
|
8
|
-
[key
|
|
3
|
+
[key in number]: {
|
|
4
|
+
[key in string]: Token;
|
|
5
|
+
};
|
|
9
6
|
};
|
|
10
7
|
export declare const ADDRESS_LOOKUP: {
|
|
11
8
|
[address: string]: Token;
|
package/dist/gateway/tokens.js
CHANGED
|
@@ -1,64 +1,115 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ADDRESS_LOOKUP = exports.SYMBOL_LOOKUP = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const TOKENS = [
|
|
6
|
+
{
|
|
6
7
|
name: "tBTC v2",
|
|
7
8
|
symbol: "tBTC",
|
|
9
|
+
decimals: 18,
|
|
8
10
|
bob: "0xBBa2eF945D523C4e2608C9E1214C2Cc64D4fc2e2",
|
|
9
11
|
bobSepolia: "0x6744bAbDf02DCF578EA173A9F0637771A9e1c4d0",
|
|
12
|
+
logoURI: "https://ethereum-optimism.github.io/data/tBTC/logo.svg",
|
|
10
13
|
},
|
|
11
|
-
|
|
14
|
+
{
|
|
12
15
|
name: "Wrapped BTC",
|
|
13
16
|
symbol: "WBTC",
|
|
17
|
+
decimals: 8,
|
|
14
18
|
bob: "0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3",
|
|
15
19
|
bobSepolia: "0xe51e40e15e6e1496a0981f90Ca1D632545bdB519",
|
|
20
|
+
logoURI: "https://ethereum-optimism.github.io/data/WBTC/logo.svg",
|
|
16
21
|
},
|
|
17
|
-
|
|
22
|
+
{
|
|
18
23
|
name: "sb tBTC v2",
|
|
19
24
|
symbol: "sbtBTC",
|
|
25
|
+
decimals: 8,
|
|
20
26
|
bob: "0x2925dF9Eb2092B53B06A06353A7249aF3a8B139e",
|
|
21
27
|
bobSepolia: "",
|
|
28
|
+
logoURI: "https://ethereum-optimism.github.io/data/tBTC/logo.svg",
|
|
22
29
|
},
|
|
23
|
-
|
|
30
|
+
{
|
|
24
31
|
name: "sb Wrapped BTC",
|
|
25
32
|
symbol: "sbWBTC",
|
|
33
|
+
decimals: 8,
|
|
26
34
|
bob: "0x5c46D274ed8AbCAe2964B63c0360ad3Ccc384dAa",
|
|
27
35
|
bobSepolia: "",
|
|
36
|
+
logoURI: "https://ethereum-optimism.github.io/data/WBTC/logo.svg",
|
|
28
37
|
},
|
|
29
|
-
|
|
38
|
+
{
|
|
30
39
|
name: "Segment TBTC",
|
|
31
40
|
symbol: "seTBTC",
|
|
41
|
+
decimals: 8,
|
|
32
42
|
bob: "0xD30288EA9873f376016A0250433b7eA375676077",
|
|
33
43
|
bobSepolia: "",
|
|
44
|
+
logoURI: "https://ethereum-optimism.github.io/data/tBTC/logo.svg",
|
|
34
45
|
},
|
|
35
|
-
|
|
46
|
+
{
|
|
36
47
|
name: "Segment WBTC",
|
|
37
48
|
symbol: "seWBTC",
|
|
49
|
+
decimals: 8,
|
|
38
50
|
bob: "0x6265C05158f672016B771D6Fb7422823ed2CbcDd",
|
|
39
51
|
bobSepolia: "",
|
|
52
|
+
logoURI: "https://ethereum-optimism.github.io/data/WBTC/logo.svg",
|
|
40
53
|
},
|
|
41
|
-
|
|
54
|
+
{
|
|
42
55
|
name: "Staked mtBTC",
|
|
43
56
|
symbol: "stmtBTC",
|
|
57
|
+
decimals: 18,
|
|
44
58
|
bob: "",
|
|
45
59
|
bobSepolia: "0xc4229678b65e2D9384FDf96F2E5D512d6eeC0C77",
|
|
46
|
-
|
|
47
|
-
}
|
|
60
|
+
logoURI: "https://ethereum-optimism.github.io/data/tBTC/logo.svg",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: "Solv BTC",
|
|
64
|
+
symbol: "SolvBTC",
|
|
65
|
+
decimals: 18,
|
|
66
|
+
bob: "0x541FD749419CA806a8bc7da8ac23D346f2dF8B77",
|
|
67
|
+
bobSepolia: "",
|
|
68
|
+
logoURI: "https://raw.githubusercontent.com/bob-collective/bob/master/assets/solvBTC.svg",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "SolvBTC Babylon",
|
|
72
|
+
symbol: "SolvBTC.BBN",
|
|
73
|
+
decimals: 18,
|
|
74
|
+
bob: "0xCC0966D8418d412c599A6421b760a847eB169A8c",
|
|
75
|
+
bobSepolia: "",
|
|
76
|
+
logoURI: "https://raw.githubusercontent.com/bob-collective/bob/master/assets/solvBTC.BBN.svg",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "uniBTC",
|
|
80
|
+
symbol: "uniBTC",
|
|
81
|
+
decimals: 8,
|
|
82
|
+
bob: "0x236f8c0a61dA474dB21B693fB2ea7AAB0c803894",
|
|
83
|
+
bobSepolia: "",
|
|
84
|
+
logoURI: "https://raw.githubusercontent.com/bob-collective/bob/master/assets/uniBTC.svg",
|
|
85
|
+
},
|
|
86
|
+
];
|
|
48
87
|
exports.SYMBOL_LOOKUP = {};
|
|
49
88
|
exports.ADDRESS_LOOKUP = {};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
const
|
|
89
|
+
exports.SYMBOL_LOOKUP[types_1.ChainId.BOB] = {};
|
|
90
|
+
exports.SYMBOL_LOOKUP[types_1.ChainId.BOB_SEPOLIA] = {};
|
|
91
|
+
for (const token of TOKENS) {
|
|
92
|
+
const lowerAddressBob = token.bob.toLowerCase();
|
|
93
|
+
const lowerTokenBob = {
|
|
94
|
+
chainId: types_1.ChainId.BOB,
|
|
95
|
+
address: lowerAddressBob,
|
|
96
|
+
name: token.name,
|
|
97
|
+
symbol: token.symbol,
|
|
98
|
+
decimals: token.decimals,
|
|
99
|
+
logoURI: token.logoURI,
|
|
100
|
+
};
|
|
101
|
+
const lowerAddressBobSepolia = token.bobSepolia.toLowerCase();
|
|
102
|
+
const lowerTokenBobSepolia = {
|
|
103
|
+
chainId: types_1.ChainId.BOB_SEPOLIA,
|
|
104
|
+
address: lowerAddressBobSepolia,
|
|
55
105
|
name: token.name,
|
|
56
106
|
symbol: token.symbol,
|
|
57
|
-
|
|
58
|
-
|
|
107
|
+
decimals: token.decimals,
|
|
108
|
+
logoURI: token.logoURI,
|
|
59
109
|
};
|
|
60
|
-
exports.SYMBOL_LOOKUP[
|
|
61
|
-
exports.
|
|
62
|
-
exports.ADDRESS_LOOKUP[
|
|
110
|
+
exports.SYMBOL_LOOKUP[types_1.ChainId.BOB][lowerTokenBob.symbol.toLowerCase()] = lowerTokenBob;
|
|
111
|
+
exports.SYMBOL_LOOKUP[types_1.ChainId.BOB_SEPOLIA][lowerTokenBobSepolia.symbol.toLowerCase()] = lowerTokenBobSepolia;
|
|
112
|
+
exports.ADDRESS_LOOKUP[lowerAddressBob] = lowerTokenBob;
|
|
113
|
+
exports.ADDRESS_LOOKUP[lowerAddressBobSepolia] = lowerTokenBobSepolia;
|
|
63
114
|
}
|
|
64
115
|
//# sourceMappingURL=tokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/gateway/tokens.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/gateway/tokens.ts"],"names":[],"mappings":"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"}
|