mainnet-js 1.1.27 → 1.1.29
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 +1 -1
- package/dist/{mainnet-1.1.27.js → mainnet-1.1.29.js} +9 -9
- package/dist/module/rate/ExchangeRate.js +1 -1
- package/dist/module/rate/ExchangeRate.js.map +1 -1
- package/dist/module/wallet/Bcmr.js +1 -1
- package/dist/module/wallet/Bcmr.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/network/Rpc.test.ts +91 -89
- package/src/rate/ExchangeRate.test.ts +58 -45
- package/src/rate/ExchangeRate.ts +1 -1
- package/src/transaction/allocateFee.test.ts +272 -262
- package/src/wallet/Bcmr.ts +1 -1
- package/src/wallet/Util.test.ts +71 -61
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.
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"><script defer src="mainnet-1.1.29.js"></script></head>
|
|
7
7
|
<body><script>document.addEventListener("DOMContentLoaded", async (event) => Object.assign(globalThis, await __mainnetPromise))</script>
|
|
8
8
|
</body>
|
|
9
9
|
</html>
|
|
@@ -1202,9 +1202,9 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
|
|
|
1202
1202
|
/*!**********************************!*\
|
|
1203
1203
|
!*** ./src/rate/ExchangeRate.ts ***!
|
|
1204
1204
|
\**********************************/
|
|
1205
|
-
/***/ ((
|
|
1205
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1206
1206
|
|
|
1207
|
-
eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ExchangeRate\": () => (/* binding */ ExchangeRate)\n/* harmony export */ });\n/* unused harmony exports getTtl, getRateFromExchange */\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constant.js */ \"./src/constant.ts\");\n/* harmony import */ var _util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/getRuntimePlatform.js */ \"./src/util/getRuntimePlatform.ts\");\n/* harmony import */ var _db_ExchangeRateProvider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../db/ExchangeRateProvider.js */ \"./src/db/ExchangeRateProvider.ts\");\n/* harmony import */ var _db_util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../db/util.js */ \"./src/db/util.ts\");\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\n\n\n\n\nclass ExchangeRate {\n constructor({ symbol, rate, ttl, }) {\n this.symbol = symbol;\n this.rate = rate;\n this.ttl = ttl;\n }\n static setupAxiosMock(mockUrl, responseData) {\n if (!(axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)) {\n (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks) = {};\n // install our interceptors\n axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.request.use((config) => {\n const url = config.url;\n if ((axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[url]) {\n // if we have set up a mocked response for this url, cancel the actual request with a cancelToken containing our mocked data\n const mockedResponse = (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[url];\n return {\n ...config,\n cancelToken: new (axios__WEBPACK_IMPORTED_MODULE_0___default().CancelToken)((cancel) => cancel({ status: 200, data: mockedResponse })),\n };\n }\n // otherwise proceed with usual request\n return config;\n });\n axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.response.use(function (response) {\n return response;\n }, function (error) {\n // resolve response with our mocked data\n if (axios__WEBPACK_IMPORTED_MODULE_0___default().isCancel(error)) {\n return Promise.resolve(error.message);\n }\n // handle all other errors gracefully\n return Promise.reject(error);\n });\n }\n (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[mockUrl] = responseData;\n }\n static removeAxiosMock(mockUrl) {\n delete ((axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks) || {})[mockUrl];\n }\n toString() {\n this.rate.toFixed(2);\n }\n static async get(symbol, useCache = true) {\n const platform = (0,_util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__.getRuntimePlatform)();\n if (platform !== _util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__.RuntimePlatform.node && (0,_db_util_js__WEBPACK_IMPORTED_MODULE_2__.indexedDbIsAvailable)()) {\n try {\n return await this.getRateFromIndexedDb(symbol, useCache);\n }\n catch {\n return await this.getRateFromGlobalScope(symbol, useCache);\n }\n }\n else {\n return await this.getRateFromGlobalScope(symbol, useCache);\n }\n }\n static async getRateFromIndexedDb(symbol, useCache = true) {\n if (!useCache) {\n return await getRateFromExchange(symbol);\n }\n let cache = new _db_ExchangeRateProvider_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n let cacheRate = await cache.getRate(symbol);\n if (cacheRate) {\n // if the cache is still good, return it\n if (cacheRate.ttl > Date.now()) {\n return cacheRate.rate;\n }\n // else fall through\n }\n let freshRate = await getRateFromExchange(symbol);\n cache.setRate(symbol, freshRate, getTtl());\n return freshRate;\n }\n static async getRateFromGlobalScope(symbol, useCache = true) {\n if (!useCache) {\n return await getRateFromExchange(symbol);\n }\n if (globalThis.RATE) {\n let rateObject = globalThis.RATE;\n if (symbol in rateObject) {\n let cachedRate = rateObject[symbol];\n // If the cache is still good return ie\n if (cachedRate.ttl > Date.now()) {\n return cachedRate.rate;\n }\n }\n }\n let freshRate = await getRateFromExchange(symbol);\n this.cacheRateInGlobalScope(symbol, freshRate);\n return freshRate;\n }\n static cacheRateInGlobalScope(symbol, rate) {\n if (!globalThis.RATE) {\n globalThis.RATE = {};\n }\n else {\n globalThis.RATE[symbol] = {\n symbol: symbol,\n rate: rate,\n ttl: getTtl(),\n };\n }\n }\n}\nfunction getTtl() {\n return Math.trunc(Date.now() + _constant_js__WEBPACK_IMPORTED_MODULE_4__.EXCHANGE_RATE_TTL);\n}\n// Attempt to get the usd rate from some web app\nasync function getRateFromExchange(symbol) {\n if (symbol.length > 0) {\n symbol = symbol.toLocaleLowerCase();\n }\n switch (symbol) {\n case \"usd\":\n try {\n let response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(\"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin-cash&vs_currencies=usd\");\n return response.data[\"bitcoin-cash\"].usd;\n }\n catch (e1) {\n try {\n let response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(\"https://markets.api.bitcoin.com/live/bitcoin\");\n return response.data[\"data\"][\"BCH\"];\n }\n catch (e2) {\n return e2;\n }\n }\n default:\n throw Error(\"Support for giving an amount in '${symbol}' is not supported.\");\n }\n}\
|
|
1207
|
+
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 */ \"ExchangeRate\": () => (/* binding */ ExchangeRate)\n/* harmony export */ });\n/* unused harmony exports getTtl, getRateFromExchange */\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constant.js */ \"./src/constant.ts\");\n/* harmony import */ var _util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/getRuntimePlatform.js */ \"./src/util/getRuntimePlatform.ts\");\n/* harmony import */ var _db_ExchangeRateProvider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../db/ExchangeRateProvider.js */ \"./src/db/ExchangeRateProvider.ts\");\n/* harmony import */ var _db_util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../db/util.js */ \"./src/db/util.ts\");\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\n\n\n\n\nclass ExchangeRate {\n constructor({ symbol, rate, ttl, }) {\n this.symbol = symbol;\n this.rate = rate;\n this.ttl = ttl;\n }\n static setupAxiosMock(mockUrl, responseData) {\n if (!(axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)) {\n (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks) = {};\n // install our interceptors\n axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.request.use((config) => {\n const url = config.url;\n if ((axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[url]) {\n // if we have set up a mocked response for this url, cancel the actual request with a cancelToken containing our mocked data\n const mockedResponse = (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[url];\n return {\n ...config,\n cancelToken: new (axios__WEBPACK_IMPORTED_MODULE_0___default().CancelToken)((cancel) => cancel({ status: 200, data: mockedResponse })),\n };\n }\n // otherwise proceed with usual request\n return config;\n });\n axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.response.use(function (response) {\n return response;\n }, function (error) {\n // resolve response with our mocked data\n if (axios__WEBPACK_IMPORTED_MODULE_0___default().isCancel(error)) {\n return Promise.resolve(error.message);\n }\n // handle all other errors gracefully\n return Promise.reject(error);\n });\n }\n (axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks)[mockUrl] = responseData;\n }\n static removeAxiosMock(mockUrl) {\n delete ((axios__WEBPACK_IMPORTED_MODULE_0___default().interceptors.mocks) || {})[mockUrl];\n }\n toString() {\n this.rate.toFixed(2);\n }\n static async get(symbol, useCache = true) {\n const platform = (0,_util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__.getRuntimePlatform)();\n if (platform !== _util_getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_1__.RuntimePlatform.node && (0,_db_util_js__WEBPACK_IMPORTED_MODULE_2__.indexedDbIsAvailable)()) {\n try {\n return await this.getRateFromIndexedDb(symbol, useCache);\n }\n catch {\n return await this.getRateFromGlobalScope(symbol, useCache);\n }\n }\n else {\n return await this.getRateFromGlobalScope(symbol, useCache);\n }\n }\n static async getRateFromIndexedDb(symbol, useCache = true) {\n if (!useCache) {\n return await getRateFromExchange(symbol);\n }\n let cache = new _db_ExchangeRateProvider_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n let cacheRate = await cache.getRate(symbol);\n if (cacheRate) {\n // if the cache is still good, return it\n if (cacheRate.ttl > Date.now()) {\n return cacheRate.rate;\n }\n // else fall through\n }\n let freshRate = await getRateFromExchange(symbol);\n cache.setRate(symbol, freshRate, getTtl());\n return freshRate;\n }\n static async getRateFromGlobalScope(symbol, useCache = true) {\n if (!useCache) {\n return await getRateFromExchange(symbol);\n }\n if (globalThis.RATE) {\n let rateObject = globalThis.RATE;\n if (symbol in rateObject) {\n let cachedRate = rateObject[symbol];\n // If the cache is still good return ie\n if (cachedRate.ttl > Date.now()) {\n return cachedRate.rate;\n }\n }\n }\n let freshRate = await getRateFromExchange(symbol);\n this.cacheRateInGlobalScope(symbol, freshRate);\n return freshRate;\n }\n static cacheRateInGlobalScope(symbol, rate) {\n if (!globalThis.RATE) {\n globalThis.RATE = {};\n }\n else {\n globalThis.RATE[symbol] = {\n symbol: symbol,\n rate: rate,\n ttl: getTtl(),\n };\n }\n }\n}\nfunction getTtl() {\n return Math.trunc(Date.now() + _constant_js__WEBPACK_IMPORTED_MODULE_4__.EXCHANGE_RATE_TTL);\n}\n// Attempt to get the usd rate from some web app\nasync function getRateFromExchange(symbol) {\n if (symbol.length > 0) {\n symbol = symbol.toLocaleLowerCase();\n }\n switch (symbol) {\n case \"usd\":\n try {\n let response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(\"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin-cash&vs_currencies=usd\");\n return response.data[\"bitcoin-cash\"].usd;\n }\n catch (e1) {\n try {\n let response = await axios__WEBPACK_IMPORTED_MODULE_0___default().get(\"https://markets.api.bitcoin.com/live/bitcoin\");\n return response.data[\"data\"][\"BCH\"];\n }\n catch (e2) {\n return e2;\n }\n }\n default:\n throw Error(\"Support for giving an amount in '${symbol}' is not supported.\");\n }\n}\nawait ExchangeRate.get(\"usd\");\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } }, 1);\n\n//# sourceURL=webpack://mainnet-js/./src/rate/ExchangeRate.ts?");
|
|
1208
1208
|
|
|
1209
1209
|
/***/ }),
|
|
1210
1210
|
|
|
@@ -1324,7 +1324,7 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
|
|
|
1324
1324
|
\*************************************/
|
|
1325
1325
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1326
1326
|
|
|
1327
|
-
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 */ \"amountInSatoshi\": () => (/* binding */ amountInSatoshi)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_enum_js__WEBPACK_IMPORTED_MODULE_2__]);\
|
|
1327
|
+
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 */ \"amountInSatoshi\": () => (/* binding */ amountInSatoshi)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_2__]);\n([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n/**\n * converts given value and unit into satoshi\n *\n * @param {value} number some value\n * @param {rawUnit} any the unit of value\n *\n * @returns a promise to the value in satoshi\n */\nasync function amountInSatoshi(value, rawUnit) {\n const unit = (0,_util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__.sanitizeUnit)(rawUnit);\n switch (unit) {\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.BCH:\n return Math.round(value * _chain_js__WEBPACK_IMPORTED_MODULE_3__.bchParam.subUnits);\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATOSHI:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SAT:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATOSHIS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.USD:\n let USD_over_BCH = await _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\");\n let SAT_over_BCH = _chain_js__WEBPACK_IMPORTED_MODULE_3__.bchParam.subUnits;\n return Math.round(Number(value * (SAT_over_BCH / USD_over_BCH)));\n default:\n throw Error(\"Unit of value not defined\");\n }\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/amountInSatoshi.ts?");
|
|
1328
1328
|
|
|
1329
1329
|
/***/ }),
|
|
1330
1330
|
|
|
@@ -1344,7 +1344,7 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
|
|
|
1344
1344
|
\**********************************************/
|
|
1345
1345
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1346
1346
|
|
|
1347
|
-
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 */ \"BalanceResponse\": () => (/* binding */ BalanceResponse),\n/* harmony export */ \"balanceFromSatoshi\": () => (/* binding */ balanceFromSatoshi),\n/* harmony export */ \"balanceResponseFromSatoshi\": () => (/* binding */ balanceResponseFromSatoshi)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _floor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./floor.js */ \"./src/util/floor.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_enum_js__WEBPACK_IMPORTED_MODULE_1__]);\
|
|
1347
|
+
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 */ \"BalanceResponse\": () => (/* binding */ BalanceResponse),\n/* harmony export */ \"balanceFromSatoshi\": () => (/* binding */ balanceFromSatoshi),\n/* harmony export */ \"balanceResponseFromSatoshi\": () => (/* binding */ balanceResponseFromSatoshi)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _floor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./floor.js */ \"./src/util/floor.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_1__]);\n([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\nclass BalanceResponse {\n constructor(bch, sat, usd) {\n this.bch = bch;\n this.sat = sat;\n this.usd = usd;\n }\n}\nasync function balanceResponseFromSatoshi(value, usdPriceCache = true) {\n let response = new BalanceResponse();\n let returnUnits = [\"bch\", \"sat\", \"usd\"];\n for (const u of returnUnits) {\n switch (u) {\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.BCH:\n response.bch = value / _chain_js__WEBPACK_IMPORTED_MODULE_2__.bchParam.subUnits;\n break;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.SAT:\n response.sat = value;\n break;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.USD:\n let usd = (value / _chain_js__WEBPACK_IMPORTED_MODULE_2__.bchParam.subUnits) *\n (await _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\", usdPriceCache));\n response.usd = (0,_floor_js__WEBPACK_IMPORTED_MODULE_3__.floor)(usd, 2);\n break;\n default:\n throw Error(`Balance response type ${JSON.stringify(u)} not understood`);\n }\n }\n return response;\n}\nasync function balanceFromSatoshi(value, rawUnit, usdPriceCache = true) {\n const unit = (0,_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_4__.sanitizeUnit)(rawUnit);\n switch (unit) {\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.BCH:\n return value / _chain_js__WEBPACK_IMPORTED_MODULE_2__.bchParam.subUnits;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.SAT:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.SATS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.SATOSHI:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.SATOSHIS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_1__.UnitEnum.USD:\n let usd = (value / _chain_js__WEBPACK_IMPORTED_MODULE_2__.bchParam.subUnits) *\n (await _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\", usdPriceCache));\n return Number(usd.toFixed(2));\n default:\n throw Error(`Balance response type ${JSON.stringify(unit)} not understood`);\n }\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/balanceObjectFromSatoshi.ts?");
|
|
1348
1348
|
|
|
1349
1349
|
/***/ }),
|
|
1350
1350
|
|
|
@@ -1492,9 +1492,9 @@ eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harm
|
|
|
1492
1492
|
/*!********************************!*\
|
|
1493
1493
|
!*** ./src/util/getUsdRate.ts ***!
|
|
1494
1494
|
\********************************/
|
|
1495
|
-
/***/ ((
|
|
1495
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1496
1496
|
|
|
1497
|
-
eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getUsdRate\": () => (/* binding */ getUsdRate)\n/* harmony export */ });\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n\nfunction getUsdRate() {\n return _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\");\n}\n\n\n//# sourceURL=webpack://mainnet-js/./src/util/getUsdRate.ts?");
|
|
1497
|
+
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 */ \"getUsdRate\": () => (/* binding */ getUsdRate)\n/* harmony export */ });\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__]);\n_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nfunction getUsdRate() {\n return _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\");\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/getUsdRate.ts?");
|
|
1498
1498
|
|
|
1499
1499
|
/***/ }),
|
|
1500
1500
|
|
|
@@ -1524,7 +1524,7 @@ eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__
|
|
|
1524
1524
|
\***************************/
|
|
1525
1525
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1526
1526
|
|
|
1527
|
-
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BalanceResponse\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.BalanceResponse),\n/* harmony export */ \"ExchangeRate\": () => (/* reexport safe */ _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__.ExchangeRate),\n/* harmony export */ \"RuntimePlatform\": () => (/* reexport safe */ _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__.RuntimePlatform),\n/* harmony export */ \"amountInSatoshi\": () => (/* reexport safe */ _amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__.amountInSatoshi),\n/* harmony export */ \"asSendRequestObject\": () => (/* reexport safe */ _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__.asSendRequestObject),\n/* harmony export */ \"atob\": () => (/* reexport safe */ _base64_js__WEBPACK_IMPORTED_MODULE_2__.atob),\n/* harmony export */ \"balanceFromSatoshi\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.balanceFromSatoshi),\n/* harmony export */ \"balanceResponseFromSatoshi\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.balanceResponseFromSatoshi),\n/* harmony export */ \"binToBase64\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_5__.binToBase64),\n/* harmony export */ \"binToHex\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToHex),\n/* harmony export */ \"btoa\": () => (/* reexport safe */ _base64_js__WEBPACK_IMPORTED_MODULE_2__.btoa),\n/* harmony export */ \"checkTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.checkTokenaddr),\n/* harmony export */ \"convert\": () => (/* reexport safe */ _convert_js__WEBPACK_IMPORTED_MODULE_7__.convert),\n/* harmony export */ \"convertObject\": () => (/* reexport safe */ _convert_js__WEBPACK_IMPORTED_MODULE_7__.convertObject),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay_js__WEBPACK_IMPORTED_MODULE_8__.delay),\n/* harmony export */ \"deriveCashaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.deriveCashaddr),\n/* harmony export */ \"derivePublicKeyHash\": () => (/* reexport safe */ _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__.derivePublicKeyHash),\n/* harmony export */ \"deriveTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.deriveTokenaddr),\n/* harmony export */ \"derivedNetwork\": () => (/* reexport safe */ _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__.derivedNetwork),\n/* harmony export */ \"getAddrsByXpubKey\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getAddrsByXpubKey),\n/* harmony export */ \"getAddrsByXpubKeyObject\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getAddrsByXpubKeyObject),\n/* harmony export */ \"getRandomInt\": () => (/* reexport safe */ _randomInt_js__WEBPACK_IMPORTED_MODULE_19__.getRandomInt),\n/* harmony export */ \"getRuntimePlatform\": () => (/* reexport safe */ _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__.getRuntimePlatform),\n/* harmony export */ \"getUsdRate\": () => (/* reexport safe */ _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__.getUsdRate),\n/* harmony export */ \"getXPubKey\": () => (/* reexport safe */ _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__.getXPubKey),\n/* harmony export */ \"getXpubKeyInfo\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getXpubKeyInfo),\n/* harmony export */ \"getXpubKeyInfoObject\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getXpubKeyInfoObject),\n/* harmony export */ \"hash160\": () => (/* reexport safe */ _hash160_js__WEBPACK_IMPORTED_MODULE_15__.hash160),\n/* harmony export */ \"hexToBin\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.hexToBin),\n/* harmony export */ \"isTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.isTokenaddr),\n/* harmony export */ \"randomValues\": () => (/* reexport module object */ _randomValues_js__WEBPACK_IMPORTED_MODULE_21__),\n/* harmony export */ \"sanitizeAddress\": () => (/* reexport safe */ _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__.sanitizeAddress),\n/* harmony export */ \"sanitizeUnit\": () => (/* reexport safe */ _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_18__.sanitizeUnit),\n/* harmony export */ \"sha256\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__.sha256),\n/* harmony export */ \"sumUtxoValue\": () => (/* reexport safe */ _sumUtxoValue_js__WEBPACK_IMPORTED_MODULE_22__.sumUtxoValue),\n/* harmony export */ \"toCashaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.toCashaddr),\n/* harmony export */ \"toTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.toTokenaddr),\n/* harmony export */ \"utf8ToBin\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_4__.utf8ToBin)\n/* harmony export */ });\n/* harmony import */ var _amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./amountInSatoshi.js */ \"./src/util/amountInSatoshi.ts\");\n/* harmony import */ var _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./asSendRequestObject.js */ \"./src/util/asSendRequestObject.ts\");\n/* harmony import */ var _base64_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64.js */ \"./src/util/base64.ts\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/hex.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/utf8.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/base64.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/crypto/default-crypto-instances.js\");\n/* harmony import */ var _convert_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convert.js */ \"./src/util/convert.ts\");\n/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./delay.js */ \"./src/util/delay.ts\");\n/* harmony import */ var _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./deriveNetwork.js */ \"./src/util/deriveNetwork.ts\");\n/* harmony import */ var _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./derivePublicKeyHash.js */ \"./src/util/derivePublicKeyHash.ts\");\n/* harmony import */ var _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./deriveCashaddr.js */ \"./src/util/deriveCashaddr.ts\");\n/* harmony import */ var _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util/getAddrsByXpubKey.js */ \"./src/util/getAddrsByXpubKey.ts\");\n/* harmony import */ var _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./getRuntimePlatform.js */ \"./src/util/getRuntimePlatform.ts\");\n/* harmony import */ var _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./getUsdRate.js */ \"./src/util/getUsdRate.ts\");\n/* harmony import */ var _hash160_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hash160.js */ \"./src/util/hash160.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizeAddress.js */ \"./src/util/sanitizeAddress.ts\");\n/* harmony import */ var _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\n/* harmony import */ var _randomInt_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./randomInt.js */ \"./src/util/randomInt.ts\");\n/* harmony import */ var _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../util/getXPubKey.js */ \"./src/util/getXPubKey.ts\");\n/* harmony import */ var _randomValues_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./randomValues.js */ \"./src/util/randomValues.ts\");\n/* harmony import */ var _sumUtxoValue_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sumUtxoValue.js */ \"./src/util/sumUtxoValue.ts\");\n/* harmony import */ var _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./balanceObjectFromSatoshi.js */ \"./src/util/balanceObjectFromSatoshi.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__, _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__, _base64_js__WEBPACK_IMPORTED_MODULE_2__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__, _convert_js__WEBPACK_IMPORTED_MODULE_7__, _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__, _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__, _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__, _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__, _hash160_js__WEBPACK_IMPORTED_MODULE_15__, _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__, _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__, _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__]);\n([_amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__, _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__, _base64_js__WEBPACK_IMPORTED_MODULE_2__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__, _convert_js__WEBPACK_IMPORTED_MODULE_7__, _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__, _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__, _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__, _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__, _hash160_js__WEBPACK_IMPORTED_MODULE_15__, _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__, _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__, _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/index.ts?");
|
|
1527
|
+
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BalanceResponse\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.BalanceResponse),\n/* harmony export */ \"ExchangeRate\": () => (/* reexport safe */ _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__.ExchangeRate),\n/* harmony export */ \"RuntimePlatform\": () => (/* reexport safe */ _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__.RuntimePlatform),\n/* harmony export */ \"amountInSatoshi\": () => (/* reexport safe */ _amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__.amountInSatoshi),\n/* harmony export */ \"asSendRequestObject\": () => (/* reexport safe */ _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__.asSendRequestObject),\n/* harmony export */ \"atob\": () => (/* reexport safe */ _base64_js__WEBPACK_IMPORTED_MODULE_2__.atob),\n/* harmony export */ \"balanceFromSatoshi\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.balanceFromSatoshi),\n/* harmony export */ \"balanceResponseFromSatoshi\": () => (/* reexport safe */ _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__.balanceResponseFromSatoshi),\n/* harmony export */ \"binToBase64\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_5__.binToBase64),\n/* harmony export */ \"binToHex\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.binToHex),\n/* harmony export */ \"btoa\": () => (/* reexport safe */ _base64_js__WEBPACK_IMPORTED_MODULE_2__.btoa),\n/* harmony export */ \"checkTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.checkTokenaddr),\n/* harmony export */ \"convert\": () => (/* reexport safe */ _convert_js__WEBPACK_IMPORTED_MODULE_7__.convert),\n/* harmony export */ \"convertObject\": () => (/* reexport safe */ _convert_js__WEBPACK_IMPORTED_MODULE_7__.convertObject),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay_js__WEBPACK_IMPORTED_MODULE_8__.delay),\n/* harmony export */ \"deriveCashaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.deriveCashaddr),\n/* harmony export */ \"derivePublicKeyHash\": () => (/* reexport safe */ _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__.derivePublicKeyHash),\n/* harmony export */ \"deriveTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.deriveTokenaddr),\n/* harmony export */ \"derivedNetwork\": () => (/* reexport safe */ _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__.derivedNetwork),\n/* harmony export */ \"getAddrsByXpubKey\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getAddrsByXpubKey),\n/* harmony export */ \"getAddrsByXpubKeyObject\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getAddrsByXpubKeyObject),\n/* harmony export */ \"getRandomInt\": () => (/* reexport safe */ _randomInt_js__WEBPACK_IMPORTED_MODULE_19__.getRandomInt),\n/* harmony export */ \"getRuntimePlatform\": () => (/* reexport safe */ _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__.getRuntimePlatform),\n/* harmony export */ \"getUsdRate\": () => (/* reexport safe */ _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__.getUsdRate),\n/* harmony export */ \"getXPubKey\": () => (/* reexport safe */ _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__.getXPubKey),\n/* harmony export */ \"getXpubKeyInfo\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getXpubKeyInfo),\n/* harmony export */ \"getXpubKeyInfoObject\": () => (/* reexport safe */ _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__.getXpubKeyInfoObject),\n/* harmony export */ \"hash160\": () => (/* reexport safe */ _hash160_js__WEBPACK_IMPORTED_MODULE_15__.hash160),\n/* harmony export */ \"hexToBin\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__.hexToBin),\n/* harmony export */ \"isTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.isTokenaddr),\n/* harmony export */ \"randomValues\": () => (/* reexport module object */ _randomValues_js__WEBPACK_IMPORTED_MODULE_21__),\n/* harmony export */ \"sanitizeAddress\": () => (/* reexport safe */ _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__.sanitizeAddress),\n/* harmony export */ \"sanitizeUnit\": () => (/* reexport safe */ _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_18__.sanitizeUnit),\n/* harmony export */ \"sha256\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__.sha256),\n/* harmony export */ \"sumUtxoValue\": () => (/* reexport safe */ _sumUtxoValue_js__WEBPACK_IMPORTED_MODULE_22__.sumUtxoValue),\n/* harmony export */ \"toCashaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.toCashaddr),\n/* harmony export */ \"toTokenaddr\": () => (/* reexport safe */ _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__.toTokenaddr),\n/* harmony export */ \"utf8ToBin\": () => (/* reexport safe */ _bitauth_libauth__WEBPACK_IMPORTED_MODULE_4__.utf8ToBin)\n/* harmony export */ });\n/* harmony import */ var _amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./amountInSatoshi.js */ \"./src/util/amountInSatoshi.ts\");\n/* harmony import */ var _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./asSendRequestObject.js */ \"./src/util/asSendRequestObject.ts\");\n/* harmony import */ var _base64_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64.js */ \"./src/util/base64.ts\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/hex.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/utf8.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/format/base64.js\");\n/* harmony import */ var _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bitauth/libauth */ \"../../node_modules/@bitauth/libauth/build/lib/crypto/default-crypto-instances.js\");\n/* harmony import */ var _convert_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convert.js */ \"./src/util/convert.ts\");\n/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./delay.js */ \"./src/util/delay.ts\");\n/* harmony import */ var _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./deriveNetwork.js */ \"./src/util/deriveNetwork.ts\");\n/* harmony import */ var _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./derivePublicKeyHash.js */ \"./src/util/derivePublicKeyHash.ts\");\n/* harmony import */ var _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./deriveCashaddr.js */ \"./src/util/deriveCashaddr.ts\");\n/* harmony import */ var _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util/getAddrsByXpubKey.js */ \"./src/util/getAddrsByXpubKey.ts\");\n/* harmony import */ var _getRuntimePlatform_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./getRuntimePlatform.js */ \"./src/util/getRuntimePlatform.ts\");\n/* harmony import */ var _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./getUsdRate.js */ \"./src/util/getUsdRate.ts\");\n/* harmony import */ var _hash160_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hash160.js */ \"./src/util/hash160.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizeAddress.js */ \"./src/util/sanitizeAddress.ts\");\n/* harmony import */ var _sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\n/* harmony import */ var _randomInt_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./randomInt.js */ \"./src/util/randomInt.ts\");\n/* harmony import */ var _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../util/getXPubKey.js */ \"./src/util/getXPubKey.ts\");\n/* harmony import */ var _randomValues_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./randomValues.js */ \"./src/util/randomValues.ts\");\n/* harmony import */ var _sumUtxoValue_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sumUtxoValue.js */ \"./src/util/sumUtxoValue.ts\");\n/* harmony import */ var _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./balanceObjectFromSatoshi.js */ \"./src/util/balanceObjectFromSatoshi.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__, _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__, _base64_js__WEBPACK_IMPORTED_MODULE_2__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__, _convert_js__WEBPACK_IMPORTED_MODULE_7__, _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__, _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__, _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__, _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__, _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__, _hash160_js__WEBPACK_IMPORTED_MODULE_15__, _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__, _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__, _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__, _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__]);\n([_amountInSatoshi_js__WEBPACK_IMPORTED_MODULE_0__, _asSendRequestObject_js__WEBPACK_IMPORTED_MODULE_1__, _base64_js__WEBPACK_IMPORTED_MODULE_2__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_6__, _convert_js__WEBPACK_IMPORTED_MODULE_7__, _deriveNetwork_js__WEBPACK_IMPORTED_MODULE_9__, _derivePublicKeyHash_js__WEBPACK_IMPORTED_MODULE_10__, _deriveCashaddr_js__WEBPACK_IMPORTED_MODULE_11__, _util_getAddrsByXpubKey_js__WEBPACK_IMPORTED_MODULE_12__, _getUsdRate_js__WEBPACK_IMPORTED_MODULE_14__, _hash160_js__WEBPACK_IMPORTED_MODULE_15__, _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_16__, _sanitizeAddress_js__WEBPACK_IMPORTED_MODULE_17__, _util_getXPubKey_js__WEBPACK_IMPORTED_MODULE_20__, _balanceObjectFromSatoshi_js__WEBPACK_IMPORTED_MODULE_23__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/index.ts?");
|
|
1528
1528
|
|
|
1529
1529
|
/***/ }),
|
|
1530
1530
|
|
|
@@ -1584,7 +1584,7 @@ eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harm
|
|
|
1584
1584
|
\*************************************/
|
|
1585
1585
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1586
1586
|
|
|
1587
|
-
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 */ \"satoshiToAmount\": () => (/* binding */ satoshiToAmount)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_enum_js__WEBPACK_IMPORTED_MODULE_2__]);\
|
|
1587
|
+
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 */ \"satoshiToAmount\": () => (/* binding */ satoshiToAmount)\n/* harmony export */ });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../chain.js */ \"./src/chain.ts\");\n/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum.js */ \"./src/enum.ts\");\n/* harmony import */ var _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rate/ExchangeRate.js */ \"./src/rate/ExchangeRate.ts\");\n/* harmony import */ var _util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/sanitizeUnit.js */ \"./src/util/sanitizeUnit.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_2__]);\n([_rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__, _enum_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n/**\n * converts given value and unit from satoshi\n *\n * @param {value} number some value in satoshi\n * @param {rawUnit} any the target unit\n *\n * @returns a promise to the value in the unit of account given by rawUnit\n */\nasync function satoshiToAmount(value, rawUnit) {\n const unit = (0,_util_sanitizeUnit_js__WEBPACK_IMPORTED_MODULE_1__.sanitizeUnit)(rawUnit);\n switch (unit) {\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.BCH:\n return value / _chain_js__WEBPACK_IMPORTED_MODULE_3__.bchParam.subUnits;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATOSHI:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SAT:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.SATOSHIS:\n return value;\n case _enum_js__WEBPACK_IMPORTED_MODULE_2__.UnitEnum.USD:\n let USD_over_BCH = await _rate_ExchangeRate_js__WEBPACK_IMPORTED_MODULE_0__.ExchangeRate.get(\"usd\");\n let SAT_over_BCH = _chain_js__WEBPACK_IMPORTED_MODULE_3__.bchParam.subUnits;\n // truncate dollar amounts to fixed precision (2),\n // then return the fixed value string as a float.\n let dollarValue = Number(value * (USD_over_BCH / SAT_over_BCH)).toFixed(2);\n return Number.parseFloat(dollarValue);\n default:\n throw Error(\"Unit of value not defined\");\n }\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://mainnet-js/./src/util/satoshiToAmount.ts?");
|
|
1588
1588
|
|
|
1589
1589
|
/***/ }),
|
|
1590
1590
|
|
|
@@ -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_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_5__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _network_Connection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../network/Connection.js */ \"./src/network/Connection.ts\");\n/* harmony import */ var _model_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./model.js */ \"./src/wallet/model.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _model_js__WEBPACK_IMPORTED_MODULE_4__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_6__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__]);\n([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _model_js__WEBPACK_IMPORTED_MODULE_4__, _network_Connection_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 v2.0.0-draft, 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 // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data\n // returns resolved AuthChainElement\n static 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_4__.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(\"ipfs://\") === 0) {\n const ipfsCid = uriString.replace(\"ipfs://\", \"\");\n result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;\n }\n else 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 const parts = uriString.toLowerCase().split(\".\");\n if (!(parts?.[0]?.indexOf(\"baf\") === 0 && parts?.[1] === \"ipfs\")) {\n result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;\n }\n }\n result.httpsUrl = `https://${result.httpsUrl}`;\n }\n else {\n throw new Error(`Unsupported uri type: ${uriString}`);\n }\n }\n }\n return result;\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_5__.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_6__.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 // make authchain element and combine with the rest obtained\n let element;\n try {\n element = BCMR.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 }) => BCMR.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 = BCMR.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 * fetchAuthChainFromChaingraph Fetch the authchain information from a trusted external indexer\n * The authchain in this implementation is specific to resolve to a valid metadata registry\n *\n * @param {string} options.chaingraphUrl (required) URL of a chaingraph indexer instance to fetch info from\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {string?} options.network (default=mainnet) network to query the data from, specific to the queried instance, can be mainnet, chipnet, or anything else\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async fetchAuthChainFromChaingraph(options) {\n if (!options.chaingraphUrl) {\n throw new Error(\"Provide `chaingraphUrl` param.\");\n }\n if (options.network === undefined) {\n options.network = \"mainnet\";\n }\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().post(options.chaingraphUrl, {\n operationName: null,\n variables: {},\n query: `{\n transaction(\n where: {\n hash:{_eq:\"\\\\\\\\x${options.transactionHash}\"},\n block_inclusions:{block:{accepted_by:{node:{name:{_ilike:\"%${options.network}%\"}}}}}\n }\n ) {\n hash\n authchains {\n authchain_length\n migrations(\n where: {\n transaction: {\n outputs: { locking_bytecode_pattern: { _like: \"6a04%\" } }\n }\n }\n ) {\n transaction {\n hash\n inputs(where:{ outpoint_index: { _eq:\"0\" } }){\n outpoint_index\n }\n outputs(where: { locking_bytecode_pattern: { _like: \"6a04%\" } }) {\n output_index\n locking_bytecode\n }\n }\n }\n }\n }\n}`,\n }, {\n responseType: \"json\",\n headers: {\n Accept: \"*/*\",\n \"Content-Type\": \"application/json\",\n },\n });\n const result = [];\n const migrations = response.data.data.transaction[0]?.authchains[0].migrations;\n if (!migrations) {\n return result;\n }\n for (const migration of migrations) {\n const transaction = migration.transaction[0];\n if (!transaction) {\n continue;\n }\n transaction.inputs.forEach((input) => (input.outpointIndex = Number(input.outpoint_index)));\n transaction.outputs.forEach((output) => {\n output.outputIndex = Number(output.output_index);\n output.lockingBytecode = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(output.locking_bytecode.replace(\"\\\\x\", \"\"));\n });\n const txHash = transaction.hash.replace(\"\\\\x\", \"\");\n result.push(BCMR.makeAuthChainElement(transaction, txHash));\n }\n return result;\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?");
|
|
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_5__ = __webpack_require__(/*! ../interface.js */ \"./src/interface.ts\");\n/* harmony import */ var _network_Connection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../network/Connection.js */ \"./src/network/Connection.ts\");\n/* harmony import */ var _model_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./model.js */ \"./src/wallet/model.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _model_js__WEBPACK_IMPORTED_MODULE_4__, _network_Connection_js__WEBPACK_IMPORTED_MODULE_6__, _bitauth_libauth__WEBPACK_IMPORTED_MODULE_7__]);\n([_bitauth_libauth__WEBPACK_IMPORTED_MODULE_2__, _model_js__WEBPACK_IMPORTED_MODULE_4__, _network_Connection_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 v2.0.0-draft, 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 // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data\n // returns resolved AuthChainElement\n static 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_4__.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(\"ipfs://\") === 0) {\n const ipfsCid = uriString.replace(\"ipfs://\", \"\");\n result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;\n }\n else 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 const parts = uriString.toLowerCase().split(\".\");\n if (!(parts?.[0]?.indexOf(\"baf\") === 0 && parts?.[1] === \"ipfs\")) {\n result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;\n }\n }\n result.httpsUrl = `https://${result.httpsUrl}`;\n }\n else {\n throw new Error(`Unsupported uri type: ${uriString}`);\n }\n }\n }\n return result;\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_5__.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_6__.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 // make authchain element and combine with the rest obtained\n let element;\n try {\n element = BCMR.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 }) => BCMR.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 = BCMR.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 * fetchAuthChainFromChaingraph Fetch the authchain information from a trusted external indexer\n * The authchain in this implementation is specific to resolve to a valid metadata registry\n *\n * @param {string} options.chaingraphUrl (required) URL of a chaingraph indexer instance to fetch info from\n * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain\n * @param {string?} options.network (default=mainnet) network to query the data from, specific to the queried instance, can be mainnet, chipnet, or anything else\n *\n * @returns {AuthChain} returns the resolved authchain\n */\n static async fetchAuthChainFromChaingraph(options) {\n if (!options.chaingraphUrl) {\n throw new Error(\"Provide `chaingraphUrl` param.\");\n }\n if (options.network === undefined) {\n options.network = \"mainnet\";\n }\n const response = await axios__WEBPACK_IMPORTED_MODULE_0___default().post(options.chaingraphUrl, {\n operationName: null,\n variables: {},\n query: `{\n transaction(\n where: {\n hash:{_eq:\"\\\\\\\\x${options.transactionHash}\"},\n block_inclusions:{block:{accepted_by:{node:{name:{_ilike:\"%${options.network}%\"}}}}}\n }\n ) {\n hash\n authchains {\n authchain_length\n migrations(\n where: {\n transaction: {\n outputs: { locking_bytecode_pattern: { _like: \"6a04%\" } }\n }\n }\n ) {\n transaction {\n hash\n inputs(where:{ outpoint_index: { _eq:\"0\" } }){\n outpoint_index\n }\n outputs(where: { locking_bytecode_pattern: { _like: \"6a04%\" } }) {\n output_index\n locking_bytecode\n }\n }\n }\n }\n }\n}`,\n }, {\n responseType: \"json\",\n headers: {\n Accept: \"*/*\",\n \"Content-Type\": \"application/json\",\n },\n });\n const result = [];\n const migrations = response.data.data.transaction[0]?.authchains[0].migrations;\n if (!migrations) {\n return result;\n }\n for (const migration of migrations) {\n const transaction = migration.transaction[0];\n if (!transaction) {\n continue;\n }\n transaction.inputs.forEach((input) => (input.outpointIndex = Number(input.outpoint_index)));\n transaction.outputs.forEach((output) => {\n output.outputIndex = Number(output.output_index);\n output.lockingBytecode = (0,_bitauth_libauth__WEBPACK_IMPORTED_MODULE_1__.hexToBin)(output.locking_bytecode.replace(\"\\\\x\", \"\"));\n });\n const txHash = transaction.hash.replace(\"\\\\x\", \"\");\n result.push(BCMR.makeAuthChainElement(transaction, txHash));\n }\n return result.filter(element => element.contentHash.length && element.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
|
|
|
@@ -134,5 +134,5 @@ export async function getRateFromExchange(symbol) {
|
|
|
134
134
|
throw Error("Support for giving an amount in '${symbol}' is not supported.");
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
|
|
137
|
+
await ExchangeRate.get("usd");
|
|
138
138
|
//# sourceMappingURL=ExchangeRate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangeRate.js","sourceRoot":"","sources":["../../../src/rate/ExchangeRate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExchangeRate.js","sourceRoot":"","sources":["../../../src/rate/ExchangeRate.ts"],"names":[],"mappings":"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"}
|
|
@@ -364,7 +364,7 @@ export class BCMR {
|
|
|
364
364
|
const txHash = transaction.hash.replace("\\x", "");
|
|
365
365
|
result.push(BCMR.makeAuthChainElement(transaction, txHash));
|
|
366
366
|
}
|
|
367
|
-
return result;
|
|
367
|
+
return result.filter(element => element.contentHash.length && element.httpsUrl.length);
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* addMetadataRegistryAuthChain Add BCMR metadata registry by resolving an authchain
|
|
@@ -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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"}
|