mainnet-js 1.1.18 → 1.1.20

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/index.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <title>The Empty Mainnet App</title>
6
- <meta name="viewport" content="width=device-width, initial-scale=1"><script defer src="mainnet-1.1.18.js"></script></head>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1"><script defer src="mainnet-1.1.20.js"></script></head>
7
7
  <body><script>document.addEventListener("DOMContentLoaded", async (event) => Object.assign(globalThis, await __mainnetPromise))</script>
8
8
  </body>
9
9
  </html>
@@ -1124,7 +1124,7 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
1124
1124
  \************************************************/
1125
1125
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1126
1126
 
1127
- eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ElectrumNetworkProvider)\n/* harmony export */ });\n/* harmony import */ var electrum_cash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electrum-cash */ \"../../node_modules/electrum-cash/dist/index.mjs.js\");\n/* harmony import */ var _interface_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _util_delay_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/delay.js */ \"./src/util/delay.ts\");\n/* harmony import */ var async_mutex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! async-mutex */ \"../../node_modules/async-mutex/index.mjs\");\n/* harmony import */ var _util_transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/transaction.js */ \"./src/util/transaction.ts\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant.js */ \"./src/network/constant.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__]);\n_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\n\n\nclass ElectrumNetworkProvider {\n constructor(electrum, network = _interface_js__WEBPACK_IMPORTED_MODULE_2__.Network.MAINNET, manualConnectionManagement) {\n this.network = network;\n this.manualConnectionManagement = manualConnectionManagement;\n this.subscriptions = 0;\n this.mutex = new async_mutex__WEBPACK_IMPORTED_MODULE_1__.Mutex();\n this.blockHeight = 0;\n if (electrum) {\n this.electrum = electrum;\n this.connectPromise = this.getConnectPromise();\n if (this.electrum instanceof electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ElectrumCluster) {\n this.version = this.electrum.version;\n }\n else {\n this.version = this.electrum.connection.version;\n }\n }\n else {\n throw new Error(`A electrum-cash cluster or client is required.`);\n }\n }\n async getConnectPromise(_timeout = 3000) {\n // connects to the electrum cash and waits until the connection is ready to accept requests\n let timeoutHandle;\n await Promise.race([\n new Promise(async (resolve) => {\n this.connectPromise = undefined;\n if (this.electrum instanceof electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ElectrumCluster) {\n try {\n await this.connectCluster();\n }\n catch (e) {\n console.warn(`Unable to connect to one or more electrum-cash hosts: ${JSON.stringify(e)}`);\n }\n resolve(await this.readyCluster());\n }\n else {\n resolve(await this.connectClient());\n }\n }),\n // new Promise(\n // (_resolve, reject) =>\n // (timeoutHandle = setTimeout(() => {\n // reject(\n // new Error(`Timeout connecting to electrum network: ${this.network}`)\n // );\n // }, _timeout))\n // ),\n ]);\n clearTimeout(timeoutHandle);\n }\n async getUtxos(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.listunspent\", cashaddr));\n return result.map((utxo) => ({\n txid: utxo.tx_hash,\n vout: utxo.tx_pos,\n satoshis: utxo.value,\n height: utxo.height,\n token: utxo.token_data\n ? {\n amount: Number(utxo.token_data.amount),\n tokenId: utxo.token_data.category,\n capability: utxo.token_data.nft?.capability,\n commitment: utxo.token_data.nft?.commitment,\n }\n : undefined,\n }));\n }\n async getBalance(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.get_balance\", cashaddr));\n return result.confirmed + result.unconfirmed;\n }\n async getBlockHeight() {\n if (this.version !== _constant_js__WEBPACK_IMPORTED_MODULE_3__.ELECTRUM_CASH_PROTOCOL_VERSION_MAINNET) {\n return (await this.performRequest(\"blockchain.headers.get_tip\"))\n .height;\n }\n // TODO: remove after enough elecrum servers upgrade to at least v 1.5.0\n if (!this.blockHeight) {\n return new Promise(async (resolve) => {\n await this.subscribeToHeaders((header) => {\n this.blockHeight = header.height;\n });\n resolve(this.blockHeight);\n });\n }\n return this.blockHeight;\n }\n async getRawTransaction(txHash, verbose = false, loadInputValues = false) {\n const key = `${this.network}-${txHash}-${verbose}-${loadInputValues}`;\n if (ElectrumNetworkProvider.rawTransactionCache[key]) {\n return ElectrumNetworkProvider.rawTransactionCache[key];\n }\n try {\n const transaction = (await this.performRequest(\"blockchain.transaction.get\", txHash, verbose));\n ElectrumNetworkProvider.rawTransactionCache[key] = transaction;\n if (verbose && loadInputValues) {\n // get unique transaction hashes\n const hashes = [...new Set(transaction.vin.map((val) => val.txid))];\n const transactions = await Promise.all(hashes.map((hash) => this.getRawTransactionObject(hash, false)));\n const transactionMap = new Map();\n transactions.forEach((val) => transactionMap.set(val.hash, val));\n transaction.vin.forEach((input) => {\n const output = transactionMap\n .get(input.txid)\n .vout.find((val) => val.n === input.vout);\n input.address = output.scriptPubKey.addresses[0];\n input.value = output.value;\n input.tokenData = output.tokenData;\n });\n }\n return transaction;\n }\n catch (error) {\n if (error.message.indexOf(\"No such mempool or blockchain transaction.\") > -1)\n throw Error(`Could not decode transaction ${txHash}. It might not exist on the current blockchain (${this.network}).`);\n else\n throw error;\n }\n }\n // gets the decoded transaction in human readable form\n async getRawTransactionObject(txHash, loadInputValues = false) {\n return (await this.getRawTransaction(txHash, true, loadInputValues));\n }\n async sendRawTransaction(txHex, awaitPropagation = true) {\n return new Promise(async (resolve, reject) => {\n let txHash = await (0,_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__.getTransactionHash)(txHex);\n if (!awaitPropagation) {\n this.performRequest(\"blockchain.transaction.broadcast\", txHex);\n resolve(txHash);\n }\n else {\n const waitForTransactionCallback = async (data) => {\n if (data && data[0] === txHash) {\n this.unsubscribeFromTransaction(txHash, waitForTransactionCallback);\n resolve(txHash);\n }\n };\n this.subscribeToTransaction(txHash, waitForTransactionCallback);\n this.performRequest(\"blockchain.transaction.broadcast\", txHex).catch((error) => {\n this.unsubscribeFromTransaction(txHash, waitForTransactionCallback);\n reject(error);\n });\n }\n });\n }\n // Get transaction history of a given cashaddr\n async getHistory(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.get_history\", cashaddr));\n return result;\n }\n // Get the minimum fee a low-priority transaction must pay in order to be accepted to the daemon's memory pool.\n async getRelayFee() {\n const result = (await this.performRequest(\"blockchain.relayfee\"));\n return result;\n }\n watchAddressStatus(cashaddr, callback) {\n const watchAddressStatusCallback = async (data) => {\n // subscription acknowledgement is the latest known status or null if no status is known\n // status is an array: [ cashaddr, statusHash ]\n if (data instanceof Array) {\n const addr = data[0];\n if (addr !== cashaddr) {\n return;\n }\n const status = data[1];\n callback(status);\n }\n };\n this.subscribeToAddress(cashaddr, watchAddressStatusCallback);\n return async () => {\n await this.unsubscribeFromAddress(cashaddr, watchAddressStatusCallback);\n };\n }\n watchAddress(cashaddr, callback) {\n const historyMap = {};\n this.getHistory(cashaddr).then((history) => history.forEach((val) => (historyMap[val.tx_hash] = true)));\n const watchAddressStatusCallback = async () => {\n const newHistory = await this.getHistory(cashaddr);\n // sort history to put unconfirmed transactions in the beginning, then transactions in block height descenting order\n const txHashes = newHistory\n .sort((a, b) => a.height <= 0 || b.height <= 0 ? -1 : b.height - a.height)\n .map((val) => val.tx_hash);\n for (const hash of txHashes) {\n if (!(hash in historyMap)) {\n historyMap[hash] = true;\n callback(hash);\n // exit early to prevent further map lookups\n break;\n }\n }\n };\n return this.watchAddressStatus(cashaddr, watchAddressStatusCallback);\n }\n watchAddressTransactions(cashaddr, callback) {\n return this.watchAddress(cashaddr, async (txHash) => {\n const tx = await this.getRawTransactionObject(txHash);\n callback(tx);\n });\n }\n watchAddressTokenTransactions(cashaddr, callback) {\n return this.watchAddress(cashaddr, async (txHash) => {\n const tx = await this.getRawTransactionObject(txHash, true);\n if (tx.vin.some((val) => val.tokenData) ||\n tx.vout.some((val) => val.tokenData)) {\n callback(tx);\n }\n });\n }\n // Wait for the next block or a block at given blockchain height.\n watchBlocks(callback) {\n let acknowledged = false;\n const waitForBlockCallback = (_header) => {\n if (!acknowledged) {\n acknowledged = true;\n return;\n }\n _header = _header instanceof Array ? _header[0] : _header;\n callback(_header);\n };\n this.subscribeToHeaders(waitForBlockCallback);\n return async () => {\n this.unsubscribeFromHeaders(waitForBlockCallback);\n };\n }\n // Wait for the next block or a block at given blockchain height.\n async waitForBlock(height) {\n return new Promise(async (resolve) => {\n const cancelWatch = this.watchBlocks(async (header) => {\n if (height === undefined || header.height >= height) {\n await cancelWatch();\n resolve(header);\n }\n });\n });\n }\n // subscribe to notifications sent when new block is found, the block header is sent to callback\n async subscribeToHeaders(callback) {\n await this.subscribeRequest(\"blockchain.headers.subscribe\", callback);\n }\n // unsubscribe to notifications sent when new block is found\n async unsubscribeFromHeaders(callback) {\n await this.unsubscribeRequest(\"blockchain.headers.subscribe\", callback);\n }\n async subscribeToAddress(cashaddr, callback) {\n await this.subscribeRequest(\"blockchain.address.subscribe\", callback, cashaddr);\n }\n async unsubscribeFromAddress(cashaddr, callback) {\n await this.unsubscribeRequest(\"blockchain.address.subscribe\", callback, cashaddr);\n }\n async subscribeToAddressTransactions(cashaddr, callback) {\n await this.subscribeRequest(\"blockchain.address.transactions.subscribe\", callback, cashaddr);\n }\n async unsubscribeFromAddressTransactions(cashaddr, callback) {\n await this.unsubscribeRequest(\"blockchain.address.transactions.subscribe\", callback, cashaddr);\n }\n async subscribeToTransaction(txHash, callback) {\n await this.subscribeRequest(\"blockchain.transaction.subscribe\", callback, txHash);\n }\n async unsubscribeFromTransaction(txHash, callback) {\n await this.unsubscribeRequest(\"blockchain.transaction.subscribe\", callback, txHash);\n }\n async performRequest(name, ...parameters) {\n await this.ready();\n const requestTimeout = new Promise(function (_resolve, reject) {\n setTimeout(function () {\n reject(\"electrum-cash request timed out, retrying\");\n }, 30000);\n }).catch(function (e) {\n throw e;\n });\n const request = this.electrum.request(name, ...parameters);\n return await Promise.race([request, requestTimeout])\n .then((value) => {\n if (value instanceof Error)\n throw value;\n let result = value;\n return result;\n })\n .catch(async () => {\n // console.warn(\n // \"initial electrum-cash request attempt timed out, retrying...\"\n // );\n return await Promise.race([request, requestTimeout])\n .then((value) => {\n if (value instanceof Error)\n throw value;\n let result = value;\n return result;\n })\n .catch(function (e) {\n throw e;\n });\n });\n }\n async subscribeRequest(methodName, callback, ...parameters) {\n await this.ready();\n const result = await this.electrum.subscribe(callback, methodName, ...parameters);\n this.subscriptions++;\n return result;\n }\n async unsubscribeRequest(methodName, callback, ...parameters) {\n await this.ready();\n const result = this.electrum.unsubscribe(callback, methodName, ...parameters);\n this.subscriptions--;\n return result;\n }\n async ready() {\n return (await this.connect());\n }\n async connect() {\n return await this.mutex.runExclusive(async () => {\n return await this.connectPromise;\n });\n }\n disconnect() {\n if (this.subscriptions > 0) {\n // console.warn(\n // `Trying to disconnect a network provider with ${this.subscriptions} active subscriptions. This is in most cases a bad idea.`\n // );\n }\n return this.isElectrumClient()\n ? this.disconnectClient()\n : this.disconnectCluster();\n }\n isElectrumClient() {\n return this.electrum.hasOwnProperty(\"connection\");\n }\n async readyClient(timeout) {\n timeout = typeof timeout !== \"undefined\" ? timeout : 3000;\n let connectPromise = async () => {\n while (this.electrum.connection.status !==\n electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ConnectionStatus.CONNECTED) {\n await (0,_util_delay_js__WEBPACK_IMPORTED_MODULE_5__.delay)(100);\n }\n return true;\n };\n return connectPromise;\n }\n async readyCluster(timeout) {\n timeout;\n return this.electrum.ready();\n }\n async connectCluster() {\n return this.electrum.startup();\n }\n async connectClient() {\n let connectionPromise = async () => {\n try {\n return await this.electrum.connect();\n }\n catch (e) {\n console.warn(`Warning: Failed to connect to client on ${this.network} at ${this.electrum.connection.host}.`, e);\n return;\n }\n };\n return [await connectionPromise()];\n }\n async disconnectCluster() {\n return this.electrum.shutdown();\n }\n async disconnectClient() {\n return [await this.electrum.disconnect(true)];\n }\n}\nElectrumNetworkProvider.rawTransactionCache = {};\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/network/ElectrumNetworkProvider.ts?");
1127
+ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ElectrumNetworkProvider)\n/* harmony export */ });\n/* harmony import */ var electrum_cash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electrum-cash */ \"../../node_modules/electrum-cash/dist/index.mjs.js\");\n/* harmony import */ var _interface_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _util_delay_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/delay.js */ \"./src/util/delay.ts\");\n/* harmony import */ var async_mutex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! async-mutex */ \"../../node_modules/async-mutex/index.mjs\");\n/* harmony import */ var _util_transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/transaction.js */ \"./src/util/transaction.ts\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant.js */ \"./src/network/constant.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__]);\n_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\n\n\nclass ElectrumNetworkProvider {\n constructor(electrum, network = _interface_js__WEBPACK_IMPORTED_MODULE_2__.Network.MAINNET, manualConnectionManagement) {\n this.network = network;\n this.manualConnectionManagement = manualConnectionManagement;\n this.subscriptions = 0;\n this.mutex = new async_mutex__WEBPACK_IMPORTED_MODULE_1__.Mutex();\n this.blockHeight = 0;\n if (electrum) {\n this.electrum = electrum;\n this.connectPromise = this.getConnectPromise();\n if (this.electrum instanceof electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ElectrumCluster) {\n this.version = this.electrum.version;\n }\n else {\n this.version = this.electrum.connection.version;\n }\n }\n else {\n throw new Error(`A electrum-cash cluster or client is required.`);\n }\n }\n async getConnectPromise(_timeout = 3000) {\n // connects to the electrum cash and waits until the connection is ready to accept requests\n let timeoutHandle;\n await Promise.race([\n new Promise(async (resolve) => {\n this.connectPromise = undefined;\n if (this.electrum instanceof electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ElectrumCluster) {\n try {\n await this.connectCluster();\n }\n catch (e) {\n console.warn(`Unable to connect to one or more electrum-cash hosts: ${JSON.stringify(e)}`);\n }\n resolve(await this.readyCluster());\n }\n else {\n resolve(await this.connectClient());\n }\n }),\n // new Promise(\n // (_resolve, reject) =>\n // (timeoutHandle = setTimeout(() => {\n // reject(\n // new Error(`Timeout connecting to electrum network: ${this.network}`)\n // );\n // }, _timeout))\n // ),\n ]);\n clearTimeout(timeoutHandle);\n }\n async getUtxos(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.listunspent\", cashaddr, \"include_tokens\"));\n return result.map((utxo) => ({\n txid: utxo.tx_hash,\n vout: utxo.tx_pos,\n satoshis: utxo.value,\n height: utxo.height,\n token: utxo.token_data\n ? {\n amount: Number(utxo.token_data.amount),\n tokenId: utxo.token_data.category,\n capability: utxo.token_data.nft?.capability,\n commitment: utxo.token_data.nft?.commitment,\n }\n : undefined,\n }));\n }\n async getBalance(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.get_balance\", cashaddr));\n return result.confirmed + result.unconfirmed;\n }\n async getBlockHeight() {\n if (this.version !== _constant_js__WEBPACK_IMPORTED_MODULE_3__.ELECTRUM_CASH_PROTOCOL_VERSION_MAINNET) {\n return (await this.performRequest(\"blockchain.headers.get_tip\"))\n .height;\n }\n // TODO: remove after enough elecrum servers upgrade to at least v 1.5.0\n if (!this.blockHeight) {\n return new Promise(async (resolve) => {\n await this.subscribeToHeaders((header) => {\n this.blockHeight = header.height;\n });\n resolve(this.blockHeight);\n });\n }\n return this.blockHeight;\n }\n async getRawTransaction(txHash, verbose = false, loadInputValues = false) {\n const key = `${this.network}-${txHash}-${verbose}-${loadInputValues}`;\n if (ElectrumNetworkProvider.rawTransactionCache[key]) {\n return ElectrumNetworkProvider.rawTransactionCache[key];\n }\n try {\n const transaction = (await this.performRequest(\"blockchain.transaction.get\", txHash, verbose));\n ElectrumNetworkProvider.rawTransactionCache[key] = transaction;\n if (verbose && loadInputValues) {\n // get unique transaction hashes\n const hashes = [...new Set(transaction.vin.map((val) => val.txid))];\n const transactions = await Promise.all(hashes.map((hash) => this.getRawTransactionObject(hash, false)));\n const transactionMap = new Map();\n transactions.forEach((val) => transactionMap.set(val.hash, val));\n transaction.vin.forEach((input) => {\n const output = transactionMap\n .get(input.txid)\n .vout.find((val) => val.n === input.vout);\n input.address = output.scriptPubKey.addresses[0];\n input.value = output.value;\n input.tokenData = output.tokenData;\n });\n }\n return transaction;\n }\n catch (error) {\n if (error.message.indexOf(\"No such mempool or blockchain transaction.\") > -1)\n throw Error(`Could not decode transaction ${txHash}. It might not exist on the current blockchain (${this.network}).`);\n else\n throw error;\n }\n }\n // gets the decoded transaction in human readable form\n async getRawTransactionObject(txHash, loadInputValues = false) {\n return (await this.getRawTransaction(txHash, true, loadInputValues));\n }\n async sendRawTransaction(txHex, awaitPropagation = true) {\n return new Promise(async (resolve, reject) => {\n let txHash = await (0,_util_transaction_js__WEBPACK_IMPORTED_MODULE_4__.getTransactionHash)(txHex);\n if (!awaitPropagation) {\n this.performRequest(\"blockchain.transaction.broadcast\", txHex);\n resolve(txHash);\n }\n else {\n const waitForTransactionCallback = async (data) => {\n if (data && data[0] === txHash) {\n this.unsubscribeFromTransaction(txHash, waitForTransactionCallback);\n resolve(txHash);\n }\n };\n this.subscribeToTransaction(txHash, waitForTransactionCallback);\n this.performRequest(\"blockchain.transaction.broadcast\", txHex).catch((error) => {\n this.unsubscribeFromTransaction(txHash, waitForTransactionCallback);\n reject(error);\n });\n }\n });\n }\n // Get transaction history of a given cashaddr\n async getHistory(cashaddr) {\n const result = (await this.performRequest(\"blockchain.address.get_history\", cashaddr));\n return result;\n }\n // Get the minimum fee a low-priority transaction must pay in order to be accepted to the daemon's memory pool.\n async getRelayFee() {\n const result = (await this.performRequest(\"blockchain.relayfee\"));\n return result;\n }\n watchAddressStatus(cashaddr, callback) {\n const watchAddressStatusCallback = async (data) => {\n // subscription acknowledgement is the latest known status or null if no status is known\n // status is an array: [ cashaddr, statusHash ]\n if (data instanceof Array) {\n const addr = data[0];\n if (addr !== cashaddr) {\n return;\n }\n const status = data[1];\n callback(status);\n }\n };\n this.subscribeToAddress(cashaddr, watchAddressStatusCallback);\n return async () => {\n await this.unsubscribeFromAddress(cashaddr, watchAddressStatusCallback);\n };\n }\n watchAddress(cashaddr, callback) {\n const historyMap = {};\n this.getHistory(cashaddr).then((history) => history.forEach((val) => (historyMap[val.tx_hash] = true)));\n const watchAddressStatusCallback = async () => {\n const newHistory = await this.getHistory(cashaddr);\n // sort history to put unconfirmed transactions in the beginning, then transactions in block height descenting order\n const txHashes = newHistory\n .sort((a, b) => a.height <= 0 || b.height <= 0 ? -1 : b.height - a.height)\n .map((val) => val.tx_hash);\n for (const hash of txHashes) {\n if (!(hash in historyMap)) {\n historyMap[hash] = true;\n callback(hash);\n // exit early to prevent further map lookups\n break;\n }\n }\n };\n return this.watchAddressStatus(cashaddr, watchAddressStatusCallback);\n }\n watchAddressTransactions(cashaddr, callback) {\n return this.watchAddress(cashaddr, async (txHash) => {\n const tx = await this.getRawTransactionObject(txHash);\n callback(tx);\n });\n }\n watchAddressTokenTransactions(cashaddr, callback) {\n return this.watchAddress(cashaddr, async (txHash) => {\n const tx = await this.getRawTransactionObject(txHash, true);\n if (tx.vin.some((val) => val.tokenData) ||\n tx.vout.some((val) => val.tokenData)) {\n callback(tx);\n }\n });\n }\n // Wait for the next block or a block at given blockchain height.\n watchBlocks(callback) {\n let acknowledged = false;\n const waitForBlockCallback = (_header) => {\n if (!acknowledged) {\n acknowledged = true;\n return;\n }\n _header = _header instanceof Array ? _header[0] : _header;\n callback(_header);\n };\n this.subscribeToHeaders(waitForBlockCallback);\n return async () => {\n this.unsubscribeFromHeaders(waitForBlockCallback);\n };\n }\n // Wait for the next block or a block at given blockchain height.\n async waitForBlock(height) {\n return new Promise(async (resolve) => {\n const cancelWatch = this.watchBlocks(async (header) => {\n if (height === undefined || header.height >= height) {\n await cancelWatch();\n resolve(header);\n }\n });\n });\n }\n // subscribe to notifications sent when new block is found, the block header is sent to callback\n async subscribeToHeaders(callback) {\n await this.subscribeRequest(\"blockchain.headers.subscribe\", callback);\n }\n // unsubscribe to notifications sent when new block is found\n async unsubscribeFromHeaders(callback) {\n await this.unsubscribeRequest(\"blockchain.headers.subscribe\", callback);\n }\n async subscribeToAddress(cashaddr, callback) {\n await this.subscribeRequest(\"blockchain.address.subscribe\", callback, cashaddr);\n }\n async unsubscribeFromAddress(cashaddr, callback) {\n await this.unsubscribeRequest(\"blockchain.address.subscribe\", callback, cashaddr);\n }\n async subscribeToAddressTransactions(cashaddr, callback) {\n await this.subscribeRequest(\"blockchain.address.transactions.subscribe\", callback, cashaddr);\n }\n async unsubscribeFromAddressTransactions(cashaddr, callback) {\n await this.unsubscribeRequest(\"blockchain.address.transactions.subscribe\", callback, cashaddr);\n }\n async subscribeToTransaction(txHash, callback) {\n await this.subscribeRequest(\"blockchain.transaction.subscribe\", callback, txHash);\n }\n async unsubscribeFromTransaction(txHash, callback) {\n await this.unsubscribeRequest(\"blockchain.transaction.subscribe\", callback, txHash);\n }\n async performRequest(name, ...parameters) {\n await this.ready();\n const requestTimeout = new Promise(function (_resolve, reject) {\n setTimeout(function () {\n reject(\"electrum-cash request timed out, retrying\");\n }, 30000);\n }).catch(function (e) {\n throw e;\n });\n const request = this.electrum.request(name, ...parameters);\n return await Promise.race([request, requestTimeout])\n .then((value) => {\n if (value instanceof Error)\n throw value;\n let result = value;\n return result;\n })\n .catch(async () => {\n // console.warn(\n // \"initial electrum-cash request attempt timed out, retrying...\"\n // );\n return await Promise.race([request, requestTimeout])\n .then((value) => {\n if (value instanceof Error)\n throw value;\n let result = value;\n return result;\n })\n .catch(function (e) {\n throw e;\n });\n });\n }\n async subscribeRequest(methodName, callback, ...parameters) {\n await this.ready();\n const result = await this.electrum.subscribe(callback, methodName, ...parameters);\n this.subscriptions++;\n return result;\n }\n async unsubscribeRequest(methodName, callback, ...parameters) {\n await this.ready();\n const result = this.electrum.unsubscribe(callback, methodName, ...parameters);\n this.subscriptions--;\n return result;\n }\n async ready() {\n return (await this.connect());\n }\n async connect() {\n return await this.mutex.runExclusive(async () => {\n return await this.connectPromise;\n });\n }\n disconnect() {\n if (this.subscriptions > 0) {\n // console.warn(\n // `Trying to disconnect a network provider with ${this.subscriptions} active subscriptions. This is in most cases a bad idea.`\n // );\n }\n return this.isElectrumClient()\n ? this.disconnectClient()\n : this.disconnectCluster();\n }\n isElectrumClient() {\n return this.electrum.hasOwnProperty(\"connection\");\n }\n async readyClient(timeout) {\n timeout = typeof timeout !== \"undefined\" ? timeout : 3000;\n let connectPromise = async () => {\n while (this.electrum.connection.status !==\n electrum_cash__WEBPACK_IMPORTED_MODULE_0__.ConnectionStatus.CONNECTED) {\n await (0,_util_delay_js__WEBPACK_IMPORTED_MODULE_5__.delay)(100);\n }\n return true;\n };\n return connectPromise;\n }\n async readyCluster(timeout) {\n timeout;\n return this.electrum.ready();\n }\n async connectCluster() {\n return this.electrum.startup();\n }\n async connectClient() {\n let connectionPromise = async () => {\n try {\n return await this.electrum.connect();\n }\n catch (e) {\n console.warn(`Warning: Failed to connect to client on ${this.network} at ${this.electrum.connection.host}.`, e);\n return;\n }\n };\n return [await connectionPromise()];\n }\n async disconnectCluster() {\n return this.electrum.shutdown();\n }\n async disconnectClient() {\n return [await this.electrum.disconnect(true)];\n }\n}\nElectrumNetworkProvider.rawTransactionCache = {};\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/network/ElectrumNetworkProvider.ts?");
1128
1128
 
