@gobob/bob-sdk 1.2.0 → 2.0.0
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/README.md +50 -4
- package/dist/{electrs.d.ts → esplora.d.ts} +2 -2
- package/dist/{electrs.js → esplora.js} +6 -6
- package/dist/{electrs.js.map → esplora.js.map} +1 -1
- package/dist/gateway/client.d.ts +45 -0
- package/dist/gateway/client.js +127 -0
- package/dist/gateway/client.js.map +1 -0
- package/dist/gateway/index.d.ts +2 -0
- package/dist/gateway/index.js +6 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/tokens.d.ts +12 -0
- package/dist/gateway/tokens.js +64 -0
- package/dist/gateway/tokens.js.map +1 -0
- package/dist/gateway/types.d.ts +17 -0
- package/dist/gateway/types.js +3 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.js +6 -7
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/inscription.d.ts +3 -4
- package/dist/inscription.js +11 -11
- package/dist/inscription.js.map +1 -1
- package/dist/ordinal-api/index.d.ts +10 -1
- package/dist/ordinal-api/index.js +1 -0
- package/dist/ordinal-api/index.js.map +1 -1
- package/dist/ordinals/commit.d.ts +0 -1
- package/dist/ordinals/commit.js +1 -2
- package/dist/ordinals/commit.js.map +1 -1
- package/dist/ordinals/index.js +1 -2
- package/dist/ordinals/index.js.map +1 -1
- package/dist/ordinals/reveal.d.ts +0 -1
- package/dist/ordinals/reveal.js +3 -3
- package/dist/ordinals/reveal.js.map +1 -1
- package/dist/ordinals/signer.d.ts +0 -1
- package/dist/relay.d.ts +4 -4
- package/dist/relay.js +11 -12
- package/dist/relay.js.map +1 -1
- package/dist/scripts/relay-genesis.d.ts +1 -0
- package/dist/scripts/relay-genesis.js +120 -0
- package/dist/scripts/relay-genesis.js.map +1 -0
- package/dist/scripts/relay-retarget.d.ts +1 -0
- package/dist/scripts/relay-retarget.js +115 -0
- package/dist/scripts/relay-retarget.js.map +1 -0
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +42 -5
- package/dist/utils.js.map +1 -1
- package/dist/wallet/address.d.ts +2 -0
- package/dist/wallet/address.js +19 -0
- package/dist/wallet/address.js.map +1 -0
- package/dist/wallet/index.d.ts +2 -0
- package/dist/wallet/index.js +19 -0
- package/dist/wallet/index.js.map +1 -0
- package/dist/wallet/inscriptions.d.ts +4 -0
- package/dist/wallet/inscriptions.js +43 -0
- package/dist/wallet/inscriptions.js.map +1 -0
- package/dist/wallet/utxo.d.ts +23 -0
- package/dist/wallet/utxo.js +91 -0
- package/dist/wallet/utxo.js.map +1 -0
- package/package.json +13 -9
package/README.md
CHANGED
|
@@ -7,13 +7,45 @@ The BOB SDK helps you interact with BOB and Bitcoin, including Ordinals, BRC20,
|
|
|
7
7
|
- [Website](https://www.gobob.xyz/)
|
|
8
8
|
- [Docs](https://docs.gobob.xyz/)
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Using the sdk in your project
|
|
11
|
+
Install `@gobob/bob-sdk` with your package manager of choice.
|
|
11
12
|
|
|
12
13
|
```shell
|
|
13
|
-
pnpm i @bob-sdk
|
|
14
|
+
pnpm i @gobob/bob-sdk
|
|
14
15
|
```
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
or
|
|
18
|
+
```shell
|
|
19
|
+
yarn add @gobob/bob-sdk
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
or
|
|
23
|
+
```shell
|
|
24
|
+
npm i @gobob/bob-sdk
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Building BOB sdk
|
|
28
|
+
|
|
29
|
+
### Clone the repository
|
|
30
|
+
Clone the repository and change to the `sdk` subfolder.
|
|
31
|
+
```shell
|
|
32
|
+
git clone git@github.com:bob-collective/bob.git
|
|
33
|
+
cd bob/sdk
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Install dependencies
|
|
37
|
+
We use `pnpm` in the examples below. But the steps below should also work when using `yarn` or `npm` instead.
|
|
38
|
+
|
|
39
|
+
```shell
|
|
40
|
+
pnpm i
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Build
|
|
44
|
+
```shell
|
|
45
|
+
pnpm build
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Test
|
|
17
49
|
|
|
18
50
|
```shell
|
|
19
51
|
pnpm test
|
|
@@ -21,4 +53,18 @@ pnpm test
|
|
|
21
53
|
|
|
22
54
|
## Contributing
|
|
23
55
|
|
|
24
|
-
BOB is an open-source project. We welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.
|
|
56
|
+
BOB is an open-source project. We welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.
|
|
57
|
+
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
|
|
58
|
+
|
|
59
|
+
1. Set up git so you can [sign your commits](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) (Alternative link: [GitHub: Signing commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits))
|
|
60
|
+
Unsigned PRs cannot be merged, so do not skip this step.
|
|
61
|
+
2. Fork the Project
|
|
62
|
+
3. Create your Feature Branch (git checkout -b yourname/AmazingFeature)
|
|
63
|
+
4. Commit your Changes (git commit -m 'Add some AmazingFeature')
|
|
64
|
+
5. Push to the Branch (git push origin yourname/AmazingFeature)
|
|
65
|
+
6. Open a Pull Request with a description of feature you are adding
|
|
66
|
+
|
|
67
|
+
If you are searching for a place to start or would like to discuss features, reach out to us:
|
|
68
|
+
|
|
69
|
+
- [Discord](https://discord.com/invite/gobob)
|
|
70
|
+
|
|
@@ -67,7 +67,7 @@ export interface Block {
|
|
|
67
67
|
previousblockhash: string | null;
|
|
68
68
|
mediantime: number;
|
|
69
69
|
}
|
|
70
|
-
export interface
|
|
70
|
+
export interface EsploraClient {
|
|
71
71
|
getLatestHeight(): Promise<number>;
|
|
72
72
|
getBlock(hash: string): Promise<Block>;
|
|
73
73
|
getBlockHash(height: number): Promise<string>;
|
|
@@ -79,7 +79,7 @@ export interface ElectrsClient {
|
|
|
79
79
|
getAddressUtxos(address: string): Promise<Array<UTXO>>;
|
|
80
80
|
broadcastTx(txHex: string): Promise<string>;
|
|
81
81
|
}
|
|
82
|
-
export declare class
|
|
82
|
+
export declare class DefaultEsploraClient implements EsploraClient {
|
|
83
83
|
private basePath;
|
|
84
84
|
constructor(networkOrUrl?: string);
|
|
85
85
|
getLatestHeight(): Promise<number>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DefaultEsploraClient = 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
|
-
function
|
|
7
|
+
function encodeEsploraMerkleProof(merkle) {
|
|
8
8
|
return merkle.map(item => Buffer.from(item, "hex").reverse().toString("hex")).join('');
|
|
9
9
|
}
|
|
10
|
-
class
|
|
10
|
+
class DefaultEsploraClient {
|
|
11
11
|
constructor(networkOrUrl = "mainnet") {
|
|
12
12
|
switch (networkOrUrl) {
|
|
13
13
|
case "mainnet":
|
|
@@ -49,7 +49,7 @@ class DefaultElectrsClient {
|
|
|
49
49
|
const response = await this.getJson(`${this.basePath}/tx/${txId}/merkle-proof`);
|
|
50
50
|
return {
|
|
51
51
|
blockHeight: response.block_height,
|
|
52
|
-
merkle:
|
|
52
|
+
merkle: encodeEsploraMerkleProof(response.merkle),
|
|
53
53
|
pos: response.pos,
|
|
54
54
|
};
|
|
55
55
|
}
|
|
@@ -93,5 +93,5 @@ class DefaultElectrsClient {
|
|
|
93
93
|
return await response.text();
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
exports.
|
|
97
|
-
//# sourceMappingURL=
|
|
96
|
+
exports.DefaultEsploraClient = DefaultEsploraClient;
|
|
97
|
+
//# sourceMappingURL=esplora.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"esplora.js","sourceRoot":"","sources":["../src/esplora.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { GatewayQuoteParams } from "./types";
|
|
2
|
+
import { Token as TokenInfo } from "./tokens";
|
|
3
|
+
type EvmAddress = string;
|
|
4
|
+
type GatewayQuote = {
|
|
5
|
+
gatewayAddress: EvmAddress;
|
|
6
|
+
dustThreshold: number;
|
|
7
|
+
satoshis: number;
|
|
8
|
+
fee: number;
|
|
9
|
+
gratuity: string;
|
|
10
|
+
bitcoinAddress: string;
|
|
11
|
+
txProofDifficultyFactor: number;
|
|
12
|
+
strategyAddress: EvmAddress | null;
|
|
13
|
+
};
|
|
14
|
+
type GatewayOrderResponse = {
|
|
15
|
+
gatewayAddress: EvmAddress;
|
|
16
|
+
tokenAddress: EvmAddress;
|
|
17
|
+
txid: string;
|
|
18
|
+
status: boolean;
|
|
19
|
+
timestamp: number;
|
|
20
|
+
tokens: string;
|
|
21
|
+
satoshis: number;
|
|
22
|
+
fee: number;
|
|
23
|
+
txProofDifficultyFactor: number;
|
|
24
|
+
};
|
|
25
|
+
type GatewayCreateOrderResponse = {
|
|
26
|
+
uuid: string;
|
|
27
|
+
opReturnHash: string;
|
|
28
|
+
};
|
|
29
|
+
type GatewayStartOrderResult = GatewayCreateOrderResponse & {
|
|
30
|
+
bitcoinAddress: string;
|
|
31
|
+
satoshis: number;
|
|
32
|
+
};
|
|
33
|
+
export declare const MAINNET_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
|
|
34
|
+
export declare const TESTNET_GATEWAY_BASE_URL = "https://gateway-api-testnet.gobob.xyz";
|
|
35
|
+
export declare class GatewayApiClient {
|
|
36
|
+
private baseUrl;
|
|
37
|
+
constructor(networkOrUrl?: string);
|
|
38
|
+
getQuote(params: GatewayQuoteParams): Promise<GatewayQuote>;
|
|
39
|
+
startOrder(gatewayQuote: GatewayQuote, params: GatewayQuoteParams): Promise<GatewayStartOrderResult>;
|
|
40
|
+
finalizeOrder(orderUuid: string, bitcoinTx: string): Promise<void>;
|
|
41
|
+
getOrders(userAddress: EvmAddress): Promise<GatewayOrderResponse[]>;
|
|
42
|
+
getTokens(): Promise<EvmAddress[]>;
|
|
43
|
+
getTokensInfo(): Promise<TokenInfo[]>;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GatewayApiClient = exports.TESTNET_GATEWAY_BASE_URL = exports.MAINNET_GATEWAY_BASE_URL = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const tokens_1 = require("./tokens");
|
|
6
|
+
exports.MAINNET_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
|
|
7
|
+
exports.TESTNET_GATEWAY_BASE_URL = "https://gateway-api-testnet.gobob.xyz";
|
|
8
|
+
class GatewayApiClient {
|
|
9
|
+
constructor(networkOrUrl = "mainnet") {
|
|
10
|
+
switch (networkOrUrl) {
|
|
11
|
+
case "mainnet" || "bob":
|
|
12
|
+
this.baseUrl = exports.MAINNET_GATEWAY_BASE_URL;
|
|
13
|
+
break;
|
|
14
|
+
case "testnet" || "bob-sepolia":
|
|
15
|
+
this.baseUrl = exports.TESTNET_GATEWAY_BASE_URL;
|
|
16
|
+
break;
|
|
17
|
+
default:
|
|
18
|
+
this.baseUrl = networkOrUrl;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async getQuote(params) {
|
|
22
|
+
const isMainnet = params.toChain == "bob" || params.toChain == 60808;
|
|
23
|
+
let outputToken = "";
|
|
24
|
+
if (params.toToken.startsWith("0x")) {
|
|
25
|
+
outputToken = params.toToken;
|
|
26
|
+
}
|
|
27
|
+
else if (params.toToken in tokens_1.TOKENS_INFO) {
|
|
28
|
+
outputToken = isMainnet ? tokens_1.TOKENS_INFO[params.toToken].bob : tokens_1.TOKENS_INFO[params.toToken].bobSepolia;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
throw new Error('Unknown output token');
|
|
32
|
+
}
|
|
33
|
+
const atomicAmount = params.amount;
|
|
34
|
+
const response = await fetch(`${this.baseUrl}/quote/${outputToken}/${atomicAmount || ''}`, {
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
Accept: 'application/json'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return await response.json();
|
|
41
|
+
}
|
|
42
|
+
async startOrder(gatewayQuote, params) {
|
|
43
|
+
const request = {
|
|
44
|
+
gatewayAddress: gatewayQuote.gatewayAddress,
|
|
45
|
+
strategyAddress: gatewayQuote.strategyAddress,
|
|
46
|
+
satsToConvertToEth: params.gasRefill,
|
|
47
|
+
userAddress: params.toUserAddress,
|
|
48
|
+
gatewayExtraData: null,
|
|
49
|
+
strategyExtraData: null,
|
|
50
|
+
satoshis: gatewayQuote.satoshis,
|
|
51
|
+
};
|
|
52
|
+
const response = await fetch(`${this.baseUrl}/order`, {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
Accept: 'application/json'
|
|
57
|
+
},
|
|
58
|
+
body: JSON.stringify(request)
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
throw new Error('Failed to create order');
|
|
62
|
+
}
|
|
63
|
+
const data = await response.json();
|
|
64
|
+
if (data.opReturnHash != calculateOpReturnHash(request)) {
|
|
65
|
+
throw new Error('Invalid OP_RETURN hash');
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
uuid: data.uuid,
|
|
69
|
+
opReturnHash: data.opReturnHash,
|
|
70
|
+
bitcoinAddress: gatewayQuote.bitcoinAddress,
|
|
71
|
+
satoshis: gatewayQuote.satoshis,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
async finalizeOrder(orderUuid, bitcoinTx) {
|
|
75
|
+
const response = await fetch(`${this.baseUrl}/order/${orderUuid}`, {
|
|
76
|
+
method: 'PATCH',
|
|
77
|
+
headers: {
|
|
78
|
+
'Content-Type': 'application/json',
|
|
79
|
+
Accept: 'application/json'
|
|
80
|
+
},
|
|
81
|
+
body: JSON.stringify({ bitcoinTx: bitcoinTx })
|
|
82
|
+
});
|
|
83
|
+
if (!response.ok) {
|
|
84
|
+
throw new Error('Failed to update order');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async getOrders(userAddress) {
|
|
88
|
+
const response = await fetch(`${this.baseUrl}/orders/${userAddress}`, {
|
|
89
|
+
method: 'GET',
|
|
90
|
+
headers: {
|
|
91
|
+
'Content-Type': 'application/json',
|
|
92
|
+
Accept: 'application/json'
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return response.json();
|
|
96
|
+
}
|
|
97
|
+
async getTokens() {
|
|
98
|
+
const response = await fetch(`${this.baseUrl}/tokens`, {
|
|
99
|
+
method: 'GET',
|
|
100
|
+
headers: {
|
|
101
|
+
'Content-Type': 'application/json',
|
|
102
|
+
Accept: 'application/json'
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
return response.json();
|
|
106
|
+
}
|
|
107
|
+
async getTokensInfo() {
|
|
108
|
+
const tokens = await this.getTokens();
|
|
109
|
+
return tokens
|
|
110
|
+
.map(token => tokens_1.ADDRESS_LOOKUP[token])
|
|
111
|
+
.filter(token => token !== undefined);
|
|
112
|
+
;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.GatewayApiClient = GatewayApiClient;
|
|
116
|
+
function calculateOpReturnHash(req) {
|
|
117
|
+
const abiCoder = new ethers_1.AbiCoder();
|
|
118
|
+
return ethers_1.ethers.keccak256(abiCoder.encode(["address", "address", "uint256", "address", "bytes", "bytes"], [
|
|
119
|
+
req.gatewayAddress,
|
|
120
|
+
req.strategyAddress || ethers_1.ethers.ZeroAddress,
|
|
121
|
+
req.satsToConvertToEth,
|
|
122
|
+
req.userAddress,
|
|
123
|
+
req.gatewayExtraData,
|
|
124
|
+
req.strategyExtraData
|
|
125
|
+
]));
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GatewaySDK = void 0;
|
|
4
|
+
var client_1 = require("./client");
|
|
5
|
+
Object.defineProperty(exports, "GatewaySDK", { enumerable: true, get: function () { return client_1.GatewayApiClient; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":";;;AAAA,mCAA0D;AAAjD,oGAAA,gBAAgB,OAAc"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ADDRESS_LOOKUP = exports.TOKENS_INFO = void 0;
|
|
4
|
+
const TOKENS = {
|
|
5
|
+
"tBTC": {
|
|
6
|
+
name: "tBTC v2",
|
|
7
|
+
symbol: "tBTC",
|
|
8
|
+
bob: "0xBBa2eF945D523C4e2608C9E1214C2Cc64D4fc2e2",
|
|
9
|
+
bobSepolia: "0x6744bAbDf02DCF578EA173A9F0637771A9e1c4d0",
|
|
10
|
+
},
|
|
11
|
+
"WBTC": {
|
|
12
|
+
name: "Wrapped BTC",
|
|
13
|
+
symbol: "WBTC",
|
|
14
|
+
bob: "0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3",
|
|
15
|
+
bobSepolia: "0xe51e40e15e6e1496a0981f90Ca1D632545bdB519",
|
|
16
|
+
},
|
|
17
|
+
"sbtBTC": {
|
|
18
|
+
name: "sb tBTC v2",
|
|
19
|
+
symbol: "sbtBTC",
|
|
20
|
+
bob: "0x2925dF9Eb2092B53B06A06353A7249aF3a8B139e",
|
|
21
|
+
bobSepolia: "",
|
|
22
|
+
},
|
|
23
|
+
"sbWBTC": {
|
|
24
|
+
name: "sb Wrapped BTC",
|
|
25
|
+
symbol: "sbWBTC",
|
|
26
|
+
bob: "0x5c46D274ed8AbCAe2964B63c0360ad3Ccc384dAa",
|
|
27
|
+
bobSepolia: "",
|
|
28
|
+
},
|
|
29
|
+
"seTBTC": {
|
|
30
|
+
name: "Segment TBTC",
|
|
31
|
+
symbol: "seTBTC",
|
|
32
|
+
bob: "0xD30288EA9873f376016A0250433b7eA375676077",
|
|
33
|
+
bobSepolia: "",
|
|
34
|
+
},
|
|
35
|
+
"seWBTC": {
|
|
36
|
+
name: "Segment WBTC",
|
|
37
|
+
symbol: "seWBTC",
|
|
38
|
+
bob: "0x6265C05158f672016B771D6Fb7422823ed2CbcDd",
|
|
39
|
+
bobSepolia: "",
|
|
40
|
+
},
|
|
41
|
+
"stmtBTC": {
|
|
42
|
+
name: "Staked mtBTC",
|
|
43
|
+
symbol: "stmtBTC",
|
|
44
|
+
bob: "",
|
|
45
|
+
bobSepolia: "0xc4229678b65e2D9384FDf96F2E5D512d6eeC0C77",
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.TOKENS_INFO = {};
|
|
49
|
+
exports.ADDRESS_LOOKUP = {};
|
|
50
|
+
for (const key in exports.TOKENS_INFO) {
|
|
51
|
+
const token = TOKENS[key];
|
|
52
|
+
const lowerBob = token.bob.toLowerCase();
|
|
53
|
+
const lowerBobSepolia = token.bobSepolia.toLowerCase();
|
|
54
|
+
const lowercasedToken = {
|
|
55
|
+
name: token.name,
|
|
56
|
+
symbol: token.symbol,
|
|
57
|
+
bob: lowerBob,
|
|
58
|
+
bobSepolia: lowerBobSepolia,
|
|
59
|
+
};
|
|
60
|
+
exports.TOKENS_INFO[key] = lowercasedToken;
|
|
61
|
+
exports.ADDRESS_LOOKUP[lowerBob] = lowercasedToken;
|
|
62
|
+
exports.ADDRESS_LOOKUP[lowerBobSepolia] = lowercasedToken;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/gateway/tokens.ts"],"names":[],"mappings":";;;AAOA,MAAM,MAAM,GAA6B;IACrC,MAAM,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,4CAA4C;KAC3D;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,4CAA4C;KAC3D;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,EAAE;KACjB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,EAAE;KACjB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,EAAE;KACjB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,EAAE;KACjB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,EAAE;QACP,UAAU,EAAE,4CAA4C;KAC3D;CACJ,CAAC;AAEW,QAAA,WAAW,GAA6B,EAAE,CAAC;AAC3C,QAAA,cAAc,GAAiC,EAAE,CAAC;AAE/D,KAAK,MAAM,GAAG,IAAI,mBAAW,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAEvD,MAAM,eAAe,GAAU;QAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,QAAQ;QACb,UAAU,EAAE,eAAe;KAC9B,CAAC;IAEF,mBAAW,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;IACnC,sBAAc,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;IAC3C,sBAAc,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type ChainSlug = string | number;
|
|
2
|
+
type TokenSymbol = string;
|
|
3
|
+
export interface GatewayQuoteParams {
|
|
4
|
+
fromChain: ChainSlug;
|
|
5
|
+
toChain: ChainSlug;
|
|
6
|
+
fromToken: TokenSymbol;
|
|
7
|
+
toToken: TokenSymbol;
|
|
8
|
+
fromUserAddress: string;
|
|
9
|
+
toUserAddress: string;
|
|
10
|
+
amount: number | string;
|
|
11
|
+
maxSlippage?: number;
|
|
12
|
+
affiliateId?: string;
|
|
13
|
+
type?: 'swap' | 'deposit' | 'withdraw' | 'claim';
|
|
14
|
+
fee?: number;
|
|
15
|
+
gasRefill?: number;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":""}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EsploraClient } from "./esplora";
|
|
2
2
|
import { OrdinalsClient } from "./ordinal-api";
|
|
3
|
-
export declare function getInscriptionIds(
|
|
3
|
+
export declare function getInscriptionIds(esploraClient: EsploraClient, ordinalsClient: OrdinalsClient, bitcoinAddress: string): Promise<string[]>;
|
package/dist/helpers.js
CHANGED
|
@@ -23,26 +23,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.getInscriptionIds =
|
|
26
|
+
exports.getInscriptionIds = getInscriptionIds;
|
|
27
27
|
const inscription_1 = require("./inscription");
|
|
28
28
|
const ordinal_api_1 = require("./ordinal-api");
|
|
29
29
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
30
|
-
async function getInscriptionIds(
|
|
31
|
-
const utxos = await
|
|
30
|
+
async function getInscriptionIds(esploraClient, ordinalsClient, bitcoinAddress) {
|
|
31
|
+
const utxos = await esploraClient.getAddressUtxos(bitcoinAddress);
|
|
32
32
|
const inscriptionIds = await Promise.all(utxos.sort((a, b) => {
|
|
33
33
|
const heightA = a.height || Number.MAX_SAFE_INTEGER;
|
|
34
34
|
const heightB = b.height || Number.MAX_SAFE_INTEGER;
|
|
35
35
|
return heightA - heightB;
|
|
36
|
-
}).map(utxo => getInscriptionIdsForUtxo(
|
|
36
|
+
}).map(utxo => getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo)));
|
|
37
37
|
return inscriptionIds.flat();
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
async function getInscriptionIdsForUtxo(electrsClient, ordinalsClient, utxo) {
|
|
39
|
+
async function getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo) {
|
|
41
40
|
if (utxo.confirmed) {
|
|
42
41
|
const outputJson = await ordinalsClient.getInscriptionsFromOutPoint(utxo);
|
|
43
42
|
return outputJson.inscriptions;
|
|
44
43
|
}
|
|
45
|
-
const txHex = await
|
|
44
|
+
const txHex = await esploraClient.getTransactionHex(utxo.txid);
|
|
46
45
|
const tx = bitcoin.Transaction.fromHex(txHex);
|
|
47
46
|
if (utxo.vout == 0) {
|
|
48
47
|
const parentInscriptions = await Promise.all(tx.ins.map(async (txInput) => {
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAYC;AAjBD,+CAAkD;AAClD,+CAA8D;AAC9D,uDAAyC;AAGlC,KAAK,UAAU,iBAAiB,CAAC,aAA4B,EAAE,cAA8B,EAAE,cAAsB;IACxH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAEhB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAEpD,OAAO,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAChF,CAAC;IACF,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAGD,KAAK,UAAU,wBAAwB,CAAC,aAA4B,EAAE,cAA8B,EAAE,IAAU;IAC5G,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,UAAU,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI9C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAKjB,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACnG,OAAO,UAAU,CAAC,YAAY,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC;QACJ,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QAC1B,CAAC;IACL,CAAC;IAGD,MAAM,YAAY,GAAG,IAAA,+BAAiB,EAAC,EAAE,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QAEJ,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,2BAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./esplora"), exports);
|
|
18
18
|
__exportStar(require("./relay"), exports);
|
|
19
19
|
__exportStar(require("./utils"), exports);
|
|
20
20
|
__exportStar(require("./ordinals"), exports);
|
|
21
21
|
__exportStar(require("./helpers"), exports);
|
|
22
|
+
__exportStar(require("./wallet"), exports);
|
|
23
|
+
__exportStar(require("./gateway"), exports);
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,2CAAyB;AACzB,4CAA0B"}
|
package/dist/inscription.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import * as bitcoin from "bitcoinjs-lib";
|
|
3
|
-
import {
|
|
2
|
+
import { EsploraClient } from "./esplora";
|
|
4
3
|
export declare const PROTOCOL_ID: Buffer;
|
|
5
4
|
export declare const MAX_CHUNK_SIZE = 520;
|
|
6
5
|
export declare function chunkContent(data: Buffer): Buffer[];
|
|
@@ -20,5 +19,5 @@ export declare namespace Inscription {
|
|
|
20
19
|
function createInscription(contentType: string, content: Buffer): Inscription;
|
|
21
20
|
}
|
|
22
21
|
export declare function parseInscriptions(tx: bitcoin.Transaction): Inscription[];
|
|
23
|
-
export declare function getTxInscriptions(
|
|
24
|
-
export declare function getInscriptionFromId(
|
|
22
|
+
export declare function getTxInscriptions(esploraClient: EsploraClient, txid: string): Promise<Inscription[]>;
|
|
23
|
+
export declare function getInscriptionFromId(esploraClient: EsploraClient, inscriptionId: string): Promise<Inscription>;
|
package/dist/inscription.js
CHANGED
|
@@ -23,7 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.Inscription = exports.MAX_CHUNK_SIZE = exports.PROTOCOL_ID = void 0;
|
|
27
|
+
exports.chunkContent = chunkContent;
|
|
28
|
+
exports.parseInscriptions = parseInscriptions;
|
|
29
|
+
exports.getTxInscriptions = getTxInscriptions;
|
|
30
|
+
exports.getInscriptionFromId = getInscriptionFromId;
|
|
27
31
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
28
32
|
const ordinal_api_1 = require("./ordinal-api");
|
|
29
33
|
const textEncoder = new TextEncoder();
|
|
@@ -42,7 +46,6 @@ function chunkContent(data) {
|
|
|
42
46
|
}
|
|
43
47
|
return body;
|
|
44
48
|
}
|
|
45
|
-
exports.chunkContent = chunkContent;
|
|
46
49
|
function convertOpInt(value) {
|
|
47
50
|
if (value >= bitcoin.opcodes.OP_1 && value <= bitcoin.opcodes.OP_16) {
|
|
48
51
|
return value - OP_INT_BASE;
|
|
@@ -106,8 +109,8 @@ exports.Inscription = Inscription;
|
|
|
106
109
|
Inscription.createTextInscription = createTextInscription;
|
|
107
110
|
function createInscription(contentType, content) {
|
|
108
111
|
const inscription = new Inscription;
|
|
109
|
-
inscription.setContentType(contentType)
|
|
110
|
-
|
|
112
|
+
inscription.setContentType(contentType);
|
|
113
|
+
inscription.body = content;
|
|
111
114
|
return inscription;
|
|
112
115
|
}
|
|
113
116
|
Inscription.createInscription = createInscription;
|
|
@@ -172,17 +175,14 @@ function parseInscriptions(tx) {
|
|
|
172
175
|
}
|
|
173
176
|
return inscriptions;
|
|
174
177
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const txHex = await electrsClient.getTransactionHex(txid);
|
|
178
|
+
async function getTxInscriptions(esploraClient, txid) {
|
|
179
|
+
const txHex = await esploraClient.getTransactionHex(txid);
|
|
178
180
|
const tx = bitcoin.Transaction.fromHex(txHex);
|
|
179
181
|
return parseInscriptions(tx);
|
|
180
182
|
}
|
|
181
|
-
|
|
182
|
-
async function getInscriptionFromId(electrsClient, inscriptionId) {
|
|
183
|
+
async function getInscriptionFromId(esploraClient, inscriptionId) {
|
|
183
184
|
const { txid, index } = ordinal_api_1.InscriptionId.fromString(inscriptionId);
|
|
184
|
-
const inscriptions = await getTxInscriptions(
|
|
185
|
+
const inscriptions = await getTxInscriptions(esploraClient, txid);
|
|
185
186
|
return inscriptions[index];
|
|
186
187
|
}
|
|
187
|
-
exports.getInscriptionFromId = getInscriptionFromId;
|
|
188
188
|
//# sourceMappingURL=inscription.js.map
|
package/dist/inscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":"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"}
|