signet.js 0.0.1-beta.7 → 0.0.1-beta.9
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/browser/index.browser.cjs +12 -0
- package/browser/index.browser.cjs.map +1 -0
- package/browser/index.browser.js +3927 -0
- package/browser/index.browser.js.map +1 -0
- package/node/index.node.cjs +19 -0
- package/node/index.node.cjs.map +1 -0
- package/node/index.node.js +4099 -0
- package/node/index.node.js.map +1 -0
- package/package.json +18 -12
- package/types/chains/Bitcoin/BTCRpcAdapter/BTCRpcAdapter.d.ts +10 -0
- package/types/chains/Bitcoin/BTCRpcAdapter/Mempool/Mempool.d.ts +15 -0
- package/types/chains/Bitcoin/BTCRpcAdapter/Mempool/index.d.ts +1 -0
- package/types/chains/Bitcoin/BTCRpcAdapter/Mempool/types.d.ts +69 -0
- package/types/chains/Bitcoin/BTCRpcAdapter/index.d.ts +5 -0
- package/types/chains/Bitcoin/Bitcoin.d.ts +42 -0
- package/types/chains/Bitcoin/types.d.ts +42 -0
- package/types/chains/Bitcoin/utils.d.ts +2 -0
- package/types/chains/Chain.d.ts +21 -0
- package/types/chains/ChainSignatureContract.d.ts +18 -0
- package/types/chains/Cosmos/Cosmos.d.ts +38 -0
- package/types/chains/Cosmos/types.d.ts +30 -0
- package/types/chains/Cosmos/utils.d.ts +2 -0
- package/types/chains/EVM/EVM.d.ts +32 -0
- package/types/chains/EVM/types.d.ts +5 -0
- package/types/chains/EVM/utils.d.ts +7 -0
- package/types/chains/index.d.ts +11 -0
- package/types/chains/types.d.ts +18 -0
- package/types/index.d.ts +2 -0
- package/types/utils/chains/index.d.ts +1 -0
- package/types/utils/chains/near/ChainSignatureContract.d.ts +35 -0
- package/types/utils/chains/near/account.d.ts +13 -0
- package/types/utils/chains/near/constants.d.ts +3 -0
- package/types/utils/chains/near/index.d.ts +3 -0
- package/types/utils/chains/near/relayer/index.d.ts +1 -0
- package/types/utils/chains/near/relayer/relayer.d.ts +3 -0
- package/types/utils/chains/near/relayer/types.d.ts +22 -0
- package/types/utils/chains/near/signAndSend/index.d.ts +1 -0
- package/types/utils/chains/near/signAndSend/keypair.d.ts +5 -0
- package/types/utils/chains/near/transactionBuilder.d.ts +26 -0
- package/types/utils/chains/near/types.d.ts +54 -0
- package/types/utils/cryptography.d.ts +3 -0
- package/types/utils/index.d.ts +2 -0
- package/.eslintrc.json +0 -55
- package/.prettierrc +0 -1
- package/babel.config.js +0 -6
- package/docs/pages/chain-signatures-contract.mdx +0 -56
- package/docs/pages/chain.mdx +0 -45
- package/docs/pages/chains/bitcoin/bitcoin.mdx +0 -191
- package/docs/pages/chains/bitcoin/btc-rpc-adapter.mdx +0 -307
- package/docs/pages/chains/cosmos.mdx +0 -181
- package/docs/pages/chains/evm.mdx +0 -189
- package/docs/pages/index.mdx +0 -99
- package/docs/snippets/contract.ts +0 -21
- package/docs/snippets/env.ts +0 -13
- package/jest.config.ts +0 -199
- package/src/chains/Bitcoin/BTCRpcAdapter/BTCRpcAdapter.ts +0 -11
- package/src/chains/Bitcoin/BTCRpcAdapter/Mempool/Mempool.ts +0 -96
- package/src/chains/Bitcoin/BTCRpcAdapter/Mempool/index.ts +0 -1
- package/src/chains/Bitcoin/BTCRpcAdapter/Mempool/types.ts +0 -72
- package/src/chains/Bitcoin/BTCRpcAdapter/index.ts +0 -6
- package/src/chains/Bitcoin/Bitcoin.ts +0 -301
- package/src/chains/Bitcoin/types.ts +0 -45
- package/src/chains/Bitcoin/utils.ts +0 -14
- package/src/chains/Chain.ts +0 -96
- package/src/chains/ChainSignatureContract.ts +0 -48
- package/src/chains/Cosmos/Cosmos.ts +0 -279
- package/src/chains/Cosmos/types.ts +0 -35
- package/src/chains/Cosmos/utils.ts +0 -45
- package/src/chains/EVM/EVM.ts +0 -180
- package/src/chains/EVM/types.ts +0 -7
- package/src/chains/EVM/utils.ts +0 -26
- package/src/chains/index.ts +0 -34
- package/src/chains/types.ts +0 -35
- package/src/chains/utils.ts +0 -40
- package/src/index.ts +0 -2
- package/src/utils/chains/index.ts +0 -1
- package/src/utils/chains/near/ChainSignatureContract.ts +0 -195
- package/src/utils/chains/near/account.ts +0 -42
- package/src/utils/chains/near/constants.ts +0 -4
- package/src/utils/chains/near/index.ts +0 -3
- package/src/utils/chains/near/relayer/index.ts +0 -1
- package/src/utils/chains/near/relayer/relayer.ts +0 -39
- package/src/utils/chains/near/relayer/types.ts +0 -24
- package/src/utils/chains/near/signAndSend/index.ts +0 -1
- package/src/utils/chains/near/signAndSend/keypair.ts +0 -180
- package/src/utils/chains/near/transactionBuilder.ts +0 -138
- package/src/utils/chains/near/types.ts +0 -67
- package/src/utils/index.ts +0 -1
- package/tsconfig.eslint.json +0 -8
- package/tsconfig.json +0 -116
- package/vite.config.ts +0 -47
- package/vocs.config.ts +0 -60
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.browser.js","sources":["../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/types.js","../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/buffer.js","../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/utils.js","../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/serialize.js","../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/deserialize.js","../../node_modules/.pnpm/borsh@1.0.0/node_modules/borsh/lib/cjs/index.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/constants.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/logger/console.logger.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/logger/logger.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/logger/index.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/errors/errors.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/assignable.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/errors.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/provider/light_client.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/provider/response.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/provider/index.js","../../node_modules/.pnpm/@near-js+types@0.0.4/node_modules/@near-js/types/lib/index.js","../../node_modules/.pnpm/mustache@4.0.0/node_modules/mustache/mustache.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/format.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/errors/index.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/logging.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/provider.js","../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/lib/browser/index.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/validators.js","../../node_modules/.pnpm/@near-js+utils@0.1.0/node_modules/@near-js/utils/lib/index.js","../../node_modules/.pnpm/near-api-js@3.0.4/node_modules/near-api-js/lib/utils/serialize.js","../../src/chains/ChainSignatureContract.ts","../../src/utils/chains/near/constants.ts","../../src/utils/chains/near/account.ts","../../src/utils/chains/near/relayer/relayer.ts","../../src/utils/chains/near/ChainSignatureContract.ts","../../src/utils/chains/near/transactionBuilder.ts","../../src/chains/Chain.ts","../../src/chains/EVM/utils.ts","../../src/chains/EVM/EVM.ts","../../src/chains/Bitcoin/utils.ts","../../src/chains/Bitcoin/Bitcoin.ts","../../src/chains/Bitcoin/BTCRpcAdapter/BTCRpcAdapter.ts","../../src/chains/Bitcoin/BTCRpcAdapter/Mempool/Mempool.ts","../../src/chains/Bitcoin/BTCRpcAdapter/index.ts","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/utf8.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/varint.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/binary.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/helpers.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/google/protobuf/any.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js","../../node_modules/.pnpm/cosmjs-types@0.9.0/node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js","../../src/chains/Cosmos/utils.ts","../../src/chains/Cosmos/Cosmos.ts","../../src/utils/chains/near/signAndSend/keypair.ts","../../src/utils/cryptography.ts"],"sourcesContent":["\"use strict\";\nexports.__esModule = true;\nexports.integers = void 0;\nexports.integers = ['u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128', 'f32', 'f64'];\n","\"use strict\";\nexports.__esModule = true;\nexports.DecodeBuffer = exports.EncodeBuffer = void 0;\nvar EncodeBuffer = /** @class */ (function () {\n function EncodeBuffer() {\n this.offset = 0;\n this.buffer_size = 256;\n this.buffer = new ArrayBuffer(this.buffer_size);\n this.view = new DataView(this.buffer);\n }\n EncodeBuffer.prototype.resize_if_necessary = function (needed_space) {\n if (this.buffer_size - this.offset < needed_space) {\n this.buffer_size = Math.max(this.buffer_size * 2, this.buffer_size + needed_space);\n var new_buffer = new ArrayBuffer(this.buffer_size);\n new Uint8Array(new_buffer).set(new Uint8Array(this.buffer));\n this.buffer = new_buffer;\n this.view = new DataView(new_buffer);\n }\n };\n EncodeBuffer.prototype.get_used_buffer = function () {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n };\n EncodeBuffer.prototype.store_value = function (value, type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.resize_if_necessary(size);\n var toCall = type[0] === 'f' ? \"setFloat\".concat(bSize) : type[0] === 'i' ? \"setInt\".concat(bSize) : \"setUint\".concat(bSize);\n this.view[toCall](this.offset, value, true);\n this.offset += size;\n };\n EncodeBuffer.prototype.store_bytes = function (from) {\n this.resize_if_necessary(from.length);\n new Uint8Array(this.buffer).set(new Uint8Array(from), this.offset);\n this.offset += from.length;\n };\n return EncodeBuffer;\n}());\nexports.EncodeBuffer = EncodeBuffer;\nvar DecodeBuffer = /** @class */ (function () {\n function DecodeBuffer(buf) {\n this.offset = 0;\n this.buffer_size = buf.length;\n this.buffer = new ArrayBuffer(buf.length);\n new Uint8Array(this.buffer).set(buf);\n this.view = new DataView(this.buffer);\n }\n DecodeBuffer.prototype.assert_enough_buffer = function (size) {\n if (this.offset + size > this.buffer.byteLength) {\n throw new Error('Error in schema, the buffer is smaller than expected');\n }\n };\n DecodeBuffer.prototype.consume_value = function (type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.assert_enough_buffer(size);\n var toCall = type[0] === 'f' ? \"getFloat\".concat(bSize) : type[0] === 'i' ? \"getInt\".concat(bSize) : \"getUint\".concat(bSize);\n var ret = this.view[toCall](this.offset, true);\n this.offset += size;\n return ret;\n };\n DecodeBuffer.prototype.consume_bytes = function (size) {\n this.assert_enough_buffer(size);\n var ret = this.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return ret;\n };\n return DecodeBuffer;\n}());\nexports.DecodeBuffer = DecodeBuffer;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.validate_schema = exports.ErrorSchema = exports.expect_enum = exports.expect_same_size = exports.expect_bigint = exports.expect_type = exports.isArrayLike = void 0;\nvar types_js_1 = require(\"./types.js\");\nfunction isArrayLike(value) {\n // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n return (Array.isArray(value) ||\n (!!value &&\n typeof value === 'object' &&\n 'length' in value &&\n typeof (value.length) === 'number' &&\n (value.length === 0 ||\n (value.length > 0 &&\n (value.length - 1) in value))));\n}\nexports.isArrayLike = isArrayLike;\nfunction expect_type(value, type, fieldPath) {\n if (typeof (value) !== type) {\n throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_type = expect_type;\nfunction expect_bigint(value, fieldPath) {\n var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n if (!basicType && !strObject) {\n throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_bigint = expect_bigint;\nfunction expect_same_size(length, expected, fieldPath) {\n if (length !== expected) {\n throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_same_size = expect_same_size;\nfunction expect_enum(value, fieldPath) {\n if (typeof (value) !== 'object' || value === null) {\n throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_enum = expect_enum;\n// Validate Schema\nvar VALID_STRING_TYPES = types_js_1.integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n __extends(ErrorSchema, _super);\n function ErrorSchema(schema, expected) {\n var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n return _super.call(this, message) || this;\n }\n return ErrorSchema;\n}(Error));\nexports.ErrorSchema = ErrorSchema;\nfunction validate_schema(schema) {\n if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n return;\n }\n if (schema && typeof (schema) === 'object') {\n var keys = Object.keys(schema);\n if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n var key = keys[0];\n if (key === 'option')\n return validate_schema(schema[key]);\n if (key === 'enum')\n return validate_enum_schema(schema[key]);\n if (key === 'array')\n return validate_array_schema(schema[key]);\n if (key === 'set')\n return validate_schema(schema[key]);\n if (key === 'map')\n return validate_map_schema(schema[key]);\n if (key === 'struct')\n return validate_struct_schema(schema[key]);\n }\n }\n throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nexports.validate_schema = validate_schema;\nfunction validate_enum_schema(schema) {\n if (!Array.isArray(schema))\n throw new ErrorSchema(schema, 'Array');\n for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n var sch = schema_1[_i];\n if (typeof sch !== 'object' || !('struct' in sch)) {\n throw new Error('Missing \"struct\" key in enum schema');\n }\n if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n throw new Error('The \"struct\" in each enum must have a single key');\n }\n validate_schema({ struct: sch.struct });\n }\n}\nfunction validate_array_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, '{ type, len? }');\n if (schema.len && typeof schema.len !== 'number') {\n throw new Error(\"Invalid schema: \".concat(schema));\n }\n if ('type' in schema)\n return validate_schema(schema.type);\n throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n validate_schema(schema.key);\n validate_schema(schema.value);\n }\n else {\n throw new ErrorSchema(schema, '{ key, value }');\n }\n}\nfunction validate_struct_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, 'object');\n for (var key in schema) {\n validate_schema(schema[key]);\n }\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.BorshSerializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nvar BorshSerializer = /** @class */ (function () {\n function BorshSerializer(checkTypes) {\n this.encoded = new buffer_js_1.EncodeBuffer();\n this.fieldPath = ['value'];\n this.checkTypes = checkTypes;\n }\n BorshSerializer.prototype.encode = function (value, schema) {\n this.encode_value(value, schema);\n return this.encoded.get_used_buffer();\n };\n BorshSerializer.prototype.encode_value = function (value, schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.encode_integer(value, schema);\n if (schema === 'string')\n return this.encode_string(value);\n if (schema === 'bool')\n return this.encode_boolean(value);\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.encode_option(value, schema);\n if ('enum' in schema)\n return this.encode_enum(value, schema);\n if ('array' in schema)\n return this.encode_array(value, schema);\n if ('set' in schema)\n return this.encode_set(value, schema);\n if ('map' in schema)\n return this.encode_map(value, schema);\n if ('struct' in schema)\n return this.encode_struct(value, schema);\n }\n };\n BorshSerializer.prototype.encode_integer = function (value, schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n this.checkTypes && utils.expect_type(value, 'number', this.fieldPath);\n this.encoded.store_value(value, schema);\n }\n else {\n this.checkTypes && utils.expect_bigint(value, this.fieldPath);\n this.encode_bigint(BigInt(value), size);\n }\n };\n BorshSerializer.prototype.encode_bigint = function (value, size) {\n var buffer_len = size / 8;\n var buffer = new Uint8Array(buffer_len);\n for (var i = 0; i < buffer_len; i++) {\n buffer[i] = Number(value & BigInt(0xff));\n value = value >> BigInt(8);\n }\n this.encoded.store_bytes(new Uint8Array(buffer));\n };\n BorshSerializer.prototype.encode_string = function (value) {\n this.checkTypes && utils.expect_type(value, 'string', this.fieldPath);\n var _value = value;\n // 4 bytes for length\n this.encoded.store_value(_value.length, 'u32');\n // string bytes\n for (var i = 0; i < _value.length; i++) {\n this.encoded.store_value(_value.charCodeAt(i), 'u8');\n }\n };\n BorshSerializer.prototype.encode_boolean = function (value) {\n this.checkTypes && utils.expect_type(value, 'boolean', this.fieldPath);\n this.encoded.store_value(value ? 1 : 0, 'u8');\n };\n BorshSerializer.prototype.encode_option = function (value, schema) {\n if (value === null || value === undefined) {\n this.encoded.store_value(0, 'u8');\n }\n else {\n this.encoded.store_value(1, 'u8');\n this.encode_value(value, schema.option);\n }\n };\n BorshSerializer.prototype.encode_enum = function (value, schema) {\n this.checkTypes && utils.expect_enum(value, this.fieldPath);\n var valueKey = Object.keys(value)[0];\n for (var i = 0; i < schema[\"enum\"].length; i++) {\n var valueSchema = schema[\"enum\"][i];\n if (valueKey === Object.keys(valueSchema.struct)[0]) {\n this.encoded.store_value(i, 'u8');\n return this.encode_struct(value, valueSchema);\n }\n }\n throw new Error(\"Enum key (\".concat(valueKey, \") not found in enum schema: \").concat(JSON.stringify(schema), \" at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_array = function (value, schema) {\n if (utils.isArrayLike(value))\n return this.encode_arraylike(value, schema);\n if (value instanceof ArrayBuffer)\n return this.encode_buffer(value, schema);\n throw new Error(\"Expected Array-like not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_arraylike = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.length, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.length, 'u32');\n }\n // array values\n for (var i = 0; i < value.length; i++) {\n this.encode_value(value[i], schema.array.type);\n }\n };\n BorshSerializer.prototype.encode_buffer = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.byteLength, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.byteLength, 'u32');\n }\n // array values\n this.encoded.store_bytes(new Uint8Array(value));\n };\n BorshSerializer.prototype.encode_set = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isSet = value instanceof Set;\n var values = isSet ? Array.from(value.values()) : Object.values(value);\n // 4 bytes for length\n this.encoded.store_value(values.length, 'u32');\n // set values\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value_1 = values_1[_i];\n this.encode_value(value_1, schema.set);\n }\n };\n BorshSerializer.prototype.encode_map = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isMap = value instanceof Map;\n var keys = isMap ? Array.from(value.keys()) : Object.keys(value);\n // 4 bytes for length\n this.encoded.store_value(keys.length, 'u32');\n // store key/values\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n this.encode_value(key, schema.map.key);\n this.encode_value(isMap ? value.get(key) : value[key], schema.map.value);\n }\n };\n BorshSerializer.prototype.encode_struct = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n for (var _i = 0, _a = Object.keys(schema.struct); _i < _a.length; _i++) {\n var key = _a[_i];\n this.fieldPath.push(key);\n this.encode_value(value[key], schema.struct[key]);\n this.fieldPath.pop();\n }\n };\n return BorshSerializer;\n}());\nexports.BorshSerializer = BorshSerializer;\n","\"use strict\";\nexports.__esModule = true;\nexports.BorshDeserializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar BorshDeserializer = /** @class */ (function () {\n function BorshDeserializer(bufferArray) {\n this.buffer = new buffer_js_1.DecodeBuffer(bufferArray);\n }\n BorshDeserializer.prototype.decode = function (schema) {\n return this.decode_value(schema);\n };\n BorshDeserializer.prototype.decode_value = function (schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.decode_integer(schema);\n if (schema === 'string')\n return this.decode_string();\n if (schema === 'bool')\n return this.decode_boolean();\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.decode_option(schema);\n if ('enum' in schema)\n return this.decode_enum(schema);\n if ('array' in schema)\n return this.decode_array(schema);\n if ('set' in schema)\n return this.decode_set(schema);\n if ('map' in schema)\n return this.decode_map(schema);\n if ('struct' in schema)\n return this.decode_struct(schema);\n }\n throw new Error(\"Unsupported type: \".concat(schema));\n };\n BorshDeserializer.prototype.decode_integer = function (schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n return this.buffer.consume_value(schema);\n }\n return this.decode_bigint(size, schema.startsWith('i'));\n };\n BorshDeserializer.prototype.decode_bigint = function (size, signed) {\n if (signed === void 0) { signed = false; }\n var buffer_len = size / 8;\n var buffer = new Uint8Array(this.buffer.consume_bytes(buffer_len));\n var bits = buffer.reduceRight(function (r, x) { return r + x.toString(16).padStart(2, '0'); }, '');\n if (signed && buffer[buffer_len - 1]) {\n return BigInt.asIntN(size, BigInt(\"0x\".concat(bits)));\n }\n return BigInt(\"0x\".concat(bits));\n };\n BorshDeserializer.prototype.decode_string = function () {\n var len = this.decode_integer('u32');\n var buffer = new Uint8Array(this.buffer.consume_bytes(len));\n return String.fromCharCode.apply(null, buffer);\n };\n BorshDeserializer.prototype.decode_boolean = function () {\n return this.buffer.consume_value('u8') > 0;\n };\n BorshDeserializer.prototype.decode_option = function (schema) {\n var option = this.buffer.consume_value('u8');\n if (option === 1) {\n return this.decode_value(schema.option);\n }\n if (option !== 0) {\n throw new Error(\"Invalid option \".concat(option));\n }\n return null;\n };\n BorshDeserializer.prototype.decode_enum = function (schema) {\n var _a;\n var valueIndex = this.buffer.consume_value('u8');\n if (valueIndex > schema[\"enum\"].length) {\n throw new Error(\"Enum option \".concat(valueIndex, \" is not available\"));\n }\n var struct = schema[\"enum\"][valueIndex].struct;\n var key = Object.keys(struct)[0];\n return _a = {}, _a[key] = this.decode_value(struct[key]), _a;\n };\n BorshDeserializer.prototype.decode_array = function (schema) {\n var result = [];\n var len = schema.array.len ? schema.array.len : this.decode_integer('u32');\n for (var i = 0; i < len; ++i) {\n result.push(this.decode_value(schema.array.type));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_set = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Set();\n for (var i = 0; i < len; ++i) {\n result.add(this.decode_value(schema.set));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_map = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Map();\n for (var i = 0; i < len; ++i) {\n var key = this.decode_value(schema.map.key);\n var value = this.decode_value(schema.map.value);\n result.set(key, value);\n }\n return result;\n };\n BorshDeserializer.prototype.decode_struct = function (schema) {\n var result = {};\n for (var key in schema.struct) {\n result[key] = this.decode_value(schema.struct[key]);\n }\n return result;\n };\n return BorshDeserializer;\n}());\nexports.BorshDeserializer = BorshDeserializer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.deserialize = exports.serialize = void 0;\nvar serialize_js_1 = require(\"./serialize.js\");\nvar deserialize_js_1 = require(\"./deserialize.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nfunction serialize(schema, value, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var serializer = new serialize_js_1.BorshSerializer(validate);\n return serializer.encode(value, schema);\n}\nexports.serialize = serialize;\nfunction deserialize(schema, buffer, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var deserializer = new deserialize_js_1.BorshDeserializer(buffer);\n return deserializer.decode(schema);\n}\nexports.deserialize = deserialize;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = new bn_js_1.default('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","// This file has been generated from mustache.mjs\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `tags` argument is given here it must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n */\n Writer.prototype.render = function render (template, view, partials, tags) {\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, tags);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, tags) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, tags);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, tags) {\n if (!partials) return;\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return mustache.escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.0.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view` and `partials` using the\n * default writer. If the optional `tags` argument is given here it must be an\n * array with two string values: the opening and closing tags used in the\n * template (e.g. [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n */\n mustache.render = function render (template, view, partials, tags) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, tags);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = new bn_js_1.default('10', 10).pow(new bn_js_1.default(exports.NEAR_NOMINATION_EXP, 10));\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = new bn_js_1.default(10);\nfor (let i = 0, offset = new bn_js_1.default(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset.mul(BN10)) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n const balanceBN = new bn_js_1.default(balance, 10);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN.iadd(ROUNDING_OFFSETS[roundingExp]);\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || '0';\n const fractionStr = balance.substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, '0').substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split('.');\n const wholePart = split[0];\n const fracPart = split[1] || '';\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, '0'));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, '').trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, '');\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, '');\n if (value === '') {\n return '0';\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, '$1,$2');\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === 'string') {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffEpochValidators = exports.findSeatPrice = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const num = new bn_js_1.default(numSeats);\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (stakesSum.lt(num)) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = new bn_js_1.default(1), right = stakesSum.add(new bn_js_1.default(1));\n while (!left.eq(right.sub(new bn_js_1.default(1)))) {\n const mid = left.add(right).div(new bn_js_1.default(2));\n let found = false;\n let currentSum = new bn_js_1.default(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum.add(stakes[i].div(mid));\n if (currentSum.gte(num)) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (validators.length < maxNumberOfSeats) {\n return stakesSum.mul(new bn_js_1.default(minimumStakeRatio[0])).div(new bn_js_1.default(minimumStakeRatio[1]));\n }\n else {\n return stakes[0].add(new bn_js_1.default(1));\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base_decode = exports.base_encode = exports.deserialize = exports.serialize = void 0;\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return utils_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return utils_1.baseDecode; } });\n","import type BN from 'bn.js'\n\nimport type { RSVSignature, UncompressedPubKeySEC1 } from '@chains/types'\n\nexport interface SignArgs {\n /** The payload to sign as an array of 32 bytes */\n payload: number[]\n /** The derivation path for key generation */\n path: string\n /** Version of the key to use */\n key_version: number\n}\n\n/**\n * Base contract interface required for compatibility with Chain instances like EVM and Bitcoin.\n *\n * See {@link EVM} and {@link Bitcoin} for example implementations.\n */\nexport abstract class BaseChainSignatureContract {\n /**\n * Gets the current signature deposit required by the contract.\n * This deposit amount helps manage network congestion.\n *\n * @returns Promise resolving to the required deposit amount as a BigNumber\n */\n abstract getCurrentSignatureDeposit(): Promise<BN>\n\n /**\n * Derives a child public key using a\\ derivation path and predecessor.\n *\n * @param args - Arguments for key derivation\n * @param args.path - The string path to use derive the key\n * @param args.predecessor - The id/address of the account requesting signature\n * @returns Promise resolving to the derived SEC1 uncompressed public key\n */\n abstract getDerivedPublicKey(\n args: {\n path: string\n predecessor: string\n } & Record<string, unknown>\n ): Promise<UncompressedPubKeySEC1>\n}\n\n/**\n * Full contract interface that extends BaseChainSignatureContract to provide all Sig Network Smart Contract capabilities.\n */\nexport abstract class ChainSignatureContract extends BaseChainSignatureContract {\n /**\n * Signs a payload using Sig Network MPC.\n *\n * @param args - Arguments for the signing operation\n * @param args.payload - The data to sign as an array of 32 bytes\n * @param args.path - The string path to use derive the key\n * @param args.key_version - Version of the key to use\n * @returns Promise resolving to the RSV signature\n */\n abstract sign(args: SignArgs & Record<string, unknown>): Promise<RSVSignature>\n\n /**\n * Gets the public key associated with this contract instance.\n *\n * @returns Promise resolving to the SEC1 uncompressed public key\n */\n abstract getPublicKey(): Promise<UncompressedPubKeySEC1>\n}\n","import BN from 'bn.js'\n\nexport const NEAR_MAX_GAS = new BN('300000000000000')\nexport const DONT_CARE_ACCOUNT_ID = 'dontcare'\n","import { Account, Connection } from '@near-js/accounts'\nimport { KeyPair } from '@near-js/crypto'\nimport { InMemoryKeyStore } from '@near-js/keystores'\n\nimport { DONT_CARE_ACCOUNT_ID } from '@utils/chains/near/constants'\n\ntype SetConnectionArgs =\n | {\n networkId: string\n accountId: string\n keypair: KeyPair\n }\n | {\n networkId: string\n accountId?: never\n keypair?: never\n }\n\nexport const getNearAccount = async ({\n networkId,\n accountId = DONT_CARE_ACCOUNT_ID,\n keypair = KeyPair.fromRandom('ed25519'),\n}: SetConnectionArgs): Promise<Account> => {\n const keyStore = new InMemoryKeyStore()\n await keyStore.setKey(networkId, accountId, keypair)\n\n const connection = Connection.fromConfig({\n networkId,\n provider: {\n type: 'JsonRpcProvider',\n args: {\n url: {\n testnet: 'https://rpc.testnet.near.org',\n mainnet: 'https://rpc.mainnet.near.org',\n }[networkId],\n },\n },\n signer: { type: 'InMemorySigner', keyStore },\n })\n\n return new Account(connection, accountId)\n}\n","import { type SignedDelegate } from '@near-js/transactions'\nimport bs58 from 'bs58'\n\nimport { type SignedDelegateRelayerFormat } from './types'\n\n/**\n * Parses the signedDelegate object from the Multi-Party Computation (MPC) format to the Relayer format.\n * @param signedDelegate - The signedDelegate object in MPC format.\n * @returns The signedDelegate object in Relayer format.\n */\nexport function parseSignedDelegateForRelayer(\n signedDelegate: SignedDelegate\n): SignedDelegateRelayerFormat {\n return {\n delegate_action: {\n actions: signedDelegate.delegateAction.actions\n .map((action) => {\n if (action.functionCall) {\n return {\n FunctionCall: {\n method_name: action.functionCall.methodName,\n args: Buffer.from(action.functionCall.args).toString('base64'),\n gas: Number(action.functionCall.gas),\n deposit: action.functionCall.deposit.toString(),\n },\n }\n }\n return undefined\n })\n .flatMap((t) => (t ? [t] : [])),\n nonce: Number(signedDelegate.delegateAction.nonce),\n max_block_height: Number(signedDelegate.delegateAction.maxBlockHeight),\n public_key: signedDelegate.delegateAction.publicKey.toString(),\n receiver_id: signedDelegate.delegateAction.receiverId,\n sender_id: signedDelegate.delegateAction.senderId,\n },\n signature: `ed25519:${bs58.encode(signedDelegate.signature.data)}`,\n }\n}\n","import { type Account, Contract } from '@near-js/accounts'\nimport { KeyPair } from '@near-js/crypto'\nimport { actionCreators } from '@near-js/transactions'\nimport BN from 'bn.js'\nimport { base_decode } from 'near-api-js/lib/utils/serialize'\n\nimport { ChainSignatureContract as AbstractChainSignatureContract } from '@chains/ChainSignatureContract'\nimport type { SignArgs } from '@chains/ChainSignatureContract'\nimport type {\n RSVSignature,\n MPCSignature,\n UncompressedPubKeySEC1,\n} from '@chains/types'\nimport { cryptography, chains } from '@utils'\nimport { getNearAccount } from '@utils/chains/near/account'\nimport {\n DONT_CARE_ACCOUNT_ID,\n NEAR_MAX_GAS,\n} from '@utils/chains/near/constants'\nimport { parseSignedDelegateForRelayer } from '@utils/chains/near/relayer'\nimport {\n type NearNetworkIds,\n type ChainSignatureContractIds,\n} from '@utils/chains/near/types'\n\nconst najToUncompressedPubKey = (najPubKey: string): UncompressedPubKeySEC1 => {\n return `04${Buffer.from(base_decode(najPubKey.split(':')[1])).toString('hex')}`\n}\n\nconst requireAccount = (accountId: string): void => {\n if (accountId === DONT_CARE_ACCOUNT_ID) {\n throw new Error(\n 'A valid account ID and keypair are required for change methods. Please instantiate a new contract with valid credentials.'\n )\n }\n}\n\ntype NearContract = Contract & {\n public_key: () => Promise<string>\n sign: (args: {\n args: { request: SignArgs }\n gas: BN\n amount: BN\n }) => Promise<MPCSignature>\n experimental_signature_deposit: () => Promise<number>\n derived_public_key: (args: {\n path: string\n predecessor: string\n }) => Promise<string>\n}\n\ninterface ChainSignatureContractArgs {\n networkId: NearNetworkIds\n contractId: ChainSignatureContractIds\n accountId?: string\n keypair?: KeyPair\n}\n\n/**\n * This contract will default to view methods only.\n * If you want to use the change methods, you need to provide an account and keypair.\n */\nexport class ChainSignatureContract extends AbstractChainSignatureContract {\n private readonly networkId: NearNetworkIds\n private readonly contractId: ChainSignatureContractIds\n private readonly accountId: string\n private readonly keypair: KeyPair\n\n constructor({\n networkId,\n contractId,\n accountId = DONT_CARE_ACCOUNT_ID,\n keypair = KeyPair.fromRandom('ed25519'),\n }: ChainSignatureContractArgs) {\n super()\n\n this.networkId = networkId\n this.contractId = contractId\n this.accountId = accountId\n this.keypair = keypair\n }\n\n private async getContract(): Promise<NearContract> {\n const account = await getNearAccount({\n networkId: this.networkId,\n accountId: this.accountId,\n keypair: this.keypair,\n })\n\n return new Contract(account, this.contractId, {\n viewMethods: [\n 'public_key',\n 'experimental_signature_deposit',\n 'derived_public_key',\n ],\n changeMethods: ['sign'],\n useLocalViewExecution: false,\n }) as unknown as NearContract\n }\n\n async getCurrentSignatureDeposit(): Promise<BN> {\n const contract = await this.getContract()\n return new BN(\n (await contract.experimental_signature_deposit()).toLocaleString(\n 'fullwide',\n {\n useGrouping: false,\n }\n )\n )\n }\n\n async getDerivedPublicKey(args: {\n path: string\n predecessor: string\n }): Promise<UncompressedPubKeySEC1> {\n const contract = await this.getContract()\n\n const najPubKey = await contract.derived_public_key(args)\n return najToUncompressedPubKey(najPubKey)\n }\n\n async getPublicKey(): Promise<UncompressedPubKeySEC1> {\n const contract = await this.getContract()\n\n const najPubKey = await contract.public_key()\n return najToUncompressedPubKey(najPubKey)\n }\n\n async sign(args: SignArgs): Promise<RSVSignature> {\n requireAccount(this.accountId)\n\n const contract = await this.getContract()\n const deposit = await this.getCurrentSignatureDeposit()\n\n const signature = await contract.sign({\n args: { request: args },\n gas: NEAR_MAX_GAS,\n amount: deposit,\n })\n\n return cryptography.toRSV(signature)\n }\n\n static async signWithRelayer({\n account,\n contract,\n signArgs,\n deposit,\n relayerUrl,\n }: {\n account: Account\n contract: ChainSignatureContractIds\n signArgs: SignArgs\n deposit: BN\n relayerUrl: string\n }): Promise<RSVSignature> {\n const functionCall = actionCreators.functionCall(\n 'sign',\n { request: signArgs },\n BigInt(NEAR_MAX_GAS.toString()),\n BigInt(deposit.toString())\n )\n\n const signedDelegate = await account.signedDelegate({\n receiverId: contract,\n actions: [functionCall],\n blockHeightTtl: 60,\n })\n\n // Remove the cached access key to prevent nonce reuse\n delete account.accessKeyByPublicKeyCache[\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n signedDelegate.delegateAction.publicKey.toString()\n ]\n\n const res = await fetch(`${relayerUrl}/send_meta_tx_async`, {\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(parseSignedDelegateForRelayer(signedDelegate)),\n headers: new Headers({ 'Content-Type': 'application/json' }),\n })\n\n const txHash = await res.text()\n const txStatus = await account.connection.provider.txStatus(\n txHash,\n account.accountId,\n 'FINAL'\n )\n\n const signature = chains.near.transactionBuilder.responseToMpcSignature({\n response: txStatus,\n })\n\n if (!signature) {\n throw new Error('Signature error, please retry')\n }\n\n return signature\n }\n}\n","import type {\n Action,\n FinalExecutionOutcome,\n NetworkId,\n} from '@near-wallet-selector/core'\nimport BN from 'bn.js'\nimport { type ExecutionOutcomeWithId } from 'near-api-js/lib/providers'\n\nimport {\n type RSVSignature,\n type KeyDerivationPath,\n type MPCSignature,\n type MPCPayloads,\n} from '@chains/types'\nimport { cryptography } from '@utils'\nimport { ChainSignatureContract } from '@utils/chains/near/ChainSignatureContract'\nimport { NEAR_MAX_GAS } from '@utils/chains/near/constants'\nimport {\n type NFTKeysContracts,\n type ChainSignatureContractIds,\n} from '@utils/chains/near/types'\n\nexport const mpcPayloadsToChainSigTransaction = async ({\n networkId,\n contractId,\n mpcPayloads,\n path,\n}: {\n networkId: NetworkId\n contractId: ChainSignatureContractIds\n mpcPayloads: MPCPayloads\n path: KeyDerivationPath\n}): Promise<{\n receiverId: string\n actions: Action[]\n}> => {\n const contract = new ChainSignatureContract({\n networkId,\n contractId,\n })\n\n const currentContractFee = await contract.getCurrentSignatureDeposit()\n\n return {\n receiverId: contractId,\n actions: mpcPayloads.map((payload) => ({\n type: 'FunctionCall',\n params: {\n methodName: 'sign',\n args: {\n request: {\n payload: Array.from(payload),\n path,\n key_version: 0,\n },\n },\n gas: NEAR_MAX_GAS.div(new BN(mpcPayloads.length)).toString(),\n deposit: currentContractFee?.toString() || '1',\n },\n })),\n }\n}\n\nexport const mpcPayloadsToNFTKeysTransaction = async ({\n networkId,\n chainSigContract,\n nftKeysContract,\n mpcPayloads,\n path,\n tokenId,\n}: {\n networkId: NetworkId\n chainSigContract: ChainSignatureContractIds\n nftKeysContract: NFTKeysContracts\n mpcPayloads: MPCPayloads\n path: KeyDerivationPath\n tokenId: string\n}): Promise<{\n receiverId: string\n actions: Action[]\n}> => {\n const contract = new ChainSignatureContract({\n networkId,\n contractId: chainSigContract,\n })\n\n const currentContractFee = await contract.getCurrentSignatureDeposit()\n\n return {\n receiverId: nftKeysContract,\n actions: mpcPayloads.map((payload) => ({\n type: 'FunctionCall',\n params: {\n methodName: 'ckt_sign_hash',\n args: {\n token_id: tokenId,\n path,\n payload: Array.from(payload),\n },\n gas: NEAR_MAX_GAS.div(new BN(mpcPayloads.length)).toString(),\n deposit: currentContractFee?.toString() || '1',\n },\n })),\n }\n}\n\nexport const responseToMpcSignature = ({\n response,\n}: {\n response: FinalExecutionOutcome\n}): RSVSignature | undefined => {\n const signature: string = response.receipts_outcome.reduce<string>(\n (acc: string, curr: ExecutionOutcomeWithId) => {\n if (acc) {\n return acc\n }\n const { status } = curr.outcome\n return (\n (typeof status === 'object' &&\n status.SuccessValue &&\n status.SuccessValue !== '' &&\n Buffer.from(status.SuccessValue, 'base64').toString('utf-8')) ||\n ''\n )\n },\n ''\n )\n\n if (signature) {\n const parsedJSONSignature = JSON.parse(signature) as {\n Ok: MPCSignature\n }\n\n return cryptography.toRSV(parsedJSONSignature.Ok)\n } else {\n return undefined\n }\n}\n","import type {\n KeyDerivationPath,\n MPCPayloads,\n RSVSignature,\n} from '@chains/types'\n\nexport abstract class Chain<TransactionRequest, UnsignedTransaction> {\n /**\n * Gets the native token balance for a given address\n *\n * @param address - The address to check\n * @returns Promise resolving to the balance as a string, formatted according to the chain's decimal places (e.g. ETH, BTC, etc.)\n */\n abstract getBalance(address: string): Promise<string>\n\n /**\n * Uses Sig Network Key Derivation Function to derive the address and public key. from a signer ID and string path.\n *\n * @param predecessor - The id/address of the account requesting signature\n * @param path - The string path used to derive the key\n * @returns Promise resolving to the derived address and public key\n */\n abstract deriveAddressAndPublicKey(\n predecessor: string,\n path: KeyDerivationPath\n ): Promise<{\n address: string\n publicKey: string\n }>\n\n /**\n * Stores an unsigned transaction in local storage for later use.\n * Particularly useful for browser-based wallets that redirects the user to a different page.\n *\n * @param transaction - The unsigned transaction to store\n * @param storageKey - Unique key to identify the stored transaction\n */\n abstract setTransaction(\n transaction: UnsignedTransaction,\n storageKey: string\n ): void\n\n /**\n * Retrieves a previously stored transaction from local storage.\n *\n * @param storageKey - The key used to store the transaction\n * @param options - Additional options\n * @param options.remove - If true, removes the transaction from storage after retrieval\n * @returns The stored transaction or undefined if not found\n */\n abstract getTransaction(\n storageKey: string,\n options?: {\n remove?: boolean\n }\n ): UnsignedTransaction | undefined\n\n /**\n * Prepares a transaction for Sig Network MPC signing by creating the necessary payloads.\n * This method handles chain-specific transaction preparation including:\n * - Fee calculation\n * - Nonce/sequence management\n * - UTXO selection (for UTXO-based chains)\n * - Transaction encoding\n *\n * @param transactionRequest - The transaction request containing parameters like recipient, amount, etc.\n * @returns Promise resolving to an object containing:\n * - transaction: The unsigned transaction\n * - mpcPayloads: Array of payloads to be signed by MPC. The order of these payloads must match\n * the order of signatures provided to addSignature()\n */\n abstract getMPCPayloadAndTransaction(\n transactionRequest: TransactionRequest\n ): Promise<{\n transaction: UnsignedTransaction\n mpcPayloads: MPCPayloads\n }>\n\n /**\n * Adds Sig Network MPC-generated signatures to an unsigned transaction.\n *\n * @param params - Parameters for adding signatures\n * @param params.transaction - The unsigned transaction to add signatures to\n * @param params.mpcSignatures - Array of RSV signatures generated through MPC. Must be in the same order\n * as the payloads returned by getMPCPayloadAndTransaction()\n * @returns The serialized signed transaction ready for broadcast\n */\n abstract addSignature(params: {\n transaction: UnsignedTransaction\n mpcSignatures: RSVSignature[]\n }): string\n\n /**\n * Broadcasts a signed transaction to the network.\n *\n * @param txSerialized - The serialized signed transaction\n * @returns Promise resolving to the transaction hash/ID\n */\n abstract broadcastTx(txSerialized: string): Promise<string>\n}\n","import { ethers } from 'ethers'\n\nexport async function fetchEVMFeeProperties(\n providerUrl: string,\n transaction: ethers.TransactionLike\n): Promise<{\n gasLimit: bigint\n maxFeePerGas: bigint\n maxPriorityFeePerGas: bigint\n maxFee: bigint\n}> {\n const provider = new ethers.JsonRpcProvider(providerUrl)\n const gasLimit = await provider.estimateGas(transaction)\n const feeData = await provider.getFeeData()\n\n const maxFeePerGas = feeData.maxFeePerGas ?? ethers.parseUnits('10', 'gwei')\n const maxPriorityFeePerGas =\n feeData.maxPriorityFeePerGas ?? ethers.parseUnits('10', 'gwei')\n\n return {\n gasLimit,\n maxFeePerGas,\n maxPriorityFeePerGas,\n maxFee: maxFeePerGas * gasLimit,\n }\n}\n","import { fromHex } from '@cosmjs/encoding'\nimport { ethers, keccak256 } from 'ethers'\n\nimport { Chain } from '@chains/Chain'\nimport type { BaseChainSignatureContract } from '@chains/ChainSignatureContract'\nimport type {\n EVMTransactionRequest,\n EVMUnsignedTransaction,\n} from '@chains/EVM/types'\nimport { fetchEVMFeeProperties } from '@chains/EVM/utils'\nimport type {\n MPCPayloads,\n RSVSignature,\n KeyDerivationPath,\n} from '@chains/types'\n\n/**\n * Implementation of the Chain interface for EVM-compatible networks.\n * Handles interactions with Ethereum Virtual Machine based blockchains like Ethereum, BSC, Polygon, etc.\n */\nexport class EVM extends Chain<EVMTransactionRequest, EVMUnsignedTransaction> {\n private readonly provider: ethers.JsonRpcProvider\n private readonly contract: BaseChainSignatureContract\n\n /**\n * Creates a new EVM chain instance\n * @param params - Configuration parameters\n * @param params.rpcUrl - URL of the EVM JSON-RPC provider (e.g., Infura endpoint)\n * @param params.contract - Instance of the chain signature contract for MPC operations\n */\n constructor({\n rpcUrl,\n contract,\n }: {\n rpcUrl: string\n contract: BaseChainSignatureContract\n }) {\n super()\n\n this.contract = contract\n this.provider = new ethers.JsonRpcProvider(rpcUrl)\n }\n\n private async attachGasAndNonce(\n transaction: EVMTransactionRequest\n ): Promise<EVMUnsignedTransaction> {\n const fees = await fetchEVMFeeProperties(\n this.provider._getConnection().url,\n transaction\n )\n const nonce = await this.provider.getTransactionCount(\n transaction.from,\n 'latest'\n )\n\n const { from, ...rest } = transaction\n\n return {\n ...fees,\n chainId: this.provider._network.chainId,\n nonce,\n type: 2,\n ...rest,\n }\n }\n\n private parseSignature(signature: RSVSignature): ethers.SignatureLike {\n return ethers.Signature.from({\n r: `0x${signature.r}`,\n s: `0x${signature.s}`,\n v: signature.v,\n })\n }\n\n async deriveAddressAndPublicKey(\n predecessor: string,\n path: KeyDerivationPath\n ): Promise<{\n address: string\n publicKey: string\n }> {\n const uncompressedPubKey = await this.contract.getDerivedPublicKey({\n path,\n predecessor,\n })\n\n if (!uncompressedPubKey) {\n throw new Error('Failed to get derived public key')\n }\n\n const publicKeyNoPrefix = uncompressedPubKey.startsWith('04')\n ? uncompressedPubKey.substring(2)\n : uncompressedPubKey\n\n const hash = ethers.keccak256(fromHex(publicKeyNoPrefix))\n\n return {\n address: `0x${hash.substring(hash.length - 40)}`,\n publicKey: uncompressedPubKey,\n }\n }\n\n async getBalance(address: string): Promise<string> {\n try {\n const balance = await this.provider.getBalance(address)\n return ethers.formatEther(balance)\n } catch (error) {\n console.error(`Failed to fetch balance for address ${address}:`, error)\n throw new Error('Failed to fetch balance.')\n }\n }\n\n setTransaction(\n transaction: EVMUnsignedTransaction,\n storageKey: string\n ): void {\n const serializedTransaction = JSON.stringify(transaction, (_, value) =>\n typeof value === 'bigint' ? value.toString() : value\n )\n window.localStorage.setItem(storageKey, serializedTransaction)\n }\n\n getTransaction(\n storageKey: string,\n options?: {\n remove?: boolean\n }\n ): EVMUnsignedTransaction | undefined {\n const txSerialized = window.localStorage.getItem(storageKey)\n if (options?.remove) {\n window.localStorage.removeItem(storageKey)\n }\n return txSerialized ? JSON.parse(txSerialized) : undefined\n }\n\n async getMPCPayloadAndTransaction(\n transactionRequest: EVMTransactionRequest\n ): Promise<{\n transaction: EVMUnsignedTransaction\n mpcPayloads: MPCPayloads\n }> {\n const transaction = await this.attachGasAndNonce(transactionRequest)\n const txSerialized = ethers.Transaction.from(transaction).unsignedSerialized\n const transactionHash = keccak256(txSerialized)\n const txHash = Array.from(ethers.getBytes(transactionHash))\n\n return {\n transaction,\n mpcPayloads: [txHash],\n }\n }\n\n addSignature({\n transaction,\n mpcSignatures,\n }: {\n transaction: EVMUnsignedTransaction\n mpcSignatures: RSVSignature[]\n }): string {\n return ethers.Transaction.from({\n ...transaction,\n signature: this.parseSignature(mpcSignatures[0]),\n }).serialized\n }\n\n async broadcastTx(txSerialized: string): Promise<string> {\n try {\n const txResponse = await this.provider.broadcastTransaction(txSerialized)\n return txResponse.hash\n } catch (error) {\n console.error('Transaction broadcast failed:', error)\n throw new Error('Failed to broadcast transaction.')\n }\n }\n}\n","import * as bitcoin from 'bitcoinjs-lib'\n\nexport function parseBTCNetwork(network: string): bitcoin.networks.Network {\n switch (network.toLowerCase()) {\n case 'mainnet':\n return bitcoin.networks.bitcoin\n case 'testnet':\n return bitcoin.networks.testnet\n case 'regtest':\n return bitcoin.networks.regtest\n default:\n throw new Error(`Unknown Bitcoin network: ${network}`)\n }\n}\n","import * as bitcoin from 'bitcoinjs-lib'\n\nimport { type BTCRpcAdapter } from '@chains/Bitcoin/BTCRpcAdapter'\nimport type {\n BTCInput,\n BTCNetworkIds,\n BTCOutput,\n BTCTransactionRequest,\n BTCUnsignedTransaction,\n} from '@chains/Bitcoin/types'\nimport { parseBTCNetwork } from '@chains/Bitcoin/utils'\nimport { Chain } from '@chains/Chain'\nimport type { BaseChainSignatureContract } from '@chains/ChainSignatureContract'\nimport type {\n MPCPayloads,\n RSVSignature,\n KeyDerivationPath,\n} from '@chains/types'\nimport { cryptography } from '@utils'\n\n/**\n * Implementation of the Chain interface for Bitcoin network.\n * Handles interactions with both Bitcoin mainnet and testnet, supporting P2WPKH transactions.\n */\nexport class Bitcoin extends Chain<\n BTCTransactionRequest,\n BTCUnsignedTransaction\n> {\n private static readonly SATOSHIS_PER_BTC = 100_000_000\n\n private readonly network: BTCNetworkIds\n private readonly btcRpcAdapter: BTCRpcAdapter\n private readonly contract: BaseChainSignatureContract\n\n /**\n * Creates a new Bitcoin chain instance\n * @param params - Configuration parameters\n * @param params.network - Network identifier (mainnet/testnet)\n * @param params.contract - Instance of the chain signature contract for MPC operations\n * @param params.btcRpcAdapter - Bitcoin RPC adapter for network interactions\n */\n constructor({\n network,\n contract,\n btcRpcAdapter,\n }: {\n network: BTCNetworkIds\n contract: BaseChainSignatureContract\n btcRpcAdapter: BTCRpcAdapter\n }) {\n super()\n\n this.network = network\n this.btcRpcAdapter = btcRpcAdapter\n this.contract = contract\n }\n\n /**\n * Converts satoshis to BTC\n * @param satoshis - Amount in satoshis\n * @returns Amount in BTC\n */\n static toBTC(satoshis: number): number {\n return satoshis / Bitcoin.SATOSHIS_PER_BTC\n }\n\n /**\n * Converts BTC to satoshis\n * @param btc - Amount in BTC\n * @returns Amount in satoshis (rounded)\n */\n static toSatoshi(btc: number): number {\n return Math.round(btc * Bitcoin.SATOSHIS_PER_BTC)\n }\n\n private async fetchTransaction(\n transactionId: string\n ): Promise<bitcoin.Transaction> {\n const data = await this.btcRpcAdapter.getTransaction(transactionId)\n const tx = new bitcoin.Transaction()\n\n data.vout.forEach((vout) => {\n const scriptPubKey = Buffer.from(vout.scriptpubkey, 'hex')\n tx.addOutput(scriptPubKey, Number(vout.value))\n })\n\n return tx\n }\n\n private static parseRSVSignature(signature: RSVSignature): Buffer {\n const r = signature.r.padStart(64, '0')\n const s = signature.s.padStart(64, '0')\n\n const rawSignature = Buffer.from(r + s, 'hex')\n\n if (rawSignature.length !== 64) {\n throw new Error('Invalid signature length.')\n }\n\n return rawSignature\n }\n\n /**\n * Creates a Partially Signed Bitcoin Transaction (PSBT)\n * @param params - Parameters for creating the PSBT\n * @param params.transactionRequest - Transaction request containing inputs and outputs\n * @returns Created PSBT instance\n */\n async createPSBT({\n transactionRequest,\n }: {\n transactionRequest: BTCTransactionRequest\n }): Promise<bitcoin.Psbt> {\n const { inputs, outputs } =\n transactionRequest.inputs && transactionRequest.outputs\n ? transactionRequest\n : await this.btcRpcAdapter.selectUTXOs(transactionRequest.from, [\n {\n address: transactionRequest.to,\n value: parseFloat(transactionRequest.value),\n },\n ])\n\n const psbt = new bitcoin.Psbt({ network: parseBTCNetwork(this.network) })\n\n await Promise.all(\n inputs.map(async (input: BTCInput) => {\n if (!input.scriptPubKey) {\n const transaction = await this.fetchTransaction(input.txid)\n const prevOut = transaction.outs[input.vout]\n input.scriptPubKey = prevOut.script\n }\n\n // Prepare the input as P2WPKH\n psbt.addInput({\n hash: input.txid,\n index: input.vout,\n witnessUtxo: {\n script: input.scriptPubKey,\n value: input.value,\n },\n })\n })\n )\n\n outputs.forEach((out: BTCOutput) => {\n if (out.address) {\n psbt.addOutput({\n address: out.address,\n value: out.value,\n })\n } else if (out.script) {\n psbt.addOutput({\n script: out.script,\n value: out.value,\n })\n }\n })\n\n return psbt\n }\n\n async getBalance(address: string): Promise<string> {\n const balance = await this.btcRpcAdapter.getBalance(address)\n return Bitcoin.toBTC(balance).toString()\n }\n\n async deriveAddressAndPublicKey(\n predecessor: string,\n path: KeyDerivationPath\n ): Promise<{ address: string; publicKey: string }> {\n const uncompressedPubKey = await this.contract.getDerivedPublicKey({\n path,\n predecessor,\n })\n\n if (!uncompressedPubKey) {\n throw new Error('Failed to get derived public key')\n }\n\n const derivedKey = cryptography.compressPubKey(uncompressedPubKey)\n const publicKeyBuffer = Buffer.from(derivedKey, 'hex')\n const network = parseBTCNetwork(this.network)\n\n const payment = bitcoin.payments.p2wpkh({\n pubkey: publicKeyBuffer,\n network,\n })\n\n const { address } = payment\n\n if (!address) {\n throw new Error('Failed to generate Bitcoin address')\n }\n\n return { address, publicKey: derivedKey }\n }\n\n setTransaction(\n transaction: BTCUnsignedTransaction,\n storageKey: string\n ): void {\n window.localStorage.setItem(\n storageKey,\n JSON.stringify({\n psbt: transaction.psbt.toHex(),\n publicKey: transaction.publicKey,\n })\n )\n }\n\n getTransaction(\n storageKey: string,\n options?: {\n remove?: boolean\n }\n ): BTCUnsignedTransaction | undefined {\n const txSerialized = window.localStorage.getItem(storageKey)\n if (!txSerialized) return undefined\n\n if (options?.remove) {\n window.localStorage.removeItem(storageKey)\n }\n\n const transactionJSON = JSON.parse(txSerialized)\n return {\n psbt: bitcoin.Psbt.fromHex(transactionJSON.psbt as string),\n publicKey: transactionJSON.publicKey,\n }\n }\n\n async getMPCPayloadAndTransaction(\n transactionRequest: BTCTransactionRequest\n ): Promise<{\n transaction: BTCUnsignedTransaction\n mpcPayloads: MPCPayloads\n }> {\n const publicKeyBuffer = Buffer.from(transactionRequest.publicKey, 'hex')\n const psbt = await this.createPSBT({\n transactionRequest,\n })\n\n // We can't double sign a PSBT, therefore we serialize the payload before to return it\n const psbtHex = psbt.toHex()\n\n const mpcPayloads: MPCPayloads = []\n\n const mockKeyPair = (index: number): bitcoin.Signer => ({\n publicKey: publicKeyBuffer,\n sign: (hash: Buffer): Buffer => {\n mpcPayloads[index] = Array.from(hash)\n // Return dummy signature to satisfy the interface\n return Buffer.alloc(64)\n },\n })\n\n for (let index = 0; index < psbt.inputCount; index++) {\n psbt.signInput(index, mockKeyPair(index))\n }\n\n return {\n transaction: {\n psbt: bitcoin.Psbt.fromHex(psbtHex),\n publicKey: transactionRequest.publicKey,\n },\n mpcPayloads,\n }\n }\n\n addSignature({\n transaction: { psbt, publicKey },\n mpcSignatures,\n }: {\n transaction: BTCUnsignedTransaction\n mpcSignatures: RSVSignature[]\n }): string {\n const publicKeyBuffer = Buffer.from(publicKey, 'hex')\n\n const keyPair = (index: number): bitcoin.Signer => ({\n publicKey: publicKeyBuffer,\n sign: () => {\n const mpcSignature = mpcSignatures[index]\n return Bitcoin.parseRSVSignature(mpcSignature)\n },\n })\n\n for (let index = 0; index < psbt.inputCount; index++) {\n psbt.signInput(index, keyPair(index))\n }\n\n psbt.finalizeAllInputs()\n return psbt.extractTransaction().toHex()\n }\n\n async broadcastTx(txSerialized: string): Promise<string> {\n return await this.btcRpcAdapter.broadcastTransaction(txSerialized)\n }\n}\n","import type { BTCTransaction, BTCInput, BTCOutput } from '@chains/Bitcoin/types'\n\nexport abstract class BTCRpcAdapter {\n abstract selectUTXOs(\n from: string,\n targets: BTCOutput[]\n ): Promise<{ inputs: BTCInput[]; outputs: BTCOutput[] }>\n abstract broadcastTransaction(transactionHex: string): Promise<string>\n abstract getBalance(address: string): Promise<number>\n abstract getTransaction(txid: string): Promise<BTCTransaction>\n}\n","// There is no types for coinselect\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-expect-error\nimport coinselect from 'coinselect'\n\nimport { BTCRpcAdapter } from '@chains/Bitcoin/BTCRpcAdapter/BTCRpcAdapter'\nimport {\n type BTCFeeRecommendation,\n type UTXO,\n} from '@chains/Bitcoin/BTCRpcAdapter/Mempool/types'\nimport type { BTCTransaction, BTCInput, BTCOutput } from '@chains/Bitcoin/types'\n\nexport class Mempool extends BTCRpcAdapter {\n private readonly providerUrl: string\n\n constructor(providerUrl: string) {\n super()\n this.providerUrl = providerUrl\n }\n\n private async fetchFeeRate(confirmationTarget = 6): Promise<number> {\n const response = await fetch(`${this.providerUrl}/v1/fees/recommended`)\n const data = (await response.json()) as BTCFeeRecommendation\n\n if (confirmationTarget <= 1) {\n return data.fastestFee\n } else if (confirmationTarget <= 3) {\n return data.halfHourFee\n } else if (confirmationTarget <= 6) {\n return data.hourFee\n } else {\n return data.economyFee\n }\n }\n\n private async fetchUTXOs(address: string): Promise<UTXO[]> {\n try {\n const response = await fetch(\n `${this.providerUrl}/address/${address}/utxo`\n )\n return (await response.json()) as UTXO[]\n } catch (error) {\n console.error('Failed to fetch UTXOs:', error)\n return []\n }\n }\n\n async selectUTXOs(\n from: string,\n targets: BTCOutput[],\n confirmationTarget = 6\n ): Promise<{ inputs: BTCInput[]; outputs: BTCOutput[] }> {\n const utxos = await this.fetchUTXOs(from)\n const feeRate = await this.fetchFeeRate(confirmationTarget)\n\n // Add a small amount to the fee rate to ensure the transaction is confirmed\n const ret = coinselect(utxos, targets, Math.ceil(feeRate + 1))\n\n if (!ret.inputs || !ret.outputs) {\n throw new Error(\n 'Invalid transaction: coinselect failed to find a suitable set of inputs and outputs. This could be due to insufficient funds, or no inputs being available that meet the criteria.'\n )\n }\n\n return {\n inputs: ret.inputs,\n outputs: ret.outputs,\n }\n }\n\n async broadcastTransaction(transactionHex: string): Promise<string> {\n const response = await fetch(`${this.providerUrl}/tx`, {\n method: 'POST',\n body: transactionHex,\n })\n\n if (response.ok) {\n return await response.text()\n }\n\n throw new Error(`Failed to broadcast transaction: ${await response.text()}`)\n }\n\n async getBalance(address: string): Promise<number> {\n const response = await fetch(`${this.providerUrl}/address/${address}`)\n const data = (await response.json()) as {\n chain_stats: { funded_txo_sum: number; spent_txo_sum: number }\n }\n return data.chain_stats.funded_txo_sum - data.chain_stats.spent_txo_sum\n }\n\n async getTransaction(txid: string): Promise<BTCTransaction> {\n const response = await fetch(`${this.providerUrl}/tx/${txid}`)\n return (await response.json()) as BTCTransaction\n }\n}\n","import { Mempool } from './Mempool'\nexport { BTCRpcAdapter } from './BTCRpcAdapter'\n\nexport const BTCRpcAdapters = {\n Mempool,\n}\n","/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utf8Write = exports.utf8Read = exports.utf8Length = void 0;\n/**\n * Calculates the UTF8 byte length of a string.\n * @param {string} string String\n * @returns {number} Byte length\n */\nfunction utf8Length(str) {\n let len = 0, c = 0;\n for (let i = 0; i < str.length; ++i) {\n c = str.charCodeAt(i);\n if (c < 128)\n len += 1;\n else if (c < 2048)\n len += 2;\n else if ((c & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n ++i;\n len += 4;\n }\n else\n len += 3;\n }\n return len;\n}\nexports.utf8Length = utf8Length;\n/**\n * Reads UTF8 bytes as a string.\n * @param {Uint8Array} buffer Source buffer\n * @param {number} start Source start\n * @param {number} end Source end\n * @returns {string} String read\n */\nfunction utf8Read(buffer, start, end) {\n const len = end - start;\n if (len < 1)\n return \"\";\n const chunk = [];\n let parts = [], i = 0, // char offset\n t; // temporary\n while (start < end) {\n t = buffer[start++];\n if (t < 128)\n chunk[i++] = t;\n else if (t > 191 && t < 224)\n chunk[i++] = ((t & 31) << 6) | (buffer[start++] & 63);\n else if (t > 239 && t < 365) {\n t =\n (((t & 7) << 18) |\n ((buffer[start++] & 63) << 12) |\n ((buffer[start++] & 63) << 6) |\n (buffer[start++] & 63)) -\n 0x10000;\n chunk[i++] = 0xd800 + (t >> 10);\n chunk[i++] = 0xdc00 + (t & 1023);\n }\n else\n chunk[i++] = ((t & 15) << 12) | ((buffer[start++] & 63) << 6) | (buffer[start++] & 63);\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode(...chunk));\n i = 0;\n }\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode(...chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode(...chunk.slice(0, i));\n}\nexports.utf8Read = utf8Read;\n/**\n * Writes a string as UTF8 bytes.\n * @param {string} string Source string\n * @param {Uint8Array} buffer Destination buffer\n * @param {number} offset Destination offset\n * @returns {number} Bytes written\n */\nfunction utf8Write(str, buffer, offset) {\n const start = offset;\n let c1, // character 1\n c2; // character 2\n for (let i = 0; i < str.length; ++i) {\n c1 = str.charCodeAt(i);\n if (c1 < 128) {\n buffer[offset++] = c1;\n }\n else if (c1 < 2048) {\n buffer[offset++] = (c1 >> 6) | 192;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else if ((c1 & 0xfc00) === 0xd800 && ((c2 = str.charCodeAt(i + 1)) & 0xfc00) === 0xdc00) {\n c1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff);\n ++i;\n buffer[offset++] = (c1 >> 18) | 240;\n buffer[offset++] = ((c1 >> 12) & 63) | 128;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else {\n buffer[offset++] = (c1 >> 12) | 224;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n }\n return offset - start;\n}\nexports.utf8Write = utf8Write;\n//# sourceMappingURL=utf8.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeByte = exports.writeFixed32 = exports.int64Length = exports.writeVarint64 = exports.writeVarint32 = exports.readInt32 = exports.readUInt32 = exports.zzDecode = exports.zzEncode = exports.varint32read = exports.varint32write = exports.uInt64ToString = exports.int64ToString = exports.int64FromString = exports.varint64write = exports.varint64read = void 0;\n// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\nexports.varint64read = varint64read;\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\nexports.varint64write = varint64write;\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\nexports.int64FromString = int64FromString;\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\nexports.int64ToString = int64ToString;\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA);\n}\nexports.uInt64ToString = uInt64ToString;\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\nexports.varint32write = varint32write;\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\nexports.varint32read = varint32read;\n/**\n * encode zig zag\n */\nfunction zzEncode(lo, hi) {\n let mask = hi >> 31;\n hi = (((hi << 1) | (lo >>> 31)) ^ mask) >>> 0;\n lo = ((lo << 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzEncode = zzEncode;\n/**\n * decode zig zag\n */\nfunction zzDecode(lo, hi) {\n let mask = -(lo & 1);\n lo = (((lo >>> 1) | (hi << 31)) ^ mask) >>> 0;\n hi = ((hi >>> 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzDecode = zzDecode;\n/**\n * unsigned int32 without moving pos.\n */\nfunction readUInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + buf[pos + 3] * 0x1000000;\n}\nexports.readUInt32 = readUInt32;\n/**\n * signed int32 without moving pos.\n */\nfunction readInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + (buf[pos + 3] << 24);\n}\nexports.readInt32 = readInt32;\n/**\n * writing varint32 to pos\n */\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = (val & 127) | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\nexports.writeVarint32 = writeVarint32;\n/**\n * writing varint64 to pos\n */\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = ((val.lo >>> 7) | (val.hi << 25)) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\nexports.writeVarint64 = writeVarint64;\nfunction int64Length(lo, hi) {\n let part0 = lo, part1 = ((lo >>> 28) | (hi << 4)) >>> 0, part2 = hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128\n ? 1\n : 2\n : part0 < 2097152\n ? 3\n : 4\n : part1 < 16384\n ? part1 < 128\n ? 5\n : 6\n : part1 < 2097152\n ? 7\n : 8\n : part2 < 128\n ? 9\n : 10;\n}\nexports.int64Length = int64Length;\nfunction writeFixed32(val, buf, pos) {\n buf[pos] = val & 255;\n buf[pos + 1] = (val >>> 8) & 255;\n buf[pos + 2] = (val >>> 16) & 255;\n buf[pos + 3] = val >>> 24;\n}\nexports.writeFixed32 = writeFixed32;\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\nexports.writeByte = writeByte;\n//# sourceMappingURL=varint.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryWriter = exports.BinaryReader = exports.WireType = void 0;\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// ---\n// Code generated by the command line utilities is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\nconst utf8_1 = require(\"./utf8\");\nconst varint_1 = require(\"./varint\");\nvar WireType;\n(function (WireType) {\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n WireType[WireType[\"Fixed64\"] = 1] = \"Fixed64\";\n WireType[WireType[\"Bytes\"] = 2] = \"Bytes\";\n WireType[WireType[\"Fixed32\"] = 5] = \"Fixed32\";\n})(WireType || (exports.WireType = WireType = {}));\nclass BinaryReader {\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n constructor(buf) {\n this.buf = buf ? new Uint8Array(buf) : new Uint8Array(0);\n this.pos = 0;\n this.type = 0;\n this.len = this.buf.length;\n }\n tag() {\n const tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType, tag];\n }\n skip(length) {\n if (typeof length === \"number\") {\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n }\n else {\n do {\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n }\n skipType(wireType) {\n switch (wireType) {\n case WireType.Varint:\n this.skip();\n break;\n case WireType.Fixed64:\n this.skip(8);\n break;\n case WireType.Bytes:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case WireType.Fixed32:\n this.skip(4);\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n }\n uint32() {\n return varint_1.varint32read.bind(this)();\n }\n int32() {\n return this.uint32() | 0;\n }\n sint32() {\n const num = this.uint32();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n }\n fixed32() {\n const val = (0, varint_1.readUInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n sfixed32() {\n const val = (0, varint_1.readInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n int64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n uint64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sint64() {\n let [lo, hi] = varint_1.varint64read.bind(this)();\n // zig zag\n [lo, hi] = (0, varint_1.zzDecode)(lo, hi);\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n fixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sfixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n float() {\n throw new Error(\"float not supported\");\n }\n double() {\n throw new Error(\"double not supported\");\n }\n bool() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return lo !== 0 || hi !== 0;\n }\n bytes() {\n const len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n string() {\n const bytes = this.bytes();\n return (0, utf8_1.utf8Read)(bytes, 0, bytes.length);\n }\n}\nexports.BinaryReader = BinaryReader;\nclass Op {\n constructor(fn, len, val) {\n this.fn = fn;\n this.len = len;\n this.val = val;\n }\n proceed(buf, pos) {\n if (this.fn) {\n this.fn(this.val, buf, pos);\n }\n }\n}\nclass State {\n constructor(writer) {\n this.head = writer.head;\n this.tail = writer.tail;\n this.len = writer.len;\n this.next = writer.states;\n }\n}\nclass BinaryWriter {\n constructor() {\n this.len = 0;\n // uint64 is the same with int64\n this.uint64 = BinaryWriter.prototype.int64;\n // sfixed64 is the same with fixed64\n this.sfixed64 = BinaryWriter.prototype.fixed64;\n // sfixed32 is the same with fixed32\n this.sfixed32 = BinaryWriter.prototype.fixed32;\n this.head = new Op(null, 0, 0);\n this.tail = this.head;\n this.states = null;\n }\n static create() {\n return new BinaryWriter();\n }\n static alloc(size) {\n if (typeof Uint8Array !== \"undefined\") {\n return pool((size) => new Uint8Array(size), Uint8Array.prototype.subarray)(size);\n }\n else {\n return new Array(size);\n }\n }\n _push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n }\n finish() {\n let head = this.head.next, pos = 0;\n const buf = BinaryWriter.alloc(this.len);\n while (head) {\n head.proceed(buf, pos);\n pos += head.len;\n head = head.next;\n }\n return buf;\n }\n fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n return this;\n }\n reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n }\n else {\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n }\n return this;\n }\n ldelim() {\n const head = this.head, tail = this.tail, len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n }\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n uint32(value) {\n this.len += (this.tail = this.tail.next =\n new Op(varint_1.writeVarint32, (value = value >>> 0) < 128 ? 1 : value < 16384 ? 2 : value < 2097152 ? 3 : value < 268435456 ? 4 : 5, value)).len;\n return this;\n }\n int32(value) {\n return value < 0\n ? this._push(varint_1.writeVarint64, 10, (0, varint_1.int64FromString)(value.toString())) // 10 bytes per spec\n : this.uint32(value);\n }\n sint32(value) {\n return this.uint32(((value << 1) ^ (value >> 31)) >>> 0);\n }\n int64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n sint64(value) {\n let { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n // zig zag\n [lo, hi] = (0, varint_1.zzEncode)(lo, hi);\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n fixed64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeFixed32, 4, lo)._push(varint_1.writeFixed32, 4, hi);\n }\n bool(value) {\n return this._push(varint_1.writeByte, 1, value ? 1 : 0);\n }\n fixed32(value) {\n return this._push(varint_1.writeFixed32, 4, value >>> 0);\n }\n float(value) {\n throw new Error(\"float not supported\" + value);\n }\n double(value) {\n throw new Error(\"double not supported\" + value);\n }\n bytes(value) {\n const len = value.length >>> 0;\n if (!len)\n return this._push(varint_1.writeByte, 1, 0);\n return this.uint32(len)._push(writeBytes, len, value);\n }\n string(value) {\n const len = (0, utf8_1.utf8Length)(value);\n return len ? this.uint32(len)._push(utf8_1.utf8Write, len, value) : this._push(varint_1.writeByte, 1, 0);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction writeBytes(val, buf, pos) {\n if (typeof Uint8Array !== \"undefined\") {\n buf.set(val, pos);\n }\n else {\n for (let i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n }\n}\nfunction pool(alloc, slice, size) {\n const SIZE = size || 8192;\n const MAX = SIZE >>> 1;\n let slab = null;\n let offset = SIZE;\n return function pool_alloc(size) {\n if (size < 1 || size > MAX)\n return alloc(size);\n if (offset + size > SIZE) {\n slab = alloc(SIZE);\n offset = 0;\n }\n const buf = slice.call(slab, offset, (offset += size));\n if (offset & 7)\n // align to 32 bit\n offset = (offset | 7) + 1;\n return buf;\n };\n}\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n//# sourceMappingURL=binary.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromJsonTimestamp = exports.fromTimestamp = exports.toTimestamp = exports.setPaginationParams = exports.isObject = exports.isSet = exports.fromDuration = exports.toDuration = exports.omitDefault = exports.base64FromBytes = exports.bytesFromBase64 = void 0;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nexports.bytesFromBase64 = bytesFromBase64;\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(String.fromCharCode(byte));\n });\n return btoa(bin.join(\"\"));\n}\nexports.base64FromBytes = base64FromBytes;\nfunction omitDefault(input) {\n if (typeof input === \"string\") {\n return input === \"\" ? undefined : input;\n }\n if (typeof input === \"number\") {\n return input === 0 ? undefined : input;\n }\n if (typeof input === \"bigint\") {\n return input === BigInt(0) ? undefined : input;\n }\n throw new Error(`Got unsupported type ${typeof input}`);\n}\nexports.omitDefault = omitDefault;\nfunction toDuration(duration) {\n return {\n seconds: BigInt(Math.floor(parseInt(duration) / 1000000000)),\n nanos: parseInt(duration) % 1000000000,\n };\n}\nexports.toDuration = toDuration;\nfunction fromDuration(duration) {\n return (parseInt(duration.seconds.toString()) * 1000000000 + duration.nanos).toString();\n}\nexports.fromDuration = fromDuration;\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\nexports.isSet = isSet;\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\nexports.isObject = isObject;\nconst setPaginationParams = (options, pagination) => {\n if (!pagination) {\n return options;\n }\n if (typeof pagination?.countTotal !== \"undefined\") {\n options.params[\"pagination.count_total\"] = pagination.countTotal;\n }\n if (typeof pagination?.key !== \"undefined\") {\n // String to Uint8Array\n // let uint8arr = new Uint8Array(Buffer.from(data,'base64'));\n // Uint8Array to String\n options.params[\"pagination.key\"] = Buffer.from(pagination.key).toString(\"base64\");\n }\n if (typeof pagination?.limit !== \"undefined\") {\n options.params[\"pagination.limit\"] = pagination.limit.toString();\n }\n if (typeof pagination?.offset !== \"undefined\") {\n options.params[\"pagination.offset\"] = pagination.offset.toString();\n }\n if (typeof pagination?.reverse !== \"undefined\") {\n options.params[\"pagination.reverse\"] = pagination.reverse;\n }\n return options;\n};\nexports.setPaginationParams = setPaginationParams;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return {\n seconds,\n nanos,\n };\n}\nexports.toTimestamp = toTimestamp;\nfunction fromTimestamp(t) {\n let millis = Number(t.seconds) * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nexports.fromTimestamp = fromTimestamp;\nconst timestampFromJSON = (object) => {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0),\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n };\n};\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestampFromJSON(o);\n }\n}\nexports.fromJsonTimestamp = fromJsonTimestamp;\nfunction numberToLong(number) {\n return BigInt(Math.trunc(number));\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nfunction createBaseMultiSignature() {\n return {\n signatures: [],\n };\n}\nexports.MultiSignature = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.MultiSignature\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMultiSignature();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMultiSignature();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMultiSignature();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseCompactBitArray() {\n return {\n extraBitsStored: 0,\n elems: new Uint8Array(),\n };\n}\nexports.CompactBitArray = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.CompactBitArray\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompactBitArray();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompactBitArray();\n if ((0, helpers_1.isSet)(object.extraBitsStored))\n obj.extraBitsStored = Number(object.extraBitsStored);\n if ((0, helpers_1.isSet)(object.elems))\n obj.elems = (0, helpers_1.bytesFromBase64)(object.elems);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored));\n message.elems !== undefined &&\n (obj.elems = (0, helpers_1.base64FromBytes)(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompactBitArray();\n message.extraBitsStored = object.extraBitsStored ?? 0;\n message.elems = object.elems ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseAny() {\n return {\n typeUrl: \"\",\n value: new Uint8Array(),\n };\n}\nexports.Any = {\n typeUrl: \"/google.protobuf.Any\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAny();\n if ((0, helpers_1.isSet)(object.typeUrl))\n obj.typeUrl = String(object.typeUrl);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAny();\n message.typeUrl = object.typeUrl ?? \"\";\n message.value = object.value ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=any.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst multisig_1 = require(\"../../../crypto/multisig/v1beta1/multisig\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/**\n * SignMode represents a signing mode with its own security guarantees.\n *\n * This enum should be considered a registry of all known sign modes\n * in the Cosmos ecosystem. Apps are not expected to support all known\n * sign modes. Apps that would like to support custom sign modes are\n * encouraged to open a small PR against this file to add a new case\n * to this SignMode enum describing their sign mode so that different\n * apps have a consistent version of this enum.\n */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected.\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx.\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT. It is currently not supported.\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_DIRECT_AUX - SIGN_MODE_DIRECT_AUX specifies a signing mode which uses\n * SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not\n * require signers signing over other signers' `signer_info`. It also allows\n * for adding Tips in transactions.\n *\n * Since: cosmos-sdk 0.46\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT_AUX\"] = 3] = \"SIGN_MODE_DIRECT_AUX\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future.\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n /**\n * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos\n * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191\n *\n * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,\n * but is not implemented on the SDK by default. To enable EIP-191, you need\n * to pass a custom `TxConfig` that has an implementation of\n * `SignModeHandler` for EIP-191. The SDK may decide to fully support\n * EIP-191 in the future.\n *\n * Since: cosmos-sdk 0.45.2\n */\n SignMode[SignMode[\"SIGN_MODE_EIP_191\"] = 191] = \"SIGN_MODE_EIP_191\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode || (exports.SignMode = SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 3:\n case \"SIGN_MODE_DIRECT_AUX\":\n return SignMode.SIGN_MODE_DIRECT_AUX;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case 191:\n case \"SIGN_MODE_EIP_191\":\n return SignMode.SIGN_MODE_EIP_191;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_DIRECT_AUX:\n return \"SIGN_MODE_DIRECT_AUX\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n case SignMode.SIGN_MODE_EIP_191:\n return \"SIGN_MODE_EIP_191\";\n case SignMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nfunction createBaseSignatureDescriptors() {\n return {\n signatures: [],\n };\n}\nexports.SignatureDescriptors = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptors\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptors();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptors();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptors();\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSignatureDescriptor() {\n return {\n publicKey: undefined,\n data: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignatureDescriptor = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptor\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = exports.SignatureDescriptor_Data.fromJSON(object.data);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromPartial(object.data);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.SignatureDescriptor_Data = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Data\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Single() {\n return {\n mode: 0,\n signature: new Uint8Array(),\n };\n}\nexports.SignatureDescriptor_Data_Single = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = signModeFromJSON(object.mode);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Single();\n message.mode = object.mode ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Multi() {\n return {\n bitarray: undefined,\n signatures: [],\n };\n}\nexports.SignatureDescriptor_Data_Multi = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor_Data.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor_Data.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nfunction createBaseCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.Coin = {\n typeUrl: \"/cosmos.base.v1beta1.Coin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseDecCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.DecCoin = {\n typeUrl: \"/cosmos.base.v1beta1.DecCoin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseIntProto() {\n return {\n int: \"\",\n };\n}\nexports.IntProto = {\n typeUrl: \"/cosmos.base.v1beta1.IntProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIntProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIntProto();\n if ((0, helpers_1.isSet)(object.int))\n obj.int = String(object.int);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIntProto();\n message.int = object.int ?? \"\";\n return message;\n },\n};\nfunction createBaseDecProto() {\n return {\n dec: \"\",\n };\n}\nexports.DecProto = {\n typeUrl: \"/cosmos.base.v1beta1.DecProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecProto();\n if ((0, helpers_1.isSet)(object.dec))\n obj.dec = String(object.dec);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecProto();\n message.dec = object.dec ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=coin.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuxSignerData = exports.Tip = exports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDocDirectAux = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nfunction createBaseTx() {\n return {\n body: undefined,\n authInfo: undefined,\n signatures: [],\n };\n}\nexports.Tx = {\n typeUrl: \"/cosmos.tx.v1beta1.Tx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTx();\n if ((0, helpers_1.isSet)(object.body))\n obj.body = exports.TxBody.fromJSON(object.body);\n if ((0, helpers_1.isSet)(object.authInfo))\n obj.authInfo = exports.AuthInfo.fromJSON(object.authInfo);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTx();\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromPartial(object.body);\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromPartial(object.authInfo);\n }\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseTxRaw() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n signatures: [],\n };\n}\nexports.TxRaw = {\n typeUrl: \"/cosmos.tx.v1beta1.TxRaw\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxRaw();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxRaw();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxRaw();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseSignDoc() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n chainId: \"\",\n accountNumber: BigInt(0),\n };\n}\nexports.SignDoc = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDoc\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDoc();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDoc();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDoc();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n return message;\n },\n};\nfunction createBaseSignDocDirectAux() {\n return {\n bodyBytes: new Uint8Array(),\n publicKey: undefined,\n chainId: \"\",\n accountNumber: BigInt(0),\n sequence: BigInt(0),\n tip: undefined,\n };\n}\nexports.SignDocDirectAux = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDocDirectAux\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(40).uint64(message.sequence);\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDocDirectAux();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n case 5:\n message.sequence = reader.uint64();\n break;\n case 6:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDocDirectAux();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDocDirectAux();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseTxBody() {\n return {\n messages: [],\n memo: \"\",\n timeoutHeight: BigInt(0),\n extensionOptions: [],\n nonCriticalExtensionOptions: [],\n };\n}\nexports.TxBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (message.timeoutHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxBody();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxBody();\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.memo))\n obj.memo = String(object.memo);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = BigInt(object.timeoutHeight.toString());\n if (Array.isArray(object?.extensionOptions))\n obj.extensionOptions = object.extensionOptions.map((e) => any_1.Any.fromJSON(e));\n if (Array.isArray(object?.nonCriticalExtensionOptions))\n obj.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxBody();\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.memo = object.memo ?? \"\";\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = BigInt(object.timeoutHeight.toString());\n }\n message.extensionOptions = object.extensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.nonCriticalExtensionOptions =\n object.nonCriticalExtensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseAuthInfo() {\n return {\n signerInfos: [],\n fee: undefined,\n tip: undefined,\n };\n}\nexports.AuthInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.AuthInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuthInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n case 3:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuthInfo();\n if (Array.isArray(object?.signerInfos))\n obj.signerInfos = object.signerInfos.map((e) => exports.SignerInfo.fromJSON(e));\n if ((0, helpers_1.isSet)(object.fee))\n obj.fee = exports.Fee.fromJSON(object.fee);\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuthInfo();\n message.signerInfos = object.signerInfos?.map((e) => exports.SignerInfo.fromPartial(e)) || [];\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromPartial(object.fee);\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseSignerInfo() {\n return {\n publicKey: undefined,\n modeInfo: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignerInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.SignerInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignerInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignerInfo();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.modeInfo))\n obj.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignerInfo();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseModeInfo() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.ModeInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.ModeInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.ModeInfo_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.ModeInfo_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseModeInfo_Single() {\n return {\n mode: 0,\n };\n}\nexports.ModeInfo_Single = {\n typeUrl: \"/cosmos.tx.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Single();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\nfunction createBaseModeInfo_Multi() {\n return {\n bitarray: undefined,\n modeInfos: [],\n };\n}\nexports.ModeInfo_Multi = {\n typeUrl: \"/cosmos.tx.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.modeInfos))\n obj.modeInfos = object.modeInfos.map((e) => exports.ModeInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.modeInfos = object.modeInfos?.map((e) => exports.ModeInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseFee() {\n return {\n amount: [],\n gasLimit: BigInt(0),\n payer: \"\",\n granter: \"\",\n };\n}\nexports.Fee = {\n typeUrl: \"/cosmos.tx.v1beta1.Fee\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.gasLimit !== BigInt(0)) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFee();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFee();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.gasLimit))\n obj.gasLimit = BigInt(object.gasLimit.toString());\n if ((0, helpers_1.isSet)(object.payer))\n obj.payer = String(object.payer);\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || BigInt(0)).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFee();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = BigInt(object.gasLimit.toString());\n }\n message.payer = object.payer ?? \"\";\n message.granter = object.granter ?? \"\";\n return message;\n },\n};\nfunction createBaseTip() {\n return {\n amount: [],\n tipper: \"\",\n };\n}\nexports.Tip = {\n typeUrl: \"/cosmos.tx.v1beta1.Tip\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.tipper !== \"\") {\n writer.uint32(18).string(message.tipper);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTip();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.tipper = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTip();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.tipper))\n obj.tipper = String(object.tipper);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.tipper !== undefined && (obj.tipper = message.tipper);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTip();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.tipper = object.tipper ?? \"\";\n return message;\n },\n};\nfunction createBaseAuxSignerData() {\n return {\n address: \"\",\n signDoc: undefined,\n mode: 0,\n sig: new Uint8Array(),\n };\n}\nexports.AuxSignerData = {\n typeUrl: \"/cosmos.tx.v1beta1.AuxSignerData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.signDoc !== undefined) {\n exports.SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim();\n }\n if (message.mode !== 0) {\n writer.uint32(24).int32(message.mode);\n }\n if (message.sig.length !== 0) {\n writer.uint32(34).bytes(message.sig);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuxSignerData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.signDoc = exports.SignDocDirectAux.decode(reader, reader.uint32());\n break;\n case 3:\n message.mode = reader.int32();\n break;\n case 4:\n message.sig = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuxSignerData();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.signDoc))\n obj.signDoc = exports.SignDocDirectAux.fromJSON(object.signDoc);\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n if ((0, helpers_1.isSet)(object.sig))\n obj.sig = (0, helpers_1.bytesFromBase64)(object.sig);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.signDoc !== undefined &&\n (obj.signDoc = message.signDoc ? exports.SignDocDirectAux.toJSON(message.signDoc) : undefined);\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n message.sig !== undefined &&\n (obj.sig = (0, helpers_1.base64FromBytes)(message.sig !== undefined ? message.sig : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuxSignerData();\n message.address = object.address ?? \"\";\n if (object.signDoc !== undefined && object.signDoc !== null) {\n message.signDoc = exports.SignDocDirectAux.fromPartial(object.signDoc);\n }\n message.mode = object.mode ?? 0;\n message.sig = object.sig ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=tx.js.map","import { chains, assets } from 'chain-registry'\n\nimport { type ChainInfo } from '@chains/Cosmos/types'\n\nexport const fetchChainInfo = async (chainId: string): Promise<ChainInfo> => {\n const chainInfo = chains.find((chain) => chain.chain_id === chainId)\n if (!chainInfo) {\n throw new Error(`Chain info not found for chainId: ${chainId}`)\n }\n\n const { bech32_prefix: prefix, chain_id: expectedChainId } = chainInfo\n const denom = chainInfo.staking?.staking_tokens?.[0]?.denom\n const rpcUrl = chainInfo.apis?.rpc?.[0]?.address\n const restUrl = chainInfo.apis?.rest?.[0]?.address\n const gasPrice = chainInfo.fees?.fee_tokens?.[0]?.average_gas_price\n\n if (\n !prefix ||\n !denom ||\n !rpcUrl ||\n !restUrl ||\n !expectedChainId ||\n gasPrice === undefined\n ) {\n throw new Error(\n `Missing required chain information for ${chainInfo.chain_name}`\n )\n }\n\n const assetList = assets.find(\n (asset) => asset.chain_name === chainInfo.chain_name\n )\n const asset = assetList?.assets.find((asset) => asset.base === denom)\n const decimals = asset?.denom_units.find(\n (unit) => unit.denom === asset.display\n )?.exponent\n\n if (decimals === undefined) {\n throw new Error(\n `Could not find decimals for ${denom} on chain ${chainInfo.chain_name}`\n )\n }\n\n return { prefix, denom, rpcUrl, restUrl, expectedChainId, gasPrice, decimals }\n}\n","import { encodeSecp256k1Pubkey } from '@cosmjs/amino'\nimport { ripemd160, sha256 } from '@cosmjs/crypto'\nimport { toBase64, fromBase64, fromHex } from '@cosmjs/encoding'\nimport {\n Registry,\n makeSignBytes,\n encodePubkey,\n makeAuthInfoBytes,\n makeSignDoc,\n type TxBodyEncodeObject,\n} from '@cosmjs/proto-signing'\nimport { GasPrice, StargateClient, calculateFee } from '@cosmjs/stargate'\nimport { bech32 } from 'bech32'\nimport { SignMode } from 'cosmjs-types/cosmos/tx/signing/v1beta1/signing'\nimport { TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx'\n\nimport { Chain } from '@chains/Chain'\nimport type { BaseChainSignatureContract } from '@chains/ChainSignatureContract'\nimport type {\n CosmosNetworkIds,\n CosmosTransactionRequest,\n CosmosUnsignedTransaction,\n ChainInfo,\n BalanceResponse,\n} from '@chains/Cosmos/types'\nimport { fetchChainInfo } from '@chains/Cosmos/utils'\nimport type {\n MPCPayloads,\n RSVSignature,\n KeyDerivationPath,\n} from '@chains/types'\nimport { cryptography } from '@utils'\n\n/**\n * Implementation of the Chain interface for Cosmos-based networks.\n * Handles interactions with Cosmos SDK chains like Cosmos Hub, Osmosis, etc.\n */\nexport class Cosmos extends Chain<\n CosmosTransactionRequest,\n CosmosUnsignedTransaction\n> {\n private readonly registry: Registry\n private readonly chainId: CosmosNetworkIds\n private readonly contract: BaseChainSignatureContract\n private readonly endpoints?: {\n rpcUrl?: string\n restUrl?: string\n }\n\n /**\n * Creates a new Cosmos chain instance\n * @param params - Configuration parameters\n * @param params.chainId - Chain id for the Cosmos network\n * @param params.contract - Instance of the chain signature contract for MPC operations\n * @param params.endpoints - Optional RPC and REST endpoints\n * @param params.endpoints.rpcUrl - Optional RPC endpoint URL\n * @param params.endpoints.restUrl - Optional REST endpoint URL\n */\n constructor({\n chainId,\n contract,\n endpoints,\n }: {\n contract: BaseChainSignatureContract\n chainId: CosmosNetworkIds\n endpoints?: {\n rpcUrl?: string\n restUrl?: string\n }\n }) {\n super()\n\n this.contract = contract\n this.registry = new Registry()\n this.chainId = chainId\n this.endpoints = endpoints\n }\n\n private parseRSVSignature(rsvSignature: RSVSignature): Uint8Array {\n return new Uint8Array([\n ...fromHex(rsvSignature.r),\n ...fromHex(rsvSignature.s),\n ])\n }\n\n private async getChainInfo(): Promise<ChainInfo> {\n return {\n ...(await fetchChainInfo(this.chainId)),\n ...this.endpoints,\n }\n }\n\n async getBalance(address: string): Promise<string> {\n try {\n const { restUrl, denom, decimals } = await this.getChainInfo()\n\n const response = await fetch(\n `${restUrl}/cosmos/bank/v1beta1/balances/${address}`\n )\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = (await response.json()) as BalanceResponse\n const balance = data.balances.find((b) => b.denom === denom)\n const amount = balance?.amount ?? '0'\n\n const formattedBalance = (\n parseInt(amount) / Math.pow(10, decimals)\n ).toString()\n return formattedBalance\n } catch (error) {\n console.error('Failed to fetch Cosmos balance:', error)\n throw new Error('Failed to fetch Cosmos balance')\n }\n }\n\n async deriveAddressAndPublicKey(\n predecessor: string,\n path: KeyDerivationPath\n ): Promise<{\n address: string\n publicKey: string\n }> {\n const { prefix } = await this.getChainInfo()\n const uncompressedPubKey = await this.contract.getDerivedPublicKey({\n path,\n predecessor,\n })\n\n if (!uncompressedPubKey) {\n throw new Error('Failed to get derived public key')\n }\n\n const derivedKey = cryptography.compressPubKey(uncompressedPubKey)\n const pubKeySha256 = sha256(fromHex(derivedKey))\n const ripemd160Hash = ripemd160(pubKeySha256)\n const address = bech32.encode(prefix, bech32.toWords(ripemd160Hash))\n\n return { address, publicKey: derivedKey }\n }\n\n setTransaction(\n transaction: CosmosUnsignedTransaction,\n storageKey: string\n ): void {\n const serialized = TxRaw.encode(transaction).finish()\n window.localStorage.setItem(storageKey, toBase64(serialized))\n }\n\n getTransaction(\n storageKey: string,\n options?: {\n remove?: boolean\n }\n ): CosmosUnsignedTransaction | undefined {\n const serialized = window.localStorage.getItem(storageKey)\n if (!serialized) return undefined\n\n if (options?.remove) {\n window.localStorage.removeItem(storageKey)\n }\n\n return TxRaw.decode(fromBase64(serialized))\n }\n\n async getMPCPayloadAndTransaction(\n transactionRequest: CosmosTransactionRequest\n ): Promise<{\n transaction: CosmosUnsignedTransaction\n mpcPayloads: MPCPayloads\n }> {\n const { denom, rpcUrl, gasPrice } = await this.getChainInfo()\n const publicKeyBytes = fromHex(transactionRequest.publicKey)\n\n const gasLimit = transactionRequest.gas || 200_000\n\n const fee = calculateFee(\n gasLimit,\n GasPrice.fromString(`${gasPrice}${denom}`)\n )\n\n const client = await StargateClient.connect(rpcUrl)\n const accountOnChain = await client.getAccount(transactionRequest.address)\n if (!accountOnChain) {\n throw new Error(\n `Account ${transactionRequest.address} does not exist on chain`\n )\n }\n\n const { accountNumber, sequence } = accountOnChain\n\n const txBodyEncodeObject: TxBodyEncodeObject = {\n typeUrl: '/cosmos.tx.v1beta1.TxBody',\n value: {\n messages: transactionRequest.messages,\n memo: transactionRequest.memo || '',\n },\n }\n\n const txBodyBytes = this.registry.encode(txBodyEncodeObject)\n\n const pubkey = encodePubkey(encodeSecp256k1Pubkey(publicKeyBytes))\n\n // TODO: Allow caller to provide: multiple signers, fee payer, fee granter\n const authInfoBytes = makeAuthInfoBytes(\n [\n {\n pubkey,\n sequence,\n },\n ],\n fee.amount,\n Number(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_DIRECT\n )\n\n const signDoc = makeSignDoc(\n txBodyBytes,\n authInfoBytes,\n this.chainId,\n accountNumber\n )\n\n const signBytes = makeSignBytes(signDoc)\n const payload = Array.from(sha256(signBytes))\n\n return {\n transaction: TxRaw.fromPartial({\n bodyBytes: txBodyBytes,\n authInfoBytes,\n signatures: [],\n }),\n mpcPayloads: [payload],\n }\n }\n\n addSignature({\n transaction,\n mpcSignatures,\n }: {\n transaction: CosmosUnsignedTransaction\n mpcSignatures: RSVSignature[]\n }): string {\n // Allow support for multi-sig but the package only supports single-sig\n transaction.signatures = mpcSignatures.map((sig) =>\n this.parseRSVSignature(sig)\n )\n\n const txBytes = TxRaw.encode(transaction).finish()\n return Buffer.from(txBytes).toString('hex')\n }\n\n async broadcastTx(txSerialized: string): Promise<string> {\n try {\n const { rpcUrl } = await this.getChainInfo()\n const client = await StargateClient.connect(rpcUrl)\n\n const txBytes = fromHex(txSerialized)\n const broadcastResponse = await client.broadcastTx(txBytes)\n\n if (broadcastResponse.code !== 0) {\n throw new Error(`Broadcast error: ${broadcastResponse.rawLog}`)\n }\n\n return broadcastResponse.transactionHash\n } catch (error) {\n console.error('Transaction broadcast failed:', error)\n throw new Error('Failed to broadcast transaction.')\n }\n }\n}\n","import { type KeyPair } from '@near-js/crypto'\n\nimport { Bitcoin, Cosmos, EVM } from '@chains'\nimport { BTCRpcAdapters } from '@chains/Bitcoin/BTCRpcAdapter'\nimport { getNearAccount } from '@utils/chains/near/account'\nimport { ChainSignatureContract } from '@utils/chains/near/ChainSignatureContract'\nimport {\n type Response,\n type BitcoinRequest,\n type CosmosRequest,\n type EVMRequest,\n} from '@utils/chains/near/types'\n\nexport const EVMTransaction = async (\n req: EVMRequest,\n keyPair: KeyPair\n): Promise<Response> => {\n try {\n const account = await getNearAccount({\n networkId: req.nearAuthentication.networkId,\n accountId: req.nearAuthentication.accountId,\n keypair: keyPair,\n })\n\n const contract = new ChainSignatureContract({\n networkId: req.nearAuthentication.networkId,\n contractId: req.chainConfig.contract,\n accountId: account.accountId,\n keypair: keyPair,\n })\n\n const evm = new EVM({\n rpcUrl: req.chainConfig.providerUrl,\n contract,\n })\n\n const { transaction, mpcPayloads } = await evm.getMPCPayloadAndTransaction(\n req.transaction\n )\n\n const signature = await contract.sign({\n payload: mpcPayloads[0],\n path: req.derivationPath,\n key_version: 0,\n })\n\n const txSerialized = evm.addSignature({\n transaction,\n mpcSignatures: [signature],\n })\n\n const txHash = await evm.broadcastTx(txSerialized)\n\n return {\n transactionHash: txHash,\n success: true,\n }\n } catch (e: unknown) {\n console.error(e)\n return {\n success: false,\n errorMessage: e instanceof Error ? e.message : String(e),\n }\n }\n}\n\nexport const BTCTransaction = async (\n req: BitcoinRequest,\n keyPair: KeyPair\n): Promise<Response> => {\n try {\n const account = await getNearAccount({\n networkId: req.nearAuthentication.networkId,\n accountId: req.nearAuthentication.accountId,\n keypair: keyPair,\n })\n\n const contract = new ChainSignatureContract({\n networkId: req.nearAuthentication.networkId,\n contractId: req.chainConfig.contract,\n accountId: account.accountId,\n keypair: keyPair,\n })\n\n const btc = new Bitcoin({\n btcRpcAdapter: new BTCRpcAdapters.Mempool(req.chainConfig.providerUrl),\n contract,\n network: req.chainConfig.network,\n })\n\n const { transaction, mpcPayloads } = await btc.getMPCPayloadAndTransaction(\n req.transaction\n )\n\n const signatures = await Promise.all(\n mpcPayloads.map(\n async (payload) =>\n await contract.sign({\n payload,\n path: req.derivationPath,\n key_version: 0,\n })\n )\n )\n\n const txSerialized = btc.addSignature({\n transaction,\n mpcSignatures: signatures,\n })\n\n const txHash = await btc.broadcastTx(txSerialized)\n\n return {\n transactionHash: txHash,\n success: true,\n }\n } catch (e: unknown) {\n return {\n success: false,\n errorMessage: e instanceof Error ? e.message : String(e),\n }\n }\n}\n\nexport const CosmosTransaction = async (\n req: CosmosRequest,\n keyPair: KeyPair\n): Promise<Response> => {\n try {\n const account = await getNearAccount({\n networkId: req.nearAuthentication.networkId,\n accountId: req.nearAuthentication.accountId,\n keypair: keyPair,\n })\n\n const contract = new ChainSignatureContract({\n networkId: req.nearAuthentication.networkId,\n contractId: req.chainConfig.contract,\n accountId: account.accountId,\n keypair: keyPair,\n })\n\n const cosmos = new Cosmos({\n contract,\n chainId: req.chainConfig.chainId,\n })\n\n const { transaction, mpcPayloads } =\n await cosmos.getMPCPayloadAndTransaction(req.transaction)\n\n const signatures = await Promise.all(\n mpcPayloads.map(\n async (payload) =>\n await contract.sign({\n payload,\n path: req.derivationPath,\n key_version: 0,\n })\n )\n )\n\n const txSerialized = cosmos.addSignature({\n transaction,\n mpcSignatures: signatures,\n })\n\n const txHash = await cosmos.broadcastTx(txSerialized)\n\n return {\n transactionHash: txHash,\n success: true,\n }\n } catch (e: unknown) {\n console.error(e)\n return {\n success: false,\n errorMessage: e instanceof Error ? e.message : String(e),\n }\n }\n}\n","import {\n type MPCSignature,\n type RSVSignature,\n type UncompressedPubKeySEC1,\n} from '@chains/types'\n\nexport const toRSV = (signature: MPCSignature): RSVSignature => {\n return {\n r: signature.big_r.affine_point.substring(2),\n s: signature.s.scalar,\n v: signature.recovery_id,\n }\n}\n\n/**\n * Compresses an uncompressed public key to its compressed format following SEC1 standards.\n * In SEC1, a compressed public key consists of a prefix (02 or 03) followed by the x-coordinate.\n * The prefix indicates whether the y-coordinate is even (02) or odd (03).\n *\n * @param uncompressedPubKeySEC1 - The uncompressed public key in hex format, with or without '04' prefix\n * @returns The compressed public key in hex format\n * @throws Error if the uncompressed public key length is invalid\n */\nexport const compressPubKey = (\n uncompressedPubKeySEC1: UncompressedPubKeySEC1\n): string => {\n const slicedPubKey = uncompressedPubKeySEC1.slice(2)\n\n if (slicedPubKey.length !== 128) {\n throw new Error('Invalid uncompressed public key length')\n }\n\n const x = slicedPubKey.slice(0, 64)\n const y = slicedPubKey.slice(64)\n\n const isEven = parseInt(y.slice(-1), 16) % 2 === 0\n const prefix = isEven ? '02' : '03'\n\n return prefix + x\n}\n"],"names":["types","buffer","EncodeBuffer","needed_space","new_buffer","value","type","bSize","size","toCall","from","DecodeBuffer","buf","ret","__extends","this","extendStatics","d","b","p","__","utils","types_js_1","require$$0","isArrayLike","expect_type","fieldPath","expect_bigint","basicType","strObject","expect_same_size","length","expected","expect_enum","VALID_STRING_TYPES","VALID_OBJECT_KEYS","ErrorSchema","_super","schema","message","validate_schema","keys","key","validate_enum_schema","validate_array_schema","validate_map_schema","validate_struct_schema","_i","schema_1","sch","__createBinding","o","m","k","k2","desc","__setModuleDefault","v","__importStar","mod","result","serialize","buffer_js_1","require$$1","require$$2","BorshSerializer","checkTypes","buffer_len","i","_value","valueKey","valueSchema","isSet","values","values_1","value_1","isMap","keys_1","_a","deserialize","BorshDeserializer","bufferArray","signed","bits","r","x","len","option","valueIndex","struct","cjs","serialize_js_1","deserialize_js_1","validate","serializer","deserializer","__importDefault","constants","bn_js_1","console_logger","ConsoleLogger","logLevels","level","optionalParams","logger","console_logger_1","DEFAULT_LOG_LEVELS","DEFAULT_LOGGER","Logger","_b","_c","exports","logger_1","errors","logWarning","args","assignable","Assignable","properties","PositionalArgsError","ArgumentTypeError","argName","argType","argValue","TypedError","context","ErrorContext","transactionHash","IdType","ExecutionStatusBasic","FinalExecutionStatusBasic","light_client_1","response_1","__exportStar","global","factory","module","objectToString","isArray","object","isFunction","typeStr","obj","escapeRegExp","string","hasProperty","propName","primitiveHasOwnProperty","primitive","regExpTest","testRegExp","re","nonSpaceRe","isWhitespace","entityMap","escapeHtml","s","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","template","tags","lineHasNonSpace","sections","tokens","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","openingTagRe","closingTagRe","closingCurlyRe","compileTags","tagsToCompile","mustache","scanner","Scanner","start","chr","token","openSection","valueLength","nestTokens","squashTokens","squashedTokens","lastToken","numTokens","nestedTokens","collector","section","match","index","Context","view","parentContext","name","cache","intermediateValue","names","lookupHit","Writer","cacheKey","isCacheEnabled","partials","originalTemplate","symbol","self","subRender","j","partial","filteredIndentation","partialByNl","indentedValue","defaultWriter","bs58_1","ROUNDING_OFFSETS","BN10","offset","formatNearAmount","balance","fracDigits","balanceBN","roundingExp","wholeStr","fractionStr","trimTrailingZeroes","formatWithCommas","parseNearAmount","amt","cleanupAmount","split","wholePart","fracPart","trimLeadingZeroes","amount","pattern","baseEncode","bytes","c","baseDecode","rpc_errors","types_1","mustache_1","format_1","error_messages_json_1","require$$3","rpc_error_schema_json_1","require$$4","mustacheHelpers","n","render","ServerError","ServerTransactionError","parseRpcError","errorObj","errorClassName","walkSubtype","error","formatError","parseResultError","server_error","server_tx_error","errorData","typeName","errorTypeName","errorName","isString","isObject","prop","getErrorTypeFromErrorMessage","errorMessage","errorType","errors_1","rpc_errors_1","logging","printTxOutcomeLogsAndFailures","contractId","outcome","flatLogs","acc","it","isFailure","printTxOutcomeLogs","logs","prefix","log","provider","getTransactionLastResult","txResult","browser","depd","namespace","deprecate","wrapfunction","wrapproperty","fn","descriptor","validators","depd_1","findSeatPrice","maxNumberOfSeats","minimumStakeRatio","protocolVersion","findSeatPriceForProtocolBefore49","findSeatPriceForProtocolAfter49","numSeats","stakes","a","num","stakesSum","left","right","mid","found","currentSum","diffEpochValidators","currentValidators","nextValidators","validatorsMap","nextValidatorsSet","require$$5","require$$6","borsh_1","utils_1","serializeExports","requireSerialize","BaseChainSignatureContract","NEAR_MAX_GAS","BN","DONT_CARE_ACCOUNT_ID","getNearAccount","networkId","accountId","keypair","KeyPair","keyStore","InMemoryKeyStore","connection","Connection","Account","parseSignedDelegateForRelayer","signedDelegate","action","t","bs58","najToUncompressedPubKey","najPubKey","base_decode","requireAccount","ChainSignatureContract","AbstractChainSignatureContract","account","Contract","contract","deposit","signature","cryptography.toRSV","signArgs","relayerUrl","functionCall","actionCreators","txHash","txStatus","chains.near.transactionBuilder.responseToMpcSignature","mpcPayloadsToChainSigTransaction","mpcPayloads","path","currentContractFee","payload","mpcPayloadsToNFTKeysTransaction","chainSigContract","nftKeysContract","tokenId","responseToMpcSignature","response","curr","status","parsedJSONSignature","transactionBuilder","Chain","fetchEVMFeeProperties","providerUrl","transaction","ethers","gasLimit","feeData","maxFeePerGas","maxPriorityFeePerGas","EVM","rpcUrl","fees","nonce","rest","predecessor","uncompressedPubKey","publicKeyNoPrefix","hash","fromHex","address","storageKey","serializedTransaction","_","options","txSerialized","transactionRequest","keccak256","mpcSignatures","parseBTCNetwork","network","bitcoin","Bitcoin","btcRpcAdapter","satoshis","btc","transactionId","data","tx","vout","scriptPubKey","rawSignature","inputs","outputs","psbt","input","prevOut","out","derivedKey","cryptography.compressPubKey","publicKeyBuffer","payment","transactionJSON","psbtHex","mockKeyPair","publicKey","keyPair","mpcSignature","BTCRpcAdapter","Mempool","confirmationTarget","targets","utxos","feeRate","coinselect","transactionHex","txid","BTCRpcAdapters","utf8","utf8Length","str","utf8Read","end","chunk","parts","utf8Write","c1","c2","varint","varint64read","lowBits","highBits","shift","middleByte","varint64write","lo","hi","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","base","add1e6digit","begin","digit1e6","negate","newBits","int64ToString","negative","uInt64ToString","toUnsigned","low","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","varint32write","varint32read","readBytes","zzEncode","mask","zzDecode","readUInt32","pos","readInt32","writeVarint32","val","writeVarint64","int64Length","part0","part1","part2","writeFixed32","writeByte","binary","utf8_1","varint_1","WireType","BinaryReader","tag","fieldNo","wireType","indexOutOfRange","Op","State","writer","BinaryWriter","pool","head","tail","writeBytes","alloc","slice","slab","reader","writeLength","helpers","globalThis","atob","b64","bytesFromBase64","bin","arr","btoa","base64FromBytes","omitDefault","toDuration","duration","fromDuration","setPaginationParams","pagination","toTimestamp","date","seconds","numberToLong","nanos","fromTimestamp","millis","timestampFromJSON","fromJsonTimestamp","number","multisig","binary_1","helpers_1","createBaseMultiSignature","e","createBaseCompactBitArray","any","createBaseAny","multisig_1","any_1","SignMode","signModeFromJSON","signModeToJSON","createBaseSignatureDescriptors","createBaseSignatureDescriptor","createBaseSignatureDescriptor_Data","createBaseSignatureDescriptor_Data_Single","createBaseSignatureDescriptor_Data_Multi","coin","createBaseCoin","createBaseDecCoin","createBaseIntProto","createBaseDecProto","signing_1","coin_1","createBaseTx","createBaseTxRaw","createBaseSignDoc","createBaseSignDocDirectAux","createBaseTxBody","createBaseAuthInfo","createBaseSignerInfo","createBaseModeInfo","createBaseModeInfo_Single","createBaseModeInfo_Multi","createBaseFee","createBaseTip","createBaseAuxSignerData","fetchChainInfo","chainId","chainInfo","chains","chain","expectedChainId","denom","restUrl","gasPrice","asset","assets","decimals","unit","Cosmos","endpoints","Registry","rsvSignature","pubKeySha256","sha256","ripemd160Hash","ripemd160","bech32","serialized","TxRaw","toBase64","fromBase64","publicKeyBytes","fee","calculateFee","GasPrice","accountOnChain","StargateClient","accountNumber","sequence","txBodyEncodeObject","txBodyBytes","pubkey","encodePubkey","encodeSecp256k1Pubkey","authInfoBytes","makeAuthInfoBytes","signDoc","makeSignDoc","signBytes","makeSignBytes","sig","txBytes","client","broadcastResponse","EVMTransaction","req","evm","BTCTransaction","signatures","CosmosTransaction","cosmos","toRSV","compressPubKey","uncompressedPubKeySEC1","slicedPubKey","y","cryptography","index$1"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,41,42,43,44,45,46,47,48,49]}
|