1129
1129
  /***/ }),
1130
1130
 
@@ -1634,7 +1634,7 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
1634
1634
  \****************************/
1635
1635
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1636
1636
 
1637
- eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BCMR\": () => (/* binding */ BCMR)\n/* harmony export */ });\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/hex.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/crypto/default-crypto-instances.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/utf8.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/number.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/message/transaction-encoding.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"../../node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _interface_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../network/Connection.js */ \"./src/network/Connection.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__]);\n([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n// Implementation of CHIP-BCMR v1.0.0, refer to https://github.com/bitjson/chip-bcmr\nclass BCMR {\n static getRegistries() {\n return this.metadataRegistries;\n }\n static resetRegistries() {\n this.metadataRegistries = [];\n }\n /**\n * fetchMetadataRegistry Fetch the BCMR registry JSON file from a remote URI, optionally verifying its content hash\n *\n * @param {string} uri URI of the registry to fetch from\n * @param {string?} contentHash SHA256 hash of the resource the `uri` parameter points at.\n * If specified, calculates the hash of the data fetched from `uri` and matches it with provided one.\n * Yields an error upon mismatch.\n *\n * @returns {Registry} resolved registry\n */\n static async fetchMetadataRegistry(uri, contentHash) {\n if (uri.indexOf(\"https://\") < 0) {\n uri = `https://${uri}`;\n }\n // content hashes HTTPS Publication Outputs per spec\n if (contentHash) {\n // request as text and verify hash\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(uri, {\n responseType: \"text\",\n transformResponse: (val) => {\n return val;\n },\n });\n const hash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash((0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.utf8ToBin)(response.data)));\n if (contentHash != hash) {\n throw new Error(`Content hash mismatch for URI: ${uri}\\nreceived: ${hash}\\nrequired: ${contentHash}`);\n }\n return JSON.parse(response.data);\n }\n // request as JSON\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(uri);\n return response.data;\n }\n /**\n * addMetadataRegistry Add the metadata registry to the list of tracked registries\n *\n * @param {Registry} registry Registry object per schema specification, see https://raw.githubusercontent.com/bitjson/chip-bcmr/master/bcmr-v1.schema.json\n *\n */\n static addMetadataRegistry(registry) {\n if (this.metadataRegistries.some((val) => JSON.stringify(val) === JSON.stringify(registry))) {\n return;\n }\n this.metadataRegistries.push(registry);\n }\n /**\n * addMetadataRegistryFromUri Add the metadata registry by fetching a JSON file from a remote URI, optionally verifying its content hash\n *\n * @param {string} uri URI of the registry to fetch from\n * @param {string?} contentHash SHA256 hash of the resource the `uri` parameter points at.\n * If specified, calculates the hash of the data fetched from `uri` and matches it with provided one.\n * Yields an error upon mismatch.\n *\n */\n static async addMetadataRegistryFromUri(uri, contentHash) {\n const registry = await this.fetchMetadataRegistry(uri, contentHash);\n this.addMetadataRegistry(registry);\n }\n /**\n * buildAuthChain Build an authchain - Zeroth-Descendant Transaction Chain, refer to https://github.com/bitjson/chip-bcmr#zeroth-descendant-transaction-chains\n * The authchain in this implementation is specific to resolve to a valid metadata registry\n *\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {Network?} options.network (default=mainnet) network to query the data from\n * @param {boolean?} options.resolveBase (default=false) boolean flag to indicate that autchain building should resolve and verify elements back to base or be stopped at this exact chain element\n * @param {boolean?} options.followToHead (default=true) boolean flag to indicate that autchain building should progress to head or be stopped at this exact chain element\n * @param {ElectrumRawTransaction?} options.rawTx cached raw transaction obtained previously, spares a Fulcrum call\n * @param {TxI[]?} options.historyCache cached address history to be reused if authchain building proceeds with the same address, spares a flurry of Fulcrum calls\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async buildAuthChain(options) {\n if (options.network === undefined) {\n options.network = _interface_js__WEBPACK_IMPORTED_MODULE_4__.Network.MAINNET;\n }\n if (options.followToHead === undefined) {\n options.followToHead = true;\n }\n if (options.resolveBase === undefined) {\n options.resolveBase = false;\n }\n const provider = (await (0,_network_Connection_js__WEBPACK_IMPORTED_MODULE_5__.initProvider)(options.network));\n if (options.rawTx === undefined) {\n options.rawTx = await provider.getRawTransactionObject(options.transactionHash);\n }\n // figure out the autchain by moving towards authhead\n const getAuthChainChild = async () => {\n const history = options.historyCache ||\n (await provider.getHistory(options.rawTx.vout[0].scriptPubKey.addresses[0]));\n const thisTx = history.find((val) => val.tx_hash === options.transactionHash);\n let filteredHistory = history.filter((val) => val.height > 0\n ? val.height >= thisTx.height || val.height <= 0\n : val.height <= 0 && val.tx_hash !== thisTx.tx_hash);\n for (const historyTx of filteredHistory) {\n const historyRawTx = await provider.getRawTransactionObject(historyTx.tx_hash);\n const authChainVin = historyRawTx.vin.find((val) => val.txid === options.transactionHash && val.vout === 0);\n // if we've found continuation of authchain, we shall recurse into it\n if (authChainVin) {\n // reuse queried address history if the next element in chain is the same address\n const historyCache = options.rawTx.vout[0].scriptPubKey.addresses[0] ===\n historyRawTx.vout[0].scriptPubKey.addresses[0]\n ? filteredHistory\n : undefined;\n // combine the authchain element with the rest obtained\n return { rawTx: historyRawTx, historyCache };\n }\n }\n return undefined;\n };\n // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data\n // returns resolved AuthChainElement\n const makeAuthChainElement = (rawTx, hash) => {\n let opReturns;\n let spends0thOutput = false;\n if (rawTx.hasOwnProperty(\"vout\")) {\n const electrumTransaction = rawTx;\n opReturns = electrumTransaction.vout\n .filter((val) => val.scriptPubKey.type === \"nulldata\")\n .map((val) => val.scriptPubKey.hex);\n spends0thOutput = electrumTransaction.vin.some((val) => val.vout === 0);\n }\n else {\n const libauthTransaction = rawTx;\n opReturns = libauthTransaction.outputs\n .map((val) => (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(val.lockingBytecode))\n .filter((val) => val.indexOf(\"6a\") === 0);\n spends0thOutput = libauthTransaction.inputs.some((val) => val.outpointIndex === 0);\n }\n if (!spends0thOutput) {\n throw new Error(\"Invalid authchain transaction (does not spend 0th output of previous transaction)\");\n }\n const bcmrOpReturns = opReturns.filter((val) => val.indexOf(\"6a0442434d52\") === 0 ||\n val.indexOf(\"6a4c0442434d52\") === 0 ||\n val.indexOf(\"6a4d040042434d52\") === 0 ||\n val.indexOf(\"6a4e0400000042434d52\") === 0);\n if (bcmrOpReturns.length === 0) {\n return {\n txHash: hash,\n contentHash: \"\",\n uri: \"\",\n };\n }\n const opReturnHex = opReturns[0];\n const opReturn = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(opReturnHex);\n const chunks = [];\n let position = 1;\n // handle direct push, OP_PUSHDATA1, OP_PUSHDATA2;\n // OP_PUSHDATA4 is not supported in OP_RETURNs by consensus\n while (opReturn[position]) {\n let length = 0;\n if (opReturn[position] === 0x4c) {\n length = opReturn[position + 1];\n position += 2;\n }\n else if (opReturn[position] === 0x4d) {\n length = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__.binToNumberUint16LE)(opReturn.slice(position + 1, position + 3));\n position += 3;\n }\n else {\n length = opReturn[position];\n position += 1;\n }\n chunks.push(opReturn.slice(position, position + length));\n position += length;\n }\n if (chunks.length < 2 || chunks.length > 3) {\n throw new Error(`Malformed BCMR output: ${opReturnHex}`);\n }\n const result = {\n txHash: hash,\n contentHash: \"\",\n uri: \"\",\n };\n if (chunks.length === 2) {\n // IPFS Publication Output\n result.contentHash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(chunks[1]);\n const ipfsCid = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToUtf8)(chunks[1]);\n result.uri = `https://dweb.link/ipfs/${ipfsCid}`;\n }\n else {\n // HTTPS Publication Output\n // content hash is in OP_SHA256 byte order per spec\n result.contentHash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(chunks[1].slice());\n result.uri = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToUtf8)(chunks[2]);\n if (result.uri.indexOf(\"https://\") < 0) {\n result.uri = `https://${result.uri}`;\n }\n }\n return result;\n };\n // make authchain element and combine with the rest obtained\n let element;\n try {\n element = makeAuthChainElement(options.rawTx, options.rawTx.hash);\n }\n catch (error) {\n // special case for cashtoken authchain lookup by categoryId - allow to fail first lookup and inspect the genesis transaction\n // follow authchain to head and look for BCMR outputs\n const child = await getAuthChainChild();\n if (child) {\n return await BCMR.buildAuthChain({\n ...options,\n transactionHash: child.rawTx.hash,\n rawTx: child.rawTx,\n historyCache: child.historyCache,\n });\n }\n else {\n throw error;\n }\n }\n let chainBase = [];\n if (options.resolveBase) {\n // check for accelerated path if \"authchain\" extension is in registry\n const registry = await this.fetchMetadataRegistry(element.uri, element.contentHash);\n if (registry.extensions &&\n registry.extensions[\"authchain\"] &&\n Object.keys(registry.extensions[\"authchain\"]).length) {\n const chainTxArray = Object.values(registry.extensions[\"authchain\"]);\n chainBase = chainTxArray\n .map((tx) => {\n const transactionBin = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(tx);\n const decoded = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__.decodeTransaction)(transactionBin);\n if (typeof decoded === \"string\") {\n throw new Error(`Error decoding transaction ${JSON.stringify(tx)}, ${decoded}`);\n }\n const hash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash(transactionBin)).reverse());\n return { decoded, hash };\n })\n .map(({ decoded, hash }) => makeAuthChainElement(decoded, hash));\n }\n else {\n // simply go back in history towards authhead\n let stop = false;\n let tx = { ...options.rawTx };\n let maxElements = 10;\n while (stop == false || maxElements === 0) {\n const vin = tx.vin.find((val) => val.vout === 0);\n tx = await provider.getRawTransactionObject(vin.txid);\n try {\n const pastElement = makeAuthChainElement(tx, tx.hash);\n chainBase.unshift(pastElement);\n maxElements--;\n }\n catch {\n stop = true;\n }\n }\n }\n }\n // if we follow to head, we need to locate the next transaction spending our 0th output\n // and repeat the building process recursively\n if (options.followToHead) {\n const child = await getAuthChainChild();\n if (child) {\n const chainHead = await BCMR.buildAuthChain({\n transactionHash: child.rawTx.hash,\n network: options.network,\n rawTx: child.rawTx,\n historyCache: child.historyCache,\n followToHead: options.followToHead,\n resolveBase: false,\n });\n // combine the authchain element with the rest obtained\n return [...chainBase, element, ...chainHead].filter((val) => val.uri.length);\n }\n }\n // return the last chain element (or the only found in an edge case)\n return [...chainBase, element].filter((val) => val.uri.length);\n }\n /**\n * addMetadataRegistryAuthChain Add BCMR metadata registry by resolving an authchain\n *\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {Network?} options.network (default=mainnet) network to query the data from\n * @param {boolean?} options.followToHead (default=true) boolean flag to indicate that autchain building should progress to head (most recent registry version) or be stopped at this exact chain element\n * @param {ElectrumRawTransaction?} options.rawTx cached raw transaction obtained previously, spares a Fulcrum call\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async addMetadataRegistryAuthChain(options) {\n const authChain = await this.buildAuthChain({\n ...options,\n resolveBase: false,\n });\n if (!authChain.length) {\n throw new Error(`There were no BCMR entries in the resolved authchain ${JSON.stringify(authChain, null, 2)}`);\n }\n const registry = await this.fetchMetadataRegistry(authChain.reverse()[0].uri);\n this.addMetadataRegistry(registry);\n return authChain;\n }\n /**\n * getTokenInfo Return the token info (or the identity snapshot as per spec)\n *\n * @param {string} tokenId token id to look up\n *\n * @returns {IdentitySnapshot?} return the info for the token found, otherwise undefined\n */\n static getTokenInfo(tokenId) {\n for (const registry of this.metadataRegistries.slice().reverse()) {\n const history = registry.identities?.[tokenId];\n if (!history) {\n continue;\n }\n const latestIdentityIndex = Object.keys(history)[0];\n if (latestIdentityIndex === undefined) {\n continue;\n }\n return history[latestIdentityIndex];\n }\n return undefined;\n }\n}\n// List of tracked registries\nBCMR.metadataRegistries = [];\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/wallet/Bcmr.ts?");
1637
+ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BCMR\": () => (/* binding */ BCMR)\n/* harmony export */ });\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/hex.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/crypto/default-crypto-instances.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/utf8.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/message/transaction-encoding.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"../../node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _interface_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../network/Connection.js */ \"./src/network/Connection.ts\");\n/* harmony import */ var _model_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./model.js */ \"./src/wallet/model.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__, _model_js__WEBPACK_IMPORTED_MODULE_6__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__]);\n([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_5__, _model_js__WEBPACK_IMPORTED_MODULE_6__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\n// Implementation of CHIP-BCMR v1.0.0, refer to https://github.com/bitjson/chip-bcmr\nclass BCMR {\n static getRegistries() {\n return this.metadataRegistries;\n }\n static resetRegistries() {\n this.metadataRegistries = [];\n }\n /**\n * fetchMetadataRegistry Fetch the BCMR registry JSON file from a remote URI, optionally verifying its content hash\n *\n * @param {string} uri URI of the registry to fetch from\n * @param {string?} contentHash SHA256 hash of the resource the `uri` parameter points at.\n * If specified, calculates the hash of the data fetched from `uri` and matches it with provided one.\n * Yields an error upon mismatch.\n *\n * @returns {Registry} resolved registry\n */\n static async fetchMetadataRegistry(uri, contentHash) {\n if (uri.indexOf(\"https://\") < 0) {\n uri = `https://${uri}`;\n }\n // content hashes HTTPS Publication Outputs per spec\n if (contentHash) {\n // request as text and verify hash\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(uri, {\n responseType: \"text\",\n transformResponse: (val) => {\n return val;\n },\n });\n const hash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash((0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.utf8ToBin)(response.data)));\n if (contentHash != hash) {\n throw new Error(`Content hash mismatch for URI: ${uri}\\nreceived: ${hash}\\nrequired: ${contentHash}`);\n }\n return JSON.parse(response.data);\n }\n // request as JSON\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(uri);\n return response.data;\n }\n /**\n * addMetadataRegistry Add the metadata registry to the list of tracked registries\n *\n * @param {Registry} registry Registry object per schema specification, see https://raw.githubusercontent.com/bitjson/chip-bcmr/master/bcmr-v1.schema.json\n *\n */\n static addMetadataRegistry(registry) {\n if (this.metadataRegistries.some((val) => JSON.stringify(val) === JSON.stringify(registry))) {\n return;\n }\n this.metadataRegistries.push(registry);\n }\n /**\n * addMetadataRegistryFromUri Add the metadata registry by fetching a JSON file from a remote URI, optionally verifying its content hash\n *\n * @param {string} uri URI of the registry to fetch from\n * @param {string?} contentHash SHA256 hash of the resource the `uri` parameter points at.\n * If specified, calculates the hash of the data fetched from `uri` and matches it with provided one.\n * Yields an error upon mismatch.\n *\n */\n static async addMetadataRegistryFromUri(uri, contentHash) {\n const registry = await this.fetchMetadataRegistry(uri, contentHash);\n this.addMetadataRegistry(registry);\n }\n /**\n * buildAuthChain Build an authchain - Zeroth-Descendant Transaction Chain, refer to https://github.com/bitjson/chip-bcmr#zeroth-descendant-transaction-chains\n * The authchain in this implementation is specific to resolve to a valid metadata registry\n *\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {Network?} options.network (default=mainnet) network to query the data from\n * @param {boolean?} options.resolveBase (default=false) boolean flag to indicate that autchain building should resolve and verify elements back to base or be stopped at this exact chain element\n * @param {boolean?} options.followToHead (default=true) boolean flag to indicate that autchain building should progress to head or be stopped at this exact chain element\n * @param {ElectrumRawTransaction?} options.rawTx cached raw transaction obtained previously, spares a Fulcrum call\n * @param {TxI[]?} options.historyCache cached address history to be reused if authchain building proceeds with the same address, spares a flurry of Fulcrum calls\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async buildAuthChain(options) {\n if (options.network === undefined) {\n options.network = _interface_js__WEBPACK_IMPORTED_MODULE_4__.Network.MAINNET;\n }\n if (options.followToHead === undefined) {\n options.followToHead = true;\n }\n if (options.resolveBase === undefined) {\n options.resolveBase = false;\n }\n const provider = (await (0,_network_Connection_js__WEBPACK_IMPORTED_MODULE_5__.initProvider)(options.network));\n if (options.rawTx === undefined) {\n options.rawTx = await provider.getRawTransactionObject(options.transactionHash);\n }\n // figure out the autchain by moving towards authhead\n const getAuthChainChild = async () => {\n const history = options.historyCache ||\n (await provider.getHistory(options.rawTx.vout[0].scriptPubKey.addresses[0]));\n const thisTx = history.find((val) => val.tx_hash === options.transactionHash);\n let filteredHistory = history.filter((val) => val.height > 0\n ? val.height >= thisTx.height || val.height <= 0\n : val.height <= 0 && val.tx_hash !== thisTx.tx_hash);\n for (const historyTx of filteredHistory) {\n const historyRawTx = await provider.getRawTransactionObject(historyTx.tx_hash);\n const authChainVin = historyRawTx.vin.find((val) => val.txid === options.transactionHash && val.vout === 0);\n // if we've found continuation of authchain, we shall recurse into it\n if (authChainVin) {\n // reuse queried address history if the next element in chain is the same address\n const historyCache = options.rawTx.vout[0].scriptPubKey.addresses[0] ===\n historyRawTx.vout[0].scriptPubKey.addresses[0]\n ? filteredHistory\n : undefined;\n // combine the authchain element with the rest obtained\n return { rawTx: historyRawTx, historyCache };\n }\n }\n return undefined;\n };\n // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data\n // returns resolved AuthChainElement\n const makeAuthChainElement = (rawTx, hash) => {\n let opReturns;\n let spends0thOutput = false;\n if (rawTx.hasOwnProperty(\"vout\")) {\n const electrumTransaction = rawTx;\n opReturns = electrumTransaction.vout\n .filter((val) => val.scriptPubKey.type === \"nulldata\")\n .map((val) => val.scriptPubKey.hex);\n spends0thOutput = electrumTransaction.vin.some((val) => val.vout === 0);\n }\n else {\n const libauthTransaction = rawTx;\n opReturns = libauthTransaction.outputs\n .map((val) => (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(val.lockingBytecode))\n .filter((val) => val.indexOf(\"6a\") === 0);\n spends0thOutput = libauthTransaction.inputs.some((val) => val.outpointIndex === 0);\n }\n if (!spends0thOutput) {\n throw new Error(\"Invalid authchain transaction (does not spend 0th output of previous transaction)\");\n }\n const bcmrOpReturns = opReturns.filter((val) => val.indexOf(\"6a0442434d52\") === 0 ||\n val.indexOf(\"6a4c0442434d52\") === 0 ||\n val.indexOf(\"6a4d040042434d52\") === 0 ||\n val.indexOf(\"6a4e0400000042434d52\") === 0);\n if (bcmrOpReturns.length === 0) {\n return {\n txHash: hash,\n contentHash: \"\",\n uris: [],\n httpsUrl: \"\",\n };\n }\n const opReturnHex = opReturns[0];\n const chunks = _model_js__WEBPACK_IMPORTED_MODULE_6__.OpReturnData.parseBinary((0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(opReturnHex));\n if (chunks.length < 2) {\n throw new Error(`Malformed BCMR output: ${opReturnHex}`);\n }\n const result = {\n txHash: hash,\n contentHash: \"\",\n uris: [],\n httpsUrl: \"\",\n };\n if (chunks.length === 2) {\n // IPFS Publication Output\n result.contentHash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(chunks[1]);\n const ipfsCid = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToUtf8)(chunks[1]);\n result.uris = [`ipfs://${ipfsCid}`];\n result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;\n }\n else {\n // URI Publication Output\n // content hash is in OP_SHA256 byte order per spec\n result.contentHash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(chunks[1].slice());\n const uris = chunks.slice(2);\n for (const uri of uris) {\n const uriString = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToUtf8)(uri);\n result.uris.push(uriString);\n if (result.httpsUrl) {\n continue;\n }\n if (uriString.indexOf(\"https://\") === 0) {\n result.httpsUrl = uriString;\n }\n else if (uriString.indexOf(\"https://\") === -1) {\n result.httpsUrl = uriString;\n // case for domain name specifier, like example.com\n if (uriString.indexOf(\"/\") === -1) {\n result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;\n }\n result.httpsUrl = `https://${result.httpsUrl}`;\n }\n else if (uriString.indexOf(\"ipfs://\") === 0) {\n const ipfsCid = uriString.replace(\"ipfs://\", \"\");\n result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;\n }\n else {\n throw new Error(`Unsupported uri type: ${uriString}`);\n }\n }\n }\n return result;\n };\n // make authchain element and combine with the rest obtained\n let element;\n try {\n element = makeAuthChainElement(options.rawTx, options.rawTx.hash);\n }\n catch (error) {\n // special case for cashtoken authchain lookup by categoryId - allow to fail first lookup and inspect the genesis transaction\n // follow authchain to head and look for BCMR outputs\n const child = await getAuthChainChild();\n if (child) {\n return await BCMR.buildAuthChain({\n ...options,\n transactionHash: child.rawTx.hash,\n rawTx: child.rawTx,\n historyCache: child.historyCache,\n });\n }\n else {\n throw error;\n }\n }\n let chainBase = [];\n if (options.resolveBase) {\n // check for accelerated path if \"authchain\" extension is in registry\n const registry = await this.fetchMetadataRegistry(element.httpsUrl, element.contentHash);\n if (registry.extensions &&\n registry.extensions[\"authchain\"] &&\n Object.keys(registry.extensions[\"authchain\"]).length) {\n const chainTxArray = Object.values(registry.extensions[\"authchain\"]);\n chainBase = chainTxArray\n .map((tx) => {\n const transactionBin = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(tx);\n const decoded = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__.decodeTransaction)(transactionBin);\n if (typeof decoded === \"string\") {\n throw new Error(`Error decoding transaction ${JSON.stringify(tx)}, ${decoded}`);\n }\n const hash = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.binToHex)(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash(_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__.sha256.hash(transactionBin)).reverse());\n return { decoded, hash };\n })\n .map(({ decoded, hash }) => makeAuthChainElement(decoded, hash));\n }\n else {\n // simply go back in history towards authhead\n let stop = false;\n let tx = { ...options.rawTx };\n let maxElements = 10;\n while (stop == false || maxElements === 0) {\n const vin = tx.vin.find((val) => val.vout === 0);\n tx = await provider.getRawTransactionObject(vin.txid);\n try {\n const pastElement = makeAuthChainElement(tx, tx.hash);\n chainBase.unshift(pastElement);\n maxElements--;\n }\n catch {\n stop = true;\n }\n }\n }\n }\n // if we follow to head, we need to locate the next transaction spending our 0th output\n // and repeat the building process recursively\n if (options.followToHead) {\n const child = await getAuthChainChild();\n if (child) {\n const chainHead = await BCMR.buildAuthChain({\n transactionHash: child.rawTx.hash,\n network: options.network,\n rawTx: child.rawTx,\n historyCache: child.historyCache,\n followToHead: options.followToHead,\n resolveBase: false,\n });\n // combine the authchain element with the rest obtained\n return [...chainBase, element, ...chainHead].filter((val) => val.httpsUrl.length);\n }\n }\n // return the last chain element (or the only found in an edge case)\n return [...chainBase, element].filter((val) => val.httpsUrl.length);\n }\n /**\n * addMetadataRegistryAuthChain Add BCMR metadata registry by resolving an authchain\n *\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {Network?} options.network (default=mainnet) network to query the data from\n * @param {boolean?} options.followToHead (default=true) boolean flag to indicate that autchain building should progress to head (most recent registry version) or be stopped at this exact chain element\n * @param {ElectrumRawTransaction?} options.rawTx cached raw transaction obtained previously, spares a Fulcrum call\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async addMetadataRegistryAuthChain(options) {\n const authChain = await this.buildAuthChain({\n ...options,\n resolveBase: false,\n });\n if (!authChain.length) {\n throw new Error(`There were no BCMR entries in the resolved authchain ${JSON.stringify(authChain, null, 2)}`);\n }\n const registry = await this.fetchMetadataRegistry(authChain.reverse()[0].httpsUrl);\n this.addMetadataRegistry(registry);\n return authChain;\n }\n /**\n * getTokenInfo Return the token info (or the identity snapshot as per spec)\n *\n * @param {string} tokenId token id to look up\n *\n * @returns {IdentitySnapshot?} return the info for the token found, otherwise undefined\n */\n static getTokenInfo(tokenId) {\n for (const registry of this.metadataRegistries.slice().reverse()) {\n const history = registry.identities?.[tokenId];\n if (!history) {\n continue;\n }\n const latestIdentityIndex = Object.keys(history)[0];\n if (latestIdentityIndex === undefined) {\n continue;\n }\n return history[latestIdentityIndex];\n }\n return undefined;\n }\n}\n// List of tracked registries\nBCMR.metadataRegistries = [];\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/wallet/Bcmr.ts?");
1638
1638
 
