@gobob/bob-sdk 2.3.4 → 2.3.5
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.js +13 -13
- package/dist/esplora.js.map +1 -1
- package/dist/gateway/client.d.ts +3 -3
- package/dist/gateway/client.js +45 -45
- package/dist/gateway/client.js.map +1 -1
- package/dist/gateway/index.d.ts +2 -2
- package/dist/gateway/tokens.d.ts +1 -1
- package/dist/gateway/tokens.js +66 -50
- package/dist/gateway/tokens.js.map +1 -1
- package/dist/gateway/types.d.ts +7 -7
- package/dist/gateway/types.js +0 -2
- package/dist/gateway/types.js.map +1 -1
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.js +5 -3
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/inscription.d.ts +2 -2
- package/dist/inscription.js +11 -13
- package/dist/inscription.js.map +1 -1
- package/dist/ordinal-api/index.d.ts +1 -1
- package/dist/ordinal-api/index.js +11 -11
- package/dist/ordinals/commit.d.ts +2 -2
- package/dist/ordinals/index.d.ts +3 -3
- package/dist/ordinals/index.js +1 -1
- package/dist/ordinals/reveal.d.ts +3 -3
- package/dist/ordinals/reveal.js.map +1 -1
- package/dist/ordinals/signer.d.ts +1 -1
- package/dist/relay.d.ts +1 -1
- package/dist/relay.js +5 -6
- package/dist/relay.js.map +1 -1
- package/dist/scripts/relay-genesis.js +47 -47
- package/dist/scripts/relay-genesis.js.map +1 -1
- package/dist/scripts/relay-retarget.js +33 -33
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +19 -17
- package/dist/utils.js.map +1 -1
- package/dist/wallet/index.d.ts +2 -2
- package/dist/wallet/inscriptions.d.ts +2 -2
- package/dist/wallet/inscriptions.js +1 -1
- package/dist/wallet/utxo.d.ts +4 -4
- package/dist/wallet/utxo.js +13 -13
- package/dist/wallet/utxo.js.map +1 -1
- package/package.json +12 -6
|
@@ -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":";;;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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { EsploraClient } from
|
|
2
|
-
import { OrdinalsClient } from
|
|
1
|
+
import { EsploraClient } from './esplora';
|
|
2
|
+
import { OrdinalsClient } from './ordinal-api';
|
|
3
3
|
export declare function getInscriptionIds(esploraClient: EsploraClient, ordinalsClient: OrdinalsClient, bitcoinAddress: string): Promise<string[]>;
|
package/dist/helpers.js
CHANGED
|
@@ -29,11 +29,13 @@ const ordinal_api_1 = require("./ordinal-api");
|
|
|
29
29
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
30
30
|
async function getInscriptionIds(esploraClient, ordinalsClient, bitcoinAddress) {
|
|
31
31
|
const utxos = await esploraClient.getAddressUtxos(bitcoinAddress);
|
|
32
|
-
const inscriptionIds = await Promise.all(utxos
|
|
32
|
+
const inscriptionIds = await Promise.all(utxos
|
|
33
|
+
.sort((a, b) => {
|
|
33
34
|
const heightA = a.height || Number.MAX_SAFE_INTEGER;
|
|
34
35
|
const heightB = b.height || Number.MAX_SAFE_INTEGER;
|
|
35
36
|
return heightA - heightB;
|
|
36
|
-
})
|
|
37
|
+
})
|
|
38
|
+
.map((utxo) => getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo)));
|
|
37
39
|
return inscriptionIds.flat();
|
|
38
40
|
}
|
|
39
41
|
async function getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo) {
|
|
@@ -45,7 +47,7 @@ async function getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo) {
|
|
|
45
47
|
const tx = bitcoin.Transaction.fromHex(txHex);
|
|
46
48
|
if (utxo.vout == 0) {
|
|
47
49
|
const parentInscriptions = await Promise.all(tx.ins.map(async (txInput) => {
|
|
48
|
-
const txid = txInput.hash.reverse().toString(
|
|
50
|
+
const txid = txInput.hash.reverse().toString('hex');
|
|
49
51
|
const outputJson = await ordinalsClient.getInscriptionsFromOutPoint({ txid, vout: txInput.index });
|
|
50
52
|
return outputJson.inscriptions;
|
|
51
53
|
}));
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAkBC;AAvBD,+CAAkD;AAClD,+CAA8D;AAC9D,uDAAyC;AAGlC,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,cAA8B,EAC9B,cAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAEX,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;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CACpF,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,CACxC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,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,CACL,CAAC;QACF,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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
1
|
+
export * from './esplora';
|
|
2
|
+
export * from './relay';
|
|
3
|
+
export * from './utils';
|
|
4
|
+
export * from './ordinals';
|
|
5
|
+
export * from './helpers';
|
|
6
|
+
export * from './wallet';
|
|
7
|
+
export * from './gateway';
|
package/dist/inscription.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as bitcoin from
|
|
2
|
-
import { EsploraClient } from
|
|
1
|
+
import * as bitcoin from 'bitcoinjs-lib';
|
|
2
|
+
import { EsploraClient } from './esplora';
|
|
3
3
|
export declare const PROTOCOL_ID: Buffer;
|
|
4
4
|
export declare const MAX_CHUNK_SIZE = 520;
|
|
5
5
|
export declare function chunkContent(data: Buffer): Buffer[];
|
package/dist/inscription.js
CHANGED
|
@@ -33,7 +33,7 @@ const ordinal_api_1 = require("./ordinal-api");
|
|
|
33
33
|
const textEncoder = new TextEncoder();
|
|
34
34
|
const OP_INT_BASE = bitcoin.opcodes.OP_RESERVED;
|
|
35
35
|
const TAPROOT_ANNEX_PREFIX = 0x50;
|
|
36
|
-
exports.PROTOCOL_ID = Buffer.from(
|
|
36
|
+
exports.PROTOCOL_ID = Buffer.from('6f7264', 'hex');
|
|
37
37
|
const CONTENT_TYPE_TAG = bitcoin.opcodes.OP_1;
|
|
38
38
|
const CONTENT_ENCODING_TAG = bitcoin.opcodes.OP_9;
|
|
39
39
|
exports.MAX_CHUNK_SIZE = 520;
|
|
@@ -60,14 +60,14 @@ class Inscription {
|
|
|
60
60
|
getContentType() {
|
|
61
61
|
const data = this.tags[CONTENT_TYPE_TAG];
|
|
62
62
|
if (Buffer.isBuffer(data)) {
|
|
63
|
-
return data.toString(
|
|
63
|
+
return data.toString('utf-8');
|
|
64
64
|
}
|
|
65
65
|
return null;
|
|
66
66
|
}
|
|
67
67
|
getContentEncoding() {
|
|
68
68
|
const data = this.tags[CONTENT_ENCODING_TAG];
|
|
69
69
|
if (Buffer.isBuffer(data)) {
|
|
70
|
-
return data.toString(
|
|
70
|
+
return data.toString('utf-8');
|
|
71
71
|
}
|
|
72
72
|
return null;
|
|
73
73
|
}
|
|
@@ -90,11 +90,9 @@ class Inscription {
|
|
|
90
90
|
bitcoin.opcodes.OP_0,
|
|
91
91
|
bitcoin.opcodes.OP_IF,
|
|
92
92
|
exports.PROTOCOL_ID,
|
|
93
|
-
...this.getTags()
|
|
94
|
-
1,
|
|
95
|
-
|
|
96
|
-
value,
|
|
97
|
-
]).flat(),
|
|
93
|
+
...this.getTags()
|
|
94
|
+
.map(([key, value]) => [1, key, value])
|
|
95
|
+
.flat(),
|
|
98
96
|
bitcoin.opcodes.OP_0,
|
|
99
97
|
...chunkContent(this.body),
|
|
100
98
|
bitcoin.opcodes.OP_ENDIF,
|
|
@@ -104,11 +102,11 @@ class Inscription {
|
|
|
104
102
|
exports.Inscription = Inscription;
|
|
105
103
|
(function (Inscription) {
|
|
106
104
|
function createTextInscription(text) {
|
|
107
|
-
return Inscription.createInscription(
|
|
105
|
+
return Inscription.createInscription('text/plain;charset=utf-8', Buffer.from(textEncoder.encode(text)));
|
|
108
106
|
}
|
|
109
107
|
Inscription.createTextInscription = createTextInscription;
|
|
110
108
|
function createInscription(contentType, content) {
|
|
111
|
-
const inscription = new Inscription;
|
|
109
|
+
const inscription = new Inscription();
|
|
112
110
|
inscription.setContentType(contentType);
|
|
113
111
|
inscription.body = content;
|
|
114
112
|
return inscription;
|
|
@@ -131,7 +129,7 @@ function getTapscript(witness) {
|
|
|
131
129
|
return bitcoin.script.decompile(witness[len - scriptPosFromLast]);
|
|
132
130
|
}
|
|
133
131
|
function parseInscriptions(tx) {
|
|
134
|
-
|
|
132
|
+
const inscriptions = [];
|
|
135
133
|
for (const txInput of tx.ins) {
|
|
136
134
|
const tapscript = getTapscript(txInput.witness);
|
|
137
135
|
if (tapscript == null) {
|
|
@@ -149,8 +147,8 @@ function parseInscriptions(tx) {
|
|
|
149
147
|
if (!Buffer.isBuffer(data) && !data.equals(exports.PROTOCOL_ID)) {
|
|
150
148
|
continue;
|
|
151
149
|
}
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
const tags = new Map();
|
|
151
|
+
const body = [];
|
|
154
152
|
let isBody = false;
|
|
155
153
|
for (let chunk = chunks.next(); !chunk.done; chunk = chunks.next()) {
|
|
156
154
|
if (chunk.value == bitcoin.opcodes.OP_ENDIF) {
|
package/dist/inscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,oCAQC;
|
|
1
|
+
{"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ export interface InscriptionJson<InscriptionId, SatPoint> {
|
|
|
70
70
|
children: InscriptionId[];
|
|
71
71
|
content_length: number | null;
|
|
72
72
|
content_type: string | null;
|
|
73
|
-
effective_content_type:
|
|
73
|
+
effective_content_type: string | null;
|
|
74
74
|
fee: number;
|
|
75
75
|
height: number;
|
|
76
76
|
id: InscriptionId;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OrdinalsClient = exports.SatPoint = exports.OutPoint = exports.InscriptionId = exports.TESTNET_ORD_BASE_PATH = exports.MAINNET_ORD_BASE_PATH = exports.REGTEST_ORD_BASE_PATH = void 0;
|
|
4
|
-
exports.REGTEST_ORD_BASE_PATH =
|
|
5
|
-
exports.MAINNET_ORD_BASE_PATH =
|
|
6
|
-
exports.TESTNET_ORD_BASE_PATH =
|
|
4
|
+
exports.REGTEST_ORD_BASE_PATH = 'http://0.0.0.0:3003';
|
|
5
|
+
exports.MAINNET_ORD_BASE_PATH = 'https://ordinals-mainnet.gobob.xyz';
|
|
6
|
+
exports.TESTNET_ORD_BASE_PATH = 'https://ordinals-testnet.gobob.xyz';
|
|
7
7
|
var InscriptionId;
|
|
8
8
|
(function (InscriptionId) {
|
|
9
9
|
function toString(id) {
|
|
@@ -11,7 +11,7 @@ var InscriptionId;
|
|
|
11
11
|
}
|
|
12
12
|
InscriptionId.toString = toString;
|
|
13
13
|
function fromString(id) {
|
|
14
|
-
const [txid, index] = id.split(
|
|
14
|
+
const [txid, index] = id.split('i');
|
|
15
15
|
return {
|
|
16
16
|
txid,
|
|
17
17
|
index: parseInt(index, 10),
|
|
@@ -26,7 +26,7 @@ var OutPoint;
|
|
|
26
26
|
}
|
|
27
27
|
OutPoint.toString = toString;
|
|
28
28
|
function fromString(id) {
|
|
29
|
-
const [txid, vout] = id.split(
|
|
29
|
+
const [txid, vout] = id.split(':');
|
|
30
30
|
return {
|
|
31
31
|
txid,
|
|
32
32
|
vout: parseInt(vout, 10),
|
|
@@ -41,7 +41,7 @@ var SatPoint;
|
|
|
41
41
|
}
|
|
42
42
|
SatPoint.toString = toString;
|
|
43
43
|
function fromString(id) {
|
|
44
|
-
const [txid, vout, offset] = id.split(
|
|
44
|
+
const [txid, vout, offset] = id.split(':');
|
|
45
45
|
return {
|
|
46
46
|
outpoint: {
|
|
47
47
|
txid,
|
|
@@ -53,15 +53,15 @@ var SatPoint;
|
|
|
53
53
|
SatPoint.fromString = fromString;
|
|
54
54
|
})(SatPoint || (exports.SatPoint = SatPoint = {}));
|
|
55
55
|
class OrdinalsClient {
|
|
56
|
-
constructor(networkOrUrl =
|
|
56
|
+
constructor(networkOrUrl = 'mainnet') {
|
|
57
57
|
switch (networkOrUrl) {
|
|
58
|
-
case
|
|
58
|
+
case 'mainnet':
|
|
59
59
|
this.basePath = exports.MAINNET_ORD_BASE_PATH;
|
|
60
60
|
break;
|
|
61
|
-
case
|
|
61
|
+
case 'testnet':
|
|
62
62
|
this.basePath = exports.TESTNET_ORD_BASE_PATH;
|
|
63
63
|
break;
|
|
64
|
-
case
|
|
64
|
+
case 'regtest':
|
|
65
65
|
this.basePath = exports.REGTEST_ORD_BASE_PATH;
|
|
66
66
|
break;
|
|
67
67
|
default:
|
|
@@ -106,7 +106,7 @@ class OrdinalsClient {
|
|
|
106
106
|
async getJson(url) {
|
|
107
107
|
const response = await fetch(url, {
|
|
108
108
|
headers: {
|
|
109
|
-
Accept:
|
|
109
|
+
Accept: 'application/json',
|
|
110
110
|
},
|
|
111
111
|
});
|
|
112
112
|
if (!response.ok) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as bitcoin from
|
|
2
|
-
import { Inscription } from
|
|
1
|
+
import * as bitcoin from 'bitcoinjs-lib';
|
|
2
|
+
import { Inscription } from '../inscription';
|
|
3
3
|
export interface CommitTxData {
|
|
4
4
|
scriptTaproot: bitcoin.payments.Payment;
|
|
5
5
|
tapLeafScript: {
|
package/dist/ordinals/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as bitcoin from
|
|
2
|
-
import { RemoteSigner } from
|
|
3
|
-
import { Inscription } from
|
|
1
|
+
import * as bitcoin from 'bitcoinjs-lib';
|
|
2
|
+
import { RemoteSigner } from './signer';
|
|
3
|
+
import { Inscription } from '../inscription';
|
|
4
4
|
export { RemoteSigner };
|
|
5
5
|
export declare function inscribeData(signer: RemoteSigner, toAddress: string, feeRate: number, inscription: Inscription, postage?: number): Promise<bitcoin.Transaction>;
|
package/dist/ordinals/index.js
CHANGED
|
@@ -51,7 +51,7 @@ function estimateTxSize(network, publicKey, commitTxData, toAddress, amount) {
|
|
|
51
51
|
}
|
|
52
52
|
async function inscribeData(signer, toAddress, feeRate, inscription, postage = 10000) {
|
|
53
53
|
const bitcoinNetwork = await signer.getNetwork();
|
|
54
|
-
const publicKey = Buffer.from(await signer.getPublicKey(),
|
|
54
|
+
const publicKey = Buffer.from(await signer.getPublicKey(), 'hex');
|
|
55
55
|
const commitTxData = (0, commit_1.createCommitTxData)(bitcoinNetwork, publicKey, inscription);
|
|
56
56
|
const revealTxSize = estimateTxSize(bitcoinNetwork, publicKey, commitTxData, toAddress, postage);
|
|
57
57
|
const revealFee = revealTxSize * feeRate;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as bitcoin from
|
|
2
|
-
import { RemoteSigner } from
|
|
3
|
-
import { CommitTxData } from
|
|
1
|
+
import * as bitcoin from 'bitcoinjs-lib';
|
|
2
|
+
import { RemoteSigner } from './signer';
|
|
3
|
+
import { CommitTxData } from './commit';
|
|
4
4
|
export interface CommitTxResult {
|
|
5
5
|
tx: bitcoin.Transaction;
|
|
6
6
|
outputIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wCA4BC;
|
|
1
|
+
{"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wCA4BC;AAiBD,oCAQC;AAtED,uDAAyC;AACzC,4EAA8D;AAK9D,MAAM,EAAE,2BAA2B,EAAE,GAAG,SAAS,CAAC;AAWlD,SAAgB,cAAc,CAC1B,OAAwB,EACxB,YAA0B,EAC1B,cAA8B,EAC9B,SAAiB,EACjB,MAAc;IAEd,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEtD,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ,CAAC;QACV,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAC/B,KAAK,EAAE,cAAc,CAAC,WAAW;QACjC,WAAW,EAAE;YACT,KAAK,EAAE,cAAc,CAAC,YAAY;YAClC,MAAM,EAAE,aAAa,CAAC,MAAO;SAChC;QACD,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC5C,aAAa,EAAE,CAAC,aAAa,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC;QACX,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,MAAM,eAAe,GAAG,CAAC,YAA0B,EAAE,EAAE;IAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAGvC,OAAO,CAAC,UAAkB,EAAE,KAAU,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;aACrD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;aAC5B,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAExC,OAAO;YACH,kBAAkB,EAAE,2BAA2B,CAAC,OAAO,CAAC;SAC3D,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B;AAEK,KAAK,UAAU,YAAY,CAAC,MAAoB,EAAE,YAA0B,EAAE,IAAkB;IAEnG,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAGvC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAA,uBAAe,EAAC,YAAY,CAAC,CAAC,CAAC;IAErD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC"}
|
package/dist/relay.d.ts
CHANGED
package/dist/relay.js
CHANGED
|
@@ -13,12 +13,11 @@ async function getBitcoinTxInfo(esploraClient, txId, forWitness) {
|
|
|
13
13
|
const locktimeBuffer = Buffer.allocUnsafe(4);
|
|
14
14
|
locktimeBuffer.writeInt32LE(tx.locktime);
|
|
15
15
|
return {
|
|
16
|
-
version: versionBuffer.toString(
|
|
17
|
-
inputVector: (0, utils_1.encodeRawInput)(tx).toString(
|
|
18
|
-
outputVector: (0, utils_1.encodeRawOutput)(tx).toString(
|
|
19
|
-
locktime: locktimeBuffer.toString(
|
|
20
|
-
witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString(
|
|
21
|
-
witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString("hex") : undefined,
|
|
16
|
+
version: versionBuffer.toString('hex'),
|
|
17
|
+
inputVector: (0, utils_1.encodeRawInput)(tx).toString('hex'),
|
|
18
|
+
outputVector: (0, utils_1.encodeRawOutput)(tx).toString('hex'),
|
|
19
|
+
locktime: locktimeBuffer.toString('hex'),
|
|
20
|
+
witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString('hex') : undefined,
|
|
22
21
|
};
|
|
23
22
|
}
|
|
24
23
|
async function getBitcoinTxProof(esploraClient, txId, txProofDifficultyFactor) {
|
package/dist/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;AAqDA,4CAqBC;AAmCD,8CAaC;AA0BD,8CAiBC;AAlKD,iDAA4C;AAQ5C,mCAA4E;AA0CrE,KAAK,UAAU,gBAAgB,CAClC,aAA4B,EAC5B,IAAY,EACZ,UAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,2BAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7C,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO;QACH,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,WAAW,EAAE,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/C,YAAY,EAAE,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjD,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC;AACN,CAAC;AAmCM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,IAAY,EACZ,uBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAEhH,OAAO;QACH,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,cAAc,EAAE,WAAW,CAAC,GAAG;QAC/B,cAAc,EAAE,cAAc;KACjC,CAAC;AACN,CAAC;AA0BM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CACzC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -8,42 +8,42 @@ const yargs_1 = __importDefault(require("yargs"));
|
|
|
8
8
|
const helpers_1 = require("yargs/helpers");
|
|
9
9
|
const node_child_process_1 = require("node:child_process");
|
|
10
10
|
const args = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
11
|
-
.option(
|
|
12
|
-
description:
|
|
11
|
+
.option('init-height', {
|
|
12
|
+
description: 'Height of the bitcoin chain to initialize the relay at',
|
|
13
13
|
demandOption: true,
|
|
14
14
|
})
|
|
15
|
-
.option(
|
|
16
|
-
description:
|
|
17
|
-
type:
|
|
15
|
+
.option('private-key', {
|
|
16
|
+
description: 'Private key to submit with',
|
|
17
|
+
type: 'string',
|
|
18
18
|
})
|
|
19
|
-
.option(
|
|
20
|
-
description:
|
|
21
|
-
type:
|
|
19
|
+
.option('dev', {
|
|
20
|
+
description: 'Deploy the contracts locally',
|
|
21
|
+
type: 'boolean',
|
|
22
22
|
})
|
|
23
|
-
.option(
|
|
24
|
-
description:
|
|
25
|
-
type:
|
|
23
|
+
.option('testnet', {
|
|
24
|
+
description: 'Use the testnet relay contract which can override the difficulty',
|
|
25
|
+
type: 'boolean',
|
|
26
26
|
})
|
|
27
|
-
.option(
|
|
28
|
-
description:
|
|
29
|
-
type:
|
|
27
|
+
.option('proof-length', {
|
|
28
|
+
description: 'The default proof length for retargets',
|
|
29
|
+
type: 'number',
|
|
30
30
|
default: 1,
|
|
31
31
|
})
|
|
32
|
-
.option(
|
|
33
|
-
description:
|
|
34
|
-
type:
|
|
32
|
+
.option('network', {
|
|
33
|
+
description: 'Bitcoin network to use',
|
|
34
|
+
type: 'string',
|
|
35
35
|
demandOption: true,
|
|
36
36
|
})
|
|
37
|
-
.option(
|
|
38
|
-
description:
|
|
39
|
-
type:
|
|
37
|
+
.option('rpc-url', {
|
|
38
|
+
description: 'ETH RPC URL',
|
|
39
|
+
type: 'string',
|
|
40
40
|
})
|
|
41
|
-
.option(
|
|
42
|
-
description:
|
|
43
|
-
type:
|
|
41
|
+
.option('verifier-url', {
|
|
42
|
+
description: 'Verifier URL',
|
|
43
|
+
type: 'string',
|
|
44
44
|
}).argv;
|
|
45
45
|
main().catch((err) => {
|
|
46
|
-
console.log(
|
|
46
|
+
console.log('Error thrown by script:');
|
|
47
47
|
console.log(err);
|
|
48
48
|
process.exit(1);
|
|
49
49
|
});
|
|
@@ -53,62 +53,62 @@ function range(size, startAt = 0) {
|
|
|
53
53
|
async function getRetargetHeaders(esploraClient, nextRetargetHeight, proofLength) {
|
|
54
54
|
const beforeRetarget = await Promise.all(range(proofLength, nextRetargetHeight - proofLength).map((height) => esploraClient.getBlockHeaderAt(height)));
|
|
55
55
|
const afterRetarget = await Promise.all(range(proofLength, nextRetargetHeight).map((height) => esploraClient.getBlockHeaderAt(height)));
|
|
56
|
-
return beforeRetarget.concat(afterRetarget).join(
|
|
56
|
+
return beforeRetarget.concat(afterRetarget).join('');
|
|
57
57
|
}
|
|
58
58
|
async function main() {
|
|
59
|
-
const esploraClient = new esplora_1.EsploraClient(args[
|
|
60
|
-
let initHeight = args[
|
|
61
|
-
if (initHeight ==
|
|
59
|
+
const esploraClient = new esplora_1.EsploraClient(args['network']);
|
|
60
|
+
let initHeight = args['init-height'];
|
|
61
|
+
if (initHeight == 'latest') {
|
|
62
62
|
const currentHeight = await esploraClient.getLatestHeight();
|
|
63
63
|
initHeight = currentHeight - (currentHeight % 2016) - 2016;
|
|
64
64
|
console.log(`Using block ${initHeight}`);
|
|
65
65
|
}
|
|
66
66
|
if (initHeight % 2016 != 0) {
|
|
67
|
-
throw new Error(
|
|
67
|
+
throw new Error('Invalid genesis height: must be multiple of 2016');
|
|
68
68
|
}
|
|
69
69
|
const genesis = await esploraClient.getBlockHeaderAt(initHeight);
|
|
70
|
-
const proofLength = args[
|
|
70
|
+
const proofLength = args['proof-length'];
|
|
71
71
|
const nextRetargetHeight = initHeight + 2016;
|
|
72
72
|
console.log(`Next retarget height: ${nextRetargetHeight}`);
|
|
73
73
|
const retargetHeaders = await getRetargetHeaders(esploraClient, nextRetargetHeight, proofLength);
|
|
74
74
|
let rpcUrl;
|
|
75
75
|
let verifyOpts;
|
|
76
|
-
if (args[
|
|
77
|
-
rpcUrl =
|
|
76
|
+
if (args['dev']) {
|
|
77
|
+
rpcUrl = 'http://localhost:8545';
|
|
78
78
|
}
|
|
79
|
-
else if (args[
|
|
80
|
-
rpcUrl =
|
|
79
|
+
else if (args['rpc-url'] == 'testnet') {
|
|
80
|
+
rpcUrl = 'https://bob-sepolia.rpc.gobob.xyz/';
|
|
81
81
|
verifyOpts = "--verify --verifier blockscout --verifier-url 'https://bob-sepolia.explorer.gobob.xyz/api'";
|
|
82
82
|
}
|
|
83
|
-
else if (args[
|
|
84
|
-
rpcUrl =
|
|
83
|
+
else if (args['rpc-url'] == 'mainnet') {
|
|
84
|
+
rpcUrl = 'https://rpc.gobob.xyz/';
|
|
85
85
|
verifyOpts = "--verify --verifier blockscout --verifier-url 'https://explorer.gobob.xyz/api'";
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
|
-
rpcUrl = args[
|
|
89
|
-
verifyOpts = `--verify --verifier blockscout --verifier-url ${args[
|
|
88
|
+
rpcUrl = args['rpc-url'];
|
|
89
|
+
verifyOpts = `--verify --verifier blockscout --verifier-url ${args['verifier-url']}`;
|
|
90
90
|
}
|
|
91
91
|
let privateKey;
|
|
92
|
-
if (args[
|
|
93
|
-
privateKey = args[
|
|
92
|
+
if (args['private-key']) {
|
|
93
|
+
privateKey = args['private-key'];
|
|
94
94
|
}
|
|
95
|
-
else if (args[
|
|
96
|
-
privateKey =
|
|
95
|
+
else if (args['dev']) {
|
|
96
|
+
privateKey = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
|
|
97
97
|
}
|
|
98
98
|
else {
|
|
99
|
-
throw new Error(
|
|
99
|
+
throw new Error('No private key');
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
const env = [
|
|
102
102
|
`GENESIS_PROOF_LENGTH=${proofLength}`,
|
|
103
103
|
`GENESIS_HEIGHT=${initHeight}`,
|
|
104
104
|
`GENESIS_HEADER=${genesis}`,
|
|
105
105
|
`RETARGET_HEADERS=${retargetHeaders}`,
|
|
106
106
|
`PRIVATE_KEY=${privateKey}`,
|
|
107
107
|
];
|
|
108
|
-
if (args[
|
|
109
|
-
env.push(
|
|
108
|
+
if (args['testnet']) {
|
|
109
|
+
env.push('TESTNET=true');
|
|
110
110
|
}
|
|
111
|
-
(0, node_child_process_1.exec)(`${env.join(
|
|
111
|
+
(0, node_child_process_1.exec)(`${env.join(' ')} forge script ../script/RelayGenesis.s.sol:RelayGenesisScript --rpc-url '${rpcUrl}' ${verifyOpts} --broadcast --priority-gas-price 1`, { maxBuffer: 1024 * 5000 }, (err, stdout, stderr) => {
|
|
112
112
|
if (err) {
|
|
113
113
|
throw new Error(`Failed to run command: ${err}`);
|
|
114
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-genesis.js","sourceRoot":"","sources":["../../src/scripts/relay-genesis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"relay-genesis.js","sourceRoot":"","sources":["../../src/scripts/relay-genesis.ts"],"names":[],"mappings":"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"}
|