1639
1639
  /***/ }),
1640
1640
 
@@ -1 +1 @@
1
- {"version":3,"file":"ElectrumNetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EAGf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAoB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAgB,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,eAAe;IAU5D,OAAO,EAAE,OAAO;IACvB,OAAO,CAAC,0BAA0B,CAAC;IAV9B,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAK;IAC1B,OAAO,MAAC;IACf,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,WAAW,CAAK;gBAGtB,QAAQ,EAAE,eAAe,GAAG,cAAc,EACnC,OAAO,GAAE,OAAyB,EACjC,0BAA0B,CAAC,qBAAS;YAehC,iBAAiB;IAmCzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqB5C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS7C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAmBvC,MAAM,CAAC,mBAAmB,KAAM;IAC1B,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,EACxB,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,MAAM,CAAC;IAiDZ,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,sBAAsB,CAAC;IAQ5B,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,OAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IA0BZ,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAU5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,aAAa;IAsBT,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,aAAa;IA4BT,wBAAwB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,IAAI,GAC7C,aAAa;IAOT,6BAA6B,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,IAAI,GAC7C,aAAa;IAaT,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,aAAa;IAmBzD,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtD,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,sBAAsB,CAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC;IAIV,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,8BAA8B,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,kCAAkC,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,0BAA0B,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;YAQF,cAAc;YAsCd,gBAAgB;YAkBhB,kBAAkB;IAkB1B,KAAK,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAInC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAMhC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAWhC,gBAAgB,IAAI,OAAO;IAIrB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAezD,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD,cAAc,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIjC,aAAa,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAiBhC,iBAAiB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIvC,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAG7C"}
1
+ {"version":3,"file":"ElectrumNetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export default class ElectrumNetworkProvider {
56
56
  clearTimeout(timeoutHandle);
57
57
  }
58
58
  async getUtxos(cashaddr) {
59
- const result = (await this.performRequest("blockchain.address.listunspent", cashaddr));
59
+ const result = (await this.performRequest("blockchain.address.listunspent", cashaddr, "include_tokens"));
60
60
  return result.map((utxo) => ({
61
61
  txid: utxo.tx_hash,
62
62
  vout: utxo.tx_pos,
@@ -1 +1 @@
1
- {"version":3,"file":"ElectrumNetworkProvider.js","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElectrumNetworkProvider.js","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ import { IdentitySnapshot, Registry } from "./bcmr-v2.schema.js";
4
4
  export interface AuthChainElement {
5
5
  txHash: string;
6
6
  contentHash: string;
7
- uri: string;
7
+ uris: string[];
8
+ httpsUrl: string;
8
9
  }
9
10
  export declare type AuthChain = AuthChainElement[];
10
11
  export declare class BCMR {
@@ -1 +1 @@
1
- {"version":3,"file":"Bcmr.d.ts","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,oBAAY,SAAS,GAAG,gBAAgB,EAAE,CAAC;AAG3C,qBAAa,IAAI;IAEf,OAAc,kBAAkB,EAAE,QAAQ,EAAE,CAAM;WAEpC,aAAa,IAAI,QAAQ,EAAE;WAI3B,eAAe,IAAI,IAAI;IAIrC;;;;;;;;;OASG;WACiB,qBAAqB,CACvC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,CAAC;IA6BpB;;;;;OAKG;WACW,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAW3D;;;;;;;;OAQG;WACiB,0BAA0B,CAC5C,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;;;OAYG;WACiB,cAAc,CAAC,OAAO,EAAE;QAC1C,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,sBAAsB,CAAC;QAC/B,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,SAAS,CAAC;IAgQtB;;;;;;;;;OASG;WACiB,4BAA4B,CAAC,OAAO,EAAE;QACxD,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,sBAAsB,CAAC;KAChC,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtB;;;;;;OAMG;WACW,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;CAgB1E"}
1
+ {"version":3,"file":"Bcmr.d.ts","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oBAAY,SAAS,GAAG,gBAAgB,EAAE,CAAC;AAG3C,qBAAa,IAAI;IAEf,OAAc,kBAAkB,EAAE,QAAQ,EAAE,CAAM;WAEpC,aAAa,IAAI,QAAQ,EAAE;WAI3B,eAAe,IAAI,IAAI;IAIrC;;;;;;;;;OASG;WACiB,qBAAqB,CACvC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,CAAC;IA6BpB;;;;;OAKG;WACW,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAW3D;;;;;;;;OAQG;WACiB,0BAA0B,CAC5C,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;;;OAYG;WACiB,cAAc,CAAC,OAAO,EAAE;QAC1C,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,sBAAsB,CAAC;QAC/B,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoQtB;;;;;;;;;OASG;WACiB,4BAA4B,CAAC,OAAO,EAAE;QACxD,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,sBAAsB,CAAC;KAChC,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtB;;;;;;OAMG;WACW,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;CAgB1E"}
@@ -1,7 +1,8 @@
1
- import { binToHex, binToNumberUint16LE, binToUtf8, decodeTransaction, hexToBin, sha256, utf8ToBin, } from "@bitauth/libauth";
1
+ import { binToHex, binToUtf8, decodeTransaction, hexToBin, sha256, utf8ToBin, } from "@bitauth/libauth";
2
2
  import axios from "axios";
3
3
  import { Network } from "../interface.js";
4
4
  import { initProvider } from "../network/Connection.js";
5
+ import { OpReturnData } from "./model.js";
5
6
  // Implementation of CHIP-BCMR v1.0.0, refer to https://github.com/bitjson/chip-bcmr
6
7
  export class BCMR {
7
8
  static getRegistries() {
@@ -149,53 +150,57 @@ export class BCMR {
149
150
  return {
150
151
  txHash: hash,
151
152
  contentHash: "",
152
- uri: "",
153
+ uris: [],
154
+ httpsUrl: "",
153
155
  };
154
156
  }
155
157
  const opReturnHex = opReturns[0];
156
- const opReturn = hexToBin(opReturnHex);
157
- const chunks = [];
158
- let position = 1;
159
- // handle direct push, OP_PUSHDATA1, OP_PUSHDATA2;
160
- // OP_PUSHDATA4 is not supported in OP_RETURNs by consensus
161
- while (opReturn[position]) {
162
- let length = 0;
163
- if (opReturn[position] === 0x4c) {
164
- length = opReturn[position + 1];
165
- position += 2;
166
- }
167
- else if (opReturn[position] === 0x4d) {
168
- length = binToNumberUint16LE(opReturn.slice(position + 1, position + 3));
169
- position += 3;
170
- }
171
- else {
172
- length = opReturn[position];
173
- position += 1;
174
- }
175
- chunks.push(opReturn.slice(position, position + length));
176
- position += length;
177
- }
178
- if (chunks.length < 2 || chunks.length > 3) {
158
+ const chunks = OpReturnData.parseBinary(hexToBin(opReturnHex));
159
+ if (chunks.length < 2) {
179
160
  throw new Error(`Malformed BCMR output: ${opReturnHex}`);
180
161
  }
181
162
  const result = {
182
163
  txHash: hash,
183
164
  contentHash: "",
184
- uri: "",
165
+ uris: [],
166
+ httpsUrl: "",
185
167
  };
186
168
  if (chunks.length === 2) {
187
169
  // IPFS Publication Output
188
170
  result.contentHash = binToHex(chunks[1]);
189
171
  const ipfsCid = binToUtf8(chunks[1]);
190
- result.uri = `https://dweb.link/ipfs/${ipfsCid}`;
172
+ result.uris = [`ipfs://${ipfsCid}`];
173
+ result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
191
174
  }
192
175
  else {
193
- // HTTPS Publication Output
176
+ // URI Publication Output
194
177
  // content hash is in OP_SHA256 byte order per spec
195
178
  result.contentHash = binToHex(chunks[1].slice());
196
- result.uri = binToUtf8(chunks[2]);
197
- if (result.uri.indexOf("https://") < 0) {
198
- result.uri = `https://${result.uri}`;
179
+ const uris = chunks.slice(2);
180
+ for (const uri of uris) {
181
+ const uriString = binToUtf8(uri);
182
+ result.uris.push(uriString);
183
+ if (result.httpsUrl) {
184
+ continue;
185
+ }
186
+ if (uriString.indexOf("https://") === 0) {
187
+ result.httpsUrl = uriString;
188
+ }
189
+ else if (uriString.indexOf("https://") === -1) {
190
+ result.httpsUrl = uriString;
191
+ // case for domain name specifier, like example.com
192
+ if (uriString.indexOf("/") === -1) {
193
+ result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;
194
+ }
195
+ result.httpsUrl = `https://${result.httpsUrl}`;
196
+ }
197
+ else if (uriString.indexOf("ipfs://") === 0) {
198
+ const ipfsCid = uriString.replace("ipfs://", "");
199
+ result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
200
+ }
201
+ else {
202
+ throw new Error(`Unsupported uri type: ${uriString}`);
203
+ }
199
204
  }
200
205
  }
201
206
  return result;
@@ -224,7 +229,7 @@ export class BCMR {
224
229
  let chainBase = [];
225
230
  if (options.resolveBase) {
226
231
  // check for accelerated path if "authchain" extension is in registry
227
- const registry = await this.fetchMetadataRegistry(element.uri, element.contentHash);
232
+ const registry = await this.fetchMetadataRegistry(element.httpsUrl, element.contentHash);
228
233
  if (registry.extensions &&
229
234
  registry.extensions["authchain"] &&
230
235
  Object.keys(registry.extensions["authchain"]).length) {
@@ -274,11 +279,11 @@ export class BCMR {
274
279
  resolveBase: false,
275
280
  });
276
281
  // combine the authchain element with the rest obtained
277
- return [...chainBase, element, ...chainHead].filter((val) => val.uri.length);
282
+ return [...chainBase, element, ...chainHead].filter((val) => val.httpsUrl.length);
278
283
  }
279
284
  }
280
285
  // return the last chain element (or the only found in an edge case)
281
- return [...chainBase, element].filter((val) => val.uri.length);
286
+ return [...chainBase, element].filter((val) => val.httpsUrl.length);
282
287
  }
283
288
  /**
284
289
  * addMetadataRegistryAuthChain Add BCMR metadata registry by resolving an authchain
@@ -298,7 +303,7 @@ export class BCMR {
298
303
  if (!authChain.length) {
299
304
  throw new Error(`There were no BCMR entries in the resolved authchain ${JSON.stringify(authChain, null, 2)}`);
300
305
  }
301
- const registry = await this.fetchMetadataRegistry(authChain.reverse()[0].uri);
306
+ const registry = await this.fetchMetadataRegistry(authChain.reverse()[0].httpsUrl);
302
307
  this.addMetadataRegistry(registry);
303
308
  return authChain;
304
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Bcmr.js","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bcmr.js","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"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"}