@taquito/local-forging 15.0.0-beta-RC.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-local-forging.umd.js","sources":["../src/utils.ts","../src/constants.ts","../src/error.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/validator.ts","../src/protocols.ts","../src/proto14-kathmandu/constants-proto14.ts","../src/proto14-kathmandu/michelson/codec-proto14.ts","../src/proto14-kathmandu/codec-proto14.ts","../src/proto14-kathmandu/decoder-proto14.ts","../src/proto14-kathmandu/encoder-proto14.ts","../src/version.ts","../src/taquito-local-forging.ts"],"sourcesContent":["export const concat = (...arr: Uint8Array[]) => {\n return arr.reduce((a: Uint8Array, b: Uint8Array) => {\n const c = new Uint8Array(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }, new Uint8Array());\n};\n\nexport const toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport const pad = (num: number, paddingLen = 8) => {\n return num.toString(16).padStart(paddingLen, '0');\n};\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { pad } from './utils';\n\n// See: https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const ENTRYPOINT_MAX_LENGTH = 31;\n\nexport enum CODEC {\n SECRET = 'secret',\n RAW = 'raw',\n TZ1 = 'tz1',\n BRANCH = 'branch',\n ZARITH = 'zarith',\n PUBLIC_KEY = 'public_key',\n PKH = 'pkh',\n DELEGATE = 'delegate',\n SCRIPT = 'script',\n BALLOT_STATEMENT = 'ballotStmt',\n PROPOSAL = 'proposal',\n PROPOSAL_ARR = 'proposalArr',\n INT32 = 'int32',\n INT16 = 'int16',\n PARAMETERS = 'parameters',\n ADDRESS = 'address',\n SMART_CONTRACT_ADDRESS = 'smart_contract_address',\n VALUE = 'value',\n MANAGER = 'manager',\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n ENTRYPOINT = 'entrypoint',\n OPERATION = 'operation',\n OP_ACTIVATE_ACCOUNT = 'activate_account',\n OP_DELEGATION = 'delegation',\n OP_TRANSACTION = 'transaction',\n OP_ORIGINATION = 'origination',\n OP_BALLOT = 'ballot',\n OP_ENDORSEMENT = 'endorsement',\n OP_SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n OP_REVEAL = 'reveal',\n OP_PROPOSALS = 'proposals',\n OP_REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n OP_TRANSFER_TICKET = 'transfer_ticket',\n OP_TX_ROLLUP_ORIGINATION = 'tx_rollup_origination',\n OP_TX_ROLLUP_SUBMIT_BATCH = 'tx_rollup_submit_batch',\n BURN_LIMIT = 'burn_limit',\n TX_ROLLUP_ORIGINATION_PARAM = 'tx_rollup_origination_param',\n TX_ROLLUP_ID = 'tx_rollup_id',\n TX_ROLLUP_BATCH_CONTENT = 'tx_rollup_batch_content',\n OP_INCREASE_PAID_STORAGE = 'increase_paid_storage',\n OP_UPDATE_CONSENSUS_KEY = 'update_consensus_key',\n OP_DRAIN_DELEGATE = 'drain_delegate',\n}\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMapping: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET_DEPRECATED',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n '98': 'Lambda_rec',\n '99': 'LAMBDA_REC',\n '9a': 'TICKET',\n};\n\nexport const opMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMapping).forEach((key: string) => {\n result[opMapping[key]] = key;\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/shell/p2p_api.html?highlight=p2p\nexport const kindMapping: { [key: number]: string } = {\n 0x04: 'activate_account',\n 0x6b: 'reveal',\n 0x6e: 'delegation',\n 0x6c: 'transaction',\n 0x6d: 'origination',\n 0x06: 'ballot',\n 0x15: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\n 0x96: 'tx_rollup_origination',\n 0x97: 'tx_rollup_submit_batch',\n 0x9e: 'transfer_ticket',\n 0x71: 'increase_paid_storage',\n 0x72: 'update_consensus_key',\n 0x09: 'drain_delegate',\n};\n\nexport const kindMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMapping).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMapping[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const entrypointMapping: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n '05': 'deposit',\n};\n\nexport const entrypointMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMapping).forEach((key: string) => {\n result[entrypointMapping[key]] = key;\n });\n return result;\n})();\n","import { ENTRYPOINT_MAX_LENGTH } from './constants';\n\n/**\n * @category Error\n * @description Error that indicates an invalid block hash being passed or used\n */\nexport class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid operation schema being passed or used\n */ export class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an entrypoint exceeding maximum size\n */\nexport class OversizedEntryPointError extends Error {\n public name = 'OversizedEntryPointError';\n constructor(public entrypoint: string) {\n super(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid ballot value\n */\nexport class InvalidBallotValueError extends Error {\n public name = 'InvalidBallotValueError';\n constructor(public ballotValue: string) {\n super(`The ballot value '${ballotValue}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode ballot value\n */\nexport class DecodeBallotValueError extends Error {\n public name = 'DecodeBallotValueError';\n constructor(public ballotValue: string) {\n super(`Failed to decode ballot value ${ballotValue}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid hex string have been passed or used\n */\nexport class InvalidHexStringError extends Error {\n public name = 'InvalidHexStringError';\n constructor(public hexString: string) {\n super(`The hex string '${hexString}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates unexpected Michelson Value being passed or used\n */\nexport class UnexpectedMichelsonValueError extends Error {\n public name = 'UnexpectedMichelsonValueError';\n constructor(public value: string) {\n super(`Failed to encode michelson value '${value}'`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode an operation\n */\nexport class OperationDecodingError extends Error {\n public name = 'OperationDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode an operation\n */\nexport class OperationEncodingError extends Error {\n public name = 'OperationEncodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported operation being passed or used\n */\nexport class UnsupportedOperationError extends Error {\n public name = 'UnsupportedOperationError';\n constructor(public op: string) {\n super(`The operation '${op}' is unsupported`);\n }\n}\n","import { InvalidHexStringError } from './error';\nexport class Uint8ArrayConsumer {\n static fromHexString(hex: string) {\n const lowHex = hex.toLowerCase();\n if (/^(([a-f]|\\d){2})*$/.test(lowHex)) {\n const arr = new Uint8Array(\n (lowHex.match(/([a-z]|\\d){2}/g) || []).map((byte) => parseInt(byte, 16))\n );\n return new Uint8ArrayConsumer(arr);\n } else {\n throw new InvalidHexStringError(lowHex);\n }\n }\n\n constructor(private readonly arr: Uint8Array, private offset: number = 0) {}\n\n public consume(count: number): Uint8Array {\n const subArr = this.arr.subarray(this.offset, this.offset + count);\n this.offset += count;\n return subArr;\n }\n\n public get(idx: number) {\n return this.arr[this.offset + idx];\n }\n\n public length() {\n return this.arr.length - this.offset;\n }\n}\n","import { BigNumber } from 'bignumber.js';\nimport { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { Encoder } from '../taquito-local-forging';\nimport { opMappingReverse, opMapping } from '../constants';\nimport { pad } from '../utils';\nimport { InvalidHexStringError, UnexpectedMichelsonValueError } from '../error';\n\nexport type PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\nexport type BytesValue = { bytes: string };\nexport type StringValue = { string: string };\nexport type IntValue = { int: string };\nexport type MichelsonValue =\n | PrimValue\n | BytesValue\n | StringValue\n | IntValue\n | (PrimValue | BytesValue | StringValue | IntValue)[];\n\nexport const isPrim = (value: MichelsonValue): value is PrimValue => {\n return 'prim' in value;\n};\n\nexport const isBytes = (value: MichelsonValue): value is BytesValue => {\n return 'bytes' in value && typeof value.bytes === 'string';\n};\n\nexport const isString = (value: MichelsonValue): value is StringValue => {\n return 'string' in value && typeof value.string === 'string';\n};\n\nexport const isInt = (value: MichelsonValue): value is IntValue => {\n return 'int' in value && typeof value.int === 'string';\n};\n\nexport const scriptEncoder: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoder(script.code);\n const storage = valueEncoder(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoder(new Uint8ArrayConsumer(code)),\n storage: valueDecoder(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoder: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoder(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoder(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoder(val));\n }\n return results;\n }\n default:\n return primDecoder(value, preamble);\n }\n};\n\nexport const extractRequiredLen = (value: Uint8ArrayConsumer, bytesLength = 4) => {\n const len = value.consume(bytesLength);\n const valueLen = parseInt(Buffer.from(len).toString('hex'), 16);\n return value.consume(valueLen);\n};\n\nexport const bytesEncoder: Encoder<BytesValue> = (value) => {\n if (!/^([A-Fa-f0-9]{2})*$/.test(value.bytes)) {\n throw new InvalidHexStringError(value.bytes);\n }\n\n const len = value.bytes.length / 2;\n return `0a${pad(len)}${value.bytes}`;\n};\n\nexport const bytesDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const bytes = extractRequiredLen(value);\n return {\n bytes: Buffer.from(bytes).toString('hex'),\n };\n};\n\nexport const stringEncoder: Encoder<StringValue> = (value) => {\n const str = Buffer.from(value.string, 'utf8').toString('hex');\n const hexLength = str.length / 2;\n return `01${pad(hexLength)}${str}`;\n};\n\nexport const stringDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const str = extractRequiredLen(value);\n return {\n string: Buffer.from(str).toString('utf8'),\n };\n};\n\nexport const intEncoder: Encoder<IntValue> = ({ int }) => {\n const num = new BigNumber(int, 10);\n const positiveMark = num.toString(2)[0] === '-' ? '1' : '0';\n const binary = num.toString(2).replace(/-/g, '');\n\n const pad =\n binary.length <= 6\n ? 6\n : (binary.length - 6) % 7\n ? binary.length + 7 - ((binary.length - 6) % 7)\n : binary.length;\n\n const splitted = binary.padStart(pad, '0').match(/\\d{6,7}/g);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reversed = splitted!.reverse();\n\n reversed[0] = positiveMark + reversed[0];\n\n const numHex = reversed.map((x: string, i: number) =>\n // Add one to the last chunk\n parseInt((i === reversed.length - 1 ? '0' : '1') + x, 2)\n .toString(16)\n .padStart(2, '0')\n );\n\n return `00${numHex.join('')}`;\n};\n\nexport const intDecoder = (value: Uint8ArrayConsumer): IntValue => {\n let c = value.consume(1)[0];\n const hexNumber: number[] = [];\n const isNotLastChunkMask = 1 << 7;\n while (c & isNotLastChunkMask) {\n hexNumber.push(c);\n c = value.consume(1)[0];\n }\n\n hexNumber.push(c);\n const isNegative = !!((1 << 6) & hexNumber[0]);\n\n hexNumber[0] = hexNumber[0] & 0b1111111;\n\n const numBin = hexNumber\n .map((x, i) =>\n x\n .toString(2)\n .slice(i === 0 ? -6 : -7)\n .padStart(i === 0 ? 6 : 7, '0')\n )\n .reverse();\n let num = new BigNumber(numBin.join(''), 2);\n if (isNegative) {\n num = num.times(-1);\n }\n\n return {\n int: num.toFixed(),\n };\n};\n\nexport const primEncoder: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverse[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoder(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if ((value.prim === 'LAMBDA' || value.prim === 'LAMBDA_REC') && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMapping[op],\n };\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (opMapping[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoder(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMapping[op] === 'pair' || opMapping[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoder(value));\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoder = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoder(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoder(array));\n }\n return args;\n};\n\nexport const encodeAnnots: Encoder<string[]> = (value: string[]) => {\n const mergedAnnot = value\n .map((x) => {\n return Buffer.from(x, 'utf8').toString('hex');\n })\n .join('20');\n\n const len = mergedAnnot.length / 2;\n return `${pad(len)}${mergedAnnot}`;\n};\n\nexport const decodeAnnots: Decoder = (val: Uint8ArrayConsumer): string[] => {\n const len = val.consume(4);\n const annotLen = parseInt(Buffer.from(len).toString('hex'), 16);\n const restOfAnnot = val.consume(annotLen);\n\n const restOfAnnotHex = Buffer.from(restOfAnnot).toString('hex');\n return restOfAnnotHex.split('20').map((x) => Buffer.from(x, 'hex').toString('utf8'));\n};\n","import {\n b58cdecode,\n b58cencode,\n buf2hex,\n Prefix,\n prefix as prefixMap,\n prefixLength,\n InvalidKeyHashError,\n InvalidPublicKeyError,\n InvalidAddressError,\n InvalidContractAddressError,\n} from '@taquito/utils';\nimport { OversizedEntryPointError, InvalidBallotValueError, DecodeBallotValueError } from './error';\nimport BigNumber from 'bignumber.js';\nimport { entrypointMapping, entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from './constants';\nimport { extractRequiredLen, valueDecoder, valueEncoder, MichelsonValue } from './michelson/codec';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { pad } from './utils';\n\nexport const prefixEncoder = (prefix: Prefix) => (str: string) => {\n return buf2hex(Buffer.from(b58cdecode(str, prefixMap[prefix])));\n};\n\nexport const prefixDecoder = (pre: Prefix) => (str: Uint8ArrayConsumer) => {\n const val = str.consume(prefixLength[pre]);\n return b58cencode(val, prefixMap[pre]);\n};\n\nexport const tz1Decoder = prefixDecoder(Prefix.TZ1);\nexport const branchDecoder = prefixDecoder(Prefix.B);\nexport const pkhDecoder = (val: Uint8ArrayConsumer) => {\n const prefix = val.consume(1);\n\n if (prefix[0] === 0x00) {\n return prefixDecoder(Prefix.TZ1)(val);\n } else if (prefix[0] === 0x01) {\n return prefixDecoder(Prefix.TZ2)(val);\n } else if (prefix[0] === 0x02) {\n return prefixDecoder(Prefix.TZ3)(val);\n }\n};\n\nexport const branchEncoder = prefixEncoder(Prefix.B);\nexport const tz1Encoder = prefixEncoder(Prefix.TZ1);\n\nexport const boolEncoder = (bool: unknown): string => (bool ? 'ff' : '00');\n\nexport const proposalEncoder = (proposal: string): string => {\n return prefixEncoder(Prefix.P)(proposal);\n};\n\nexport const proposalDecoder = (proposal: Uint8ArrayConsumer): string => {\n return prefixDecoder(Prefix.P)(proposal);\n};\n\nexport const proposalsDecoder = (proposal: Uint8ArrayConsumer): string[] => {\n const proposals = [];\n proposal.consume(4);\n while (proposal.length() > 0) {\n proposals.push(proposalDecoder(proposal));\n }\n return proposals;\n};\n\nexport const proposalsEncoder = (proposals: string[]): string => {\n return pad(32 * proposals.length) + proposals.map((x) => proposalEncoder(x)).join('');\n};\n\nexport const ballotEncoder = (ballot: string): string => {\n switch (ballot) {\n case 'yay':\n return '00';\n case 'nay':\n return '01';\n case 'pass':\n return '02';\n default:\n throw new InvalidBallotValueError(ballot);\n }\n};\n\nexport const ballotDecoder = (ballot: Uint8ArrayConsumer): string => {\n const value = ballot.consume(1);\n switch (value[0]) {\n case 0x00:\n return 'yay';\n case 0x01:\n return 'nay';\n case 0x02:\n return 'pass';\n default:\n throw new DecodeBallotValueError(value[0].toString());\n }\n};\n\nexport const delegateEncoder = (val: string) => {\n if (val) {\n return boolEncoder(true) + pkhEncoder(val);\n } else {\n return boolEncoder(false);\n }\n};\n\nexport const int32Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 4; i++) {\n const shiftBy = (4 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int32Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(4);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const int16Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 2; i++) {\n const shiftBy = (2 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int16Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(2);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const boolDecoder = (val: Uint8ArrayConsumer): boolean => {\n const bool = val.consume(1);\n return bool[0] === 0xff;\n};\n\nexport const delegateDecoder = (val: Uint8ArrayConsumer) => {\n const hasDelegate = boolDecoder(val);\n if (hasDelegate) {\n return pkhDecoder(val);\n }\n};\n\nexport const pkhEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n return '00' + prefixEncoder(Prefix.TZ1)(val);\n case Prefix.TZ2:\n return '01' + prefixEncoder(Prefix.TZ2)(val);\n case Prefix.TZ3:\n return '02' + prefixEncoder(Prefix.TZ3)(val);\n default:\n throw new InvalidKeyHashError(val);\n }\n};\n\nexport const publicKeyEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 4);\n switch (pubkeyPrefix) {\n case Prefix.EDPK:\n return '00' + prefixEncoder(Prefix.EDPK)(val);\n case Prefix.SPPK:\n return '01' + prefixEncoder(Prefix.SPPK)(val);\n case Prefix.P2PK:\n return '02' + prefixEncoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val);\n }\n};\n\nexport const addressEncoder = (val: string): string => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n case Prefix.TZ2:\n case Prefix.TZ3:\n return '00' + pkhEncoder(val);\n case Prefix.KT1:\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n default:\n throw new InvalidAddressError(val);\n }\n};\n\nexport const smartContractAddressEncoder = (val: string): string => {\n const prefix = val.substring(0, 3);\n\n if (prefix === Prefix.KT1) {\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n }\n throw new InvalidContractAddressError(val);\n};\n\nexport const publicKeyDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return prefixDecoder(Prefix.EDPK)(val);\n case 0x01:\n return prefixDecoder(Prefix.SPPK)(val);\n case 0x02:\n return prefixDecoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val.toString());\n }\n};\n\nexport const addressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return pkhDecoder(val);\n case 0x01: {\n const address = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return address;\n }\n default:\n throw new InvalidAddressError(val.toString());\n }\n};\n\nexport const smartContractAddressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x01) {\n const scAddress = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return scAddress;\n }\n throw new InvalidContractAddressError(val.toString());\n};\n\nexport const zarithEncoder = (n: string): string => {\n const fn: Array<string> = [];\n let nn = new BigNumber(n, 10);\n if (nn.isNaN()) {\n throw new TypeError(`Invalid zarith number ${n}`);\n }\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (nn.lt(128)) {\n if (nn.lt(16)) fn.push('0');\n fn.push(nn.toString(16));\n break;\n } else {\n let b = nn.mod(128);\n nn = nn.minus(b);\n nn = nn.dividedBy(128);\n b = b.plus(128);\n fn.push(b.toString(16));\n }\n }\n return fn.join('');\n};\n\nexport const zarithDecoder = (n: Uint8ArrayConsumer): string => {\n let mostSignificantByte = 0;\n while (mostSignificantByte < n.length() && (n.get(mostSignificantByte) & 128) !== 0) {\n mostSignificantByte += 1;\n }\n\n let num = new BigNumber(0);\n for (let i = mostSignificantByte; i >= 0; i -= 1) {\n const tmp = n.get(i) & 0x7f;\n num = num.multipliedBy(128);\n num = num.plus(tmp);\n }\n\n n.consume(mostSignificantByte + 1);\n return new BigNumber(num).toString();\n};\n\nexport const entrypointDecoder = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMapping) {\n return entrypointMapping[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoder(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoder(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoder = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverse) {\n return `${entrypointMappingReverse[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoder(value).slice(8)}`;\n }\n};\n\nexport const parametersEncoder = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoder(val.entrypoint);\n const parameters = valueEncoder(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoder = (value: MichelsonValue) => {\n const valueEncoded = valueEncoder(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoder(new Uint8ArrayConsumer(value));\n};\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n\nexport const entrypointNameEncoder = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoder(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoder = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const txRollupOriginationParamEncoder = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoder = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoder = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoder = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoder = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return Buffer.from(value).toString('hex');\n};\n\nexport const burnLimitEncoder = (val: string) => {\n return !val ? '00' : `ff${zarithEncoder(val)}`;\n};\n\nexport const burnLimitDecoder = (value: Uint8ArrayConsumer) => {\n const prefix = value.consume(1);\n if (Buffer.from(prefix).toString('hex') !== '00') {\n return zarithDecoder(value);\n }\n};\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { CODEC, kindMapping, kindMappingReverse } from '../constants';\nimport { InvalidOperationKindError } from '@taquito/utils';\nimport {\n OperationDecodingError,\n OperationEncodingError,\n UnsupportedOperationError,\n} from '../error';\n\nexport const ManagerOperationSchema = {\n branch: CODEC.BRANCH,\n contents: [CODEC.OPERATION],\n};\n\nexport const ActivationSchema = {\n pkh: CODEC.TZ1,\n secret: CODEC.SECRET,\n};\n\nexport const RevealSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n public_key: CODEC.PUBLIC_KEY,\n};\n\nexport const DelegationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n};\n\nexport const TransactionSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n parameters: CODEC.PARAMETERS,\n};\n\nexport const OriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n balance: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n script: CODEC.SCRIPT,\n};\n\nexport const BallotSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposal: CODEC.PROPOSAL,\n ballot: CODEC.BALLOT_STATEMENT,\n};\n\nexport const EndorsementSchema = {\n slot: CODEC.INT16,\n level: CODEC.INT32,\n round: CODEC.INT32,\n block_payload_hash: CODEC.BLOCK_PAYLOAD_HASH,\n};\n\nexport const SeedNonceRevelationSchema = {\n level: CODEC.INT32,\n nonce: CODEC.RAW,\n};\n\nexport const ProposalsSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposals: CODEC.PROPOSAL_ARR,\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n value: CODEC.VALUE,\n};\n\nexport const TransferTicketSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n ticket_contents: CODEC.VALUE,\n ticket_ty: CODEC.VALUE,\n ticket_ticketer: CODEC.ADDRESS,\n ticket_amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n entrypoint: CODEC.ENTRYPOINT,\n};\n\nexport const TxRollupOriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n tx_rollup_origination: CODEC.TX_ROLLUP_ORIGINATION_PARAM,\n};\n\nexport const TxRollupSubmitBatchSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n rollup: CODEC.TX_ROLLUP_ID,\n content: CODEC.TX_ROLLUP_BATCH_CONTENT,\n burn_limit: CODEC.BURN_LIMIT,\n};\n\nexport const IncreasePaidStorageSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.SMART_CONTRACT_ADDRESS,\n};\n\nexport const UpdateConsensusKeySchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n pk: CODEC.PUBLIC_KEY,\n};\n\nexport const DrainDelegateSchema = {\n consensus_key: CODEC.PKH,\n delegate: CODEC.PKH,\n destination: CODEC.PKH,\n};\n\nexport const operationEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverse)) {\n throw new InvalidOperationKindError(operation.kind);\n }\n\n return kindMappingReverse[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoder =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMapping[op[0]];\n if (operationName === undefined) {\n throw new UnsupportedOperationError(op[0].toString());\n }\n\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new OperationDecodingError('Decoded invalid operation');\n }\n\n return {\n kind: operationName,\n ...decodedObj,\n };\n };\n\ntype Schema = Record<string, CODEC | CODEC[]>;\nexport type Value = Record<keyof Schema, unknown[]>;\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (schema: Schema) => (value: Value) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key] as CODEC;\n\n if (value && Array.isArray(valueToEncode)) {\n const encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new OperationEncodingError(`Expected value to be Array ${JSON.stringify(values)}`);\n }\n\n return prev + values.reduce((prevBytes, current) => prevBytes + encoder(current), '');\n } else {\n const encoder = encoders[valueToEncode];\n return prev + encoder(value[key]);\n }\n }, '');\n };\n\nexport const schemaDecoder =\n (decoders: { [key: string]: Decoder }) =>\n (schema: { [key: string]: string | string[] }) =>\n (value: Uint8ArrayConsumer) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key];\n\n if (Array.isArray(valueToEncode)) {\n const decoder = decoders[valueToEncode[0]];\n\n const decoded = [];\n const lastLength = value.length();\n while (value.length() > 0) {\n decoded.push(decoder(value));\n\n if (lastLength === value.length()) {\n throw new OperationDecodingError('Unable to decode value');\n }\n }\n\n return {\n ...prev,\n [key]: decoded,\n };\n } else {\n const decoder = decoders[valueToEncode];\n\n const result = decoder(value);\n\n if (typeof result !== 'undefined') {\n return {\n ...prev,\n [key]: result,\n };\n } else {\n return {\n ...prev,\n };\n }\n }\n }, {});\n };\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n valueParameterDecoder,\n zarithDecoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptDecoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { toHexString } from './utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decoders: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoder,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoder,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecoders[CODEC.OPERATION] = operationDecoder(decoders);\ndecoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ActivationSchema)(val);\ndecoders[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DelegationSchema)(val);\ndecoders[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransactionSchema)(val);\ndecoders[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(OriginationSchema)(val);\ndecoders[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(BallotSchema)(val);\ndecoders[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(EndorsementSchema)(val);\ndecoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(SeedNonceRevelationSchema)(val);\ndecoders[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ProposalsSchema)(val);\ndecoders[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(RevealSchema)(val);\ndecoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(RegisterGlobalConstantSchema)(val);\ndecoders[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransferTicketSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupOriginationSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupSubmitBatchSchema)(val);\ndecoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(IncreasePaidStorageSchema)(val);\ndecoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(UpdateConsensusKeySchema)(val);\ndecoders[CODEC.OP_DRAIN_DELEGATE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DrainDelegateSchema)(val);\ndecoders[CODEC.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n entrypointNameEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n valueParameterEncoder,\n zarithEncoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptEncoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encoders: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoder,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoder,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencoders[CODEC.OPERATION] = operationEncoder(encoders);\nencoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) => schemaEncoder(encoders)(ActivationSchema)(val);\nencoders[CODEC.OP_DELEGATION] = (val: any) => schemaEncoder(encoders)(DelegationSchema)(val);\nencoders[CODEC.OP_TRANSACTION] = (val: any) => schemaEncoder(encoders)(TransactionSchema)(val);\nencoders[CODEC.OP_ORIGINATION] = (val: any) => schemaEncoder(encoders)(OriginationSchema)(val);\nencoders[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encoders)(BallotSchema)(val);\nencoders[CODEC.OP_ENDORSEMENT] = (val: any) => schemaEncoder(encoders)(EndorsementSchema)(val);\nencoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encoders)(SeedNonceRevelationSchema)(val);\nencoders[CODEC.OP_PROPOSALS] = (val: any) => schemaEncoder(encoders)(ProposalsSchema)(val);\nencoders[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encoders)(RevealSchema)(val);\nencoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encoders)(TransferTicketSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encoders)(TxRollupOriginationSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encoders)(TxRollupSubmitBatchSchema)(val);\nencoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encoders)(IncreasePaidStorageSchema)(val);\nencoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: any) =>\n schemaEncoder(encoders)(UpdateConsensusKeySchema)(val);\nencoders[CODEC.OP_DRAIN_DELEGATE] = (val: any) => schemaEncoder(encoders)(DrainDelegateSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n} from './schema/operation';\n\ntype OperationKind =\n | OpKind.ACTIVATION\n | OpKind.REVEAL\n | OpKind.DELEGATION\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.BALLOT\n | OpKind.ENDORSEMENT\n | OpKind.SEED_NONCE_REVELATION\n | OpKind.PROPOSALS\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.TRANSFER_TICKET\n | OpKind.TX_ROLLUP_ORIGINATION\n | OpKind.TX_ROLLUP_SUBMIT_BATCH\n | OpKind.INCREASE_PAID_STORAGE\n | OpKind.UPDATE_CONSENSUS_KEY\n | OpKind.DRAIN_DELEGATE;\n\nconst OperationKindMapping = {\n activate_account: ActivationSchema,\n reveal: RevealSchema,\n delegation: DelegationSchema,\n transaction: TransactionSchema,\n origination: OriginationSchema,\n ballot: BallotSchema,\n endorsement: EndorsementSchema,\n seed_nonce_revelation: SeedNonceRevelationSchema,\n proposals: ProposalsSchema,\n register_global_constant: RegisterGlobalConstantSchema,\n transfer_ticket: TransferTicketSchema,\n tx_rollup_origination: TxRollupOriginationSchema,\n tx_rollup_submit_batch: TxRollupSubmitBatchSchema,\n increase_paid_storage: IncreasePaidStorageSchema,\n update_consensus_key: UpdateConsensusKeySchema,\n drain_delegate: DrainDelegateSchema,\n};\n\n// Asymmetric difference: only account for things in arr2 that are not present in arr1, not vice versa\nconst getArrayDifference = (arr1: string[], arr2: string[]) => {\n return arr2.filter((x) => !arr1.includes(x));\n};\n\nconst deleteArrayElementByValue = (array: string[], item: string) => {\n return array.filter((e) => e !== item);\n};\n\n/**\n * @returns A boolean value to indicate whether the operation kind is valid or not\n */\nexport const validateOperationKind = (opKind: OpKind) => {\n const opKindList = Object.keys(OperationKindMapping);\n return opKindList.includes(opKind);\n};\n\n/**\n * returns 0 when the two array of properties are identical or the passed property\n * does not have any missing parameters from the corresponding schema\n *\n * @returns array element differences if there are missing required property keys\n */\nexport const validateMissingProperty = (operationContent: OperationContents) => {\n const kind = operationContent.kind as OperationKind;\n\n const keys = Object.keys(operationContent);\n const cleanKeys = deleteArrayElementByValue(keys, 'kind');\n\n const schemaKeys = Object.keys(OperationKindMapping[kind]);\n\n return getArrayDifference(cleanKeys, schemaKeys);\n};\n","export enum ProtocolsHash {\n Pt24m4xi = 'Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd',\n PsBABY5H = 'PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU',\n PsBabyM1 = 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS',\n PsCARTHA = 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb',\n PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo',\n PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA',\n PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i',\n PtGRANADs = 'PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV',\n PtHangz2 = 'PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n PtJakart2 = 'PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY',\n PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg',\n PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW',\n ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK',\n}\n\nconst protoLevel: Record<ProtocolsHash, number> = {\n Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd: 4,\n PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU: 5,\n PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS: 5,\n PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb: 6,\n PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo: 7,\n PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA: 8,\n PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i: 9,\n PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV: 10,\n PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx: 11,\n Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A: 12,\n PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY: 13,\n PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14,\n PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15,\n ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 16,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMappingProto14: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n};\n\nexport const opMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto14).forEach((key: string) => {\n result[opMappingProto14[key]] = key;\n });\n return result;\n})();\n\nexport const entrypointMappingProto14: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n};\n\nexport const entrypointMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMappingProto14).forEach((key: string) => {\n result[entrypointMappingProto14[key]] = key;\n });\n return result;\n})();\n","import { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { Decoder, Encoder } from '../../taquito-local-forging';\nimport { opMappingReverseProto14, opMappingProto14 } from '../constants-proto14';\nimport { pad } from '../../utils';\nimport { UnexpectedMichelsonValueError } from '../../error';\nimport {\n bytesDecoder,\n bytesEncoder,\n decodeAnnots,\n encodeAnnots,\n extractRequiredLen,\n intDecoder,\n intEncoder,\n isBytes,\n isInt,\n isPrim,\n isString,\n MichelsonValue,\n PrimValue,\n stringDecoder,\n stringEncoder,\n} from '../../michelson/codec';\n\nexport const scriptEncoderProto14: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto14(script.code);\n const storage = valueEncoderProto14(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto14(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto14(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto14: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto14(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto14(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoderProto14(val));\n }\n return results;\n }\n default:\n return primDecoderProto14(value, preamble);\n }\n};\n\nexport const primEncoderProto14: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverseProto14[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto14(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if (value.prim === 'LAMBDA' && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoderProto14 = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMappingProto14[op],\n };\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto14[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto14(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto14[op] === 'pair' || opMappingProto14[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoderProto14(value));\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoderProto14 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto14(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoderProto14(array));\n }\n return args;\n};\n","import { OversizedEntryPointError } from '../error';\nimport { ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { valueDecoderProto14, valueEncoderProto14 } from './michelson/codec-proto14';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { entrypointMappingProto14, entrypointMappingReverseProto14 } from './constants-proto14';\n\nexport const parametersDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoderProto14(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoderProto14(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoderProto14 = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverseProto14) {\n return `${entrypointMappingReverseProto14[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoderProto14(value).slice(8)}`;\n }\n};\n\nexport const entrypointDecoderProto14 = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMappingProto14) {\n return entrypointMappingProto14[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersEncoderProto14 = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoderProto14(val.entrypoint);\n const parameters = valueEncoderProto14(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto14 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto14(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto14(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointNameEncoderProto14 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto14(value).slice(2)}`;\n};\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n zarithDecoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport { scriptDecoderProto14 } from './michelson/codec-proto14';\nimport { parametersDecoderProto14, valueParameterDecoderProto14 } from './codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { toHexString } from '../utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decodersProto14: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoderProto14,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoderProto14,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto14[CODEC.OPERATION] = operationDecoder(decodersProto14);\ndecodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ActivationSchema)(val);\ndecodersProto14[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(DelegationSchema)(val);\ndecodersProto14[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransactionSchema)(val);\ndecodersProto14[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(OriginationSchema)(val);\ndecodersProto14[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(BallotSchema)(val);\ndecodersProto14[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(EndorsementSchema)(val);\ndecodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(SeedNonceRevelationSchema)(val);\ndecodersProto14[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ProposalsSchema)(val);\ndecodersProto14[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RevealSchema)(val);\ndecodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RegisterGlobalConstantSchema)(val);\ndecodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransferTicketSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupOriginationSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupSubmitBatchSchema)(val);\ndecodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(IncreasePaidStorageSchema)(val);\ndecodersProto14[CODEC.MANAGER] = schemaDecoder(decodersProto14)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n zarithEncoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport {\n entrypointNameEncoderProto14,\n parametersEncoderProto14,\n valueParameterEncoderProto14,\n} from './codec-proto14';\nimport { scriptEncoderProto14 } from './michelson/codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encodersProto14: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoderProto14,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoderProto14,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto14,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto14[CODEC.OPERATION] = operationEncoder(encodersProto14);\nencodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto14)(ActivationSchema)(val);\nencodersProto14[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto14)(DelegationSchema)(val);\nencodersProto14[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto14)(TransactionSchema)(val);\nencodersProto14[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(OriginationSchema)(val);\nencodersProto14[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto14)(BallotSchema)(val);\nencodersProto14[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto14)(EndorsementSchema)(val);\nencodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto14)(SeedNonceRevelationSchema)(val);\nencodersProto14[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto14)(ProposalsSchema)(val);\nencodersProto14[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto14)(RevealSchema)(val);\nencodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto14)(RegisterGlobalConstantSchema)(val);\nencodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto14)(TransferTicketSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupOriginationSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupSubmitBatchSchema)(val);\nencodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encodersProto14)(IncreasePaidStorageSchema)(val);\nencodersProto14[CODEC.MANAGER] = schemaEncoder(encodersProto14)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"91c00d2ab471e4fbb4c654fc45435919ad9e0675\",\n \"version\": \"15.0.0-beta-RC.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { validateBlock, ValidationResult, InvalidOperationKindError } from '@taquito/utils';\nimport { InvalidBlockHashError, InvalidOperationSchemaError } from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\nimport { ProtocolsHash, ProtoInferiorTo } from './protocols';\nimport { decodersProto14 } from './proto14-kathmandu/decoder-proto14';\nimport { encodersProto14 } from './proto14-kathmandu/encoder-proto14';\n\nexport { CODEC, opMapping, opMappingReverse } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\nexport { ProtocolsHash } from './protocols';\n\nconst PROTOCOL_CURRENT = ProtocolsHash.PtKathman;\n\nexport function getCodec(codec: CODEC, _proto: ProtocolsHash) {\n // use proto14 encoders & decoders if it's kathmandu or prior\n if (_proto === ProtocolsHash.PtKathman || ProtoInferiorTo(_proto, PROTOCOL_CURRENT)) {\n return {\n encoder: encodersProto14[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto14[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = PROTOCOL_CURRENT) {}\n\n private codec = getCodec(CODEC.MANAGER, this.protocolHash);\n\n forge(params: ForgeParams): Promise<string> {\n if (validateBlock(params.branch) !== ValidationResult.VALID) {\n throw new InvalidBlockHashError(`The block hash ${params.branch} is invalid`);\n }\n\n for (const content of params.contents) {\n if (!validateOperationKind(content.kind)) {\n throw new InvalidOperationKindError(content.kind);\n }\n\n const diff = validateMissingProperty(content);\n if (diff.length === 1) {\n if (content.kind === 'delegation' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'origination' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'transaction' && diff[0] === 'parameters') {\n continue;\n } else if (\n content.kind === ('tx_rollup_submit_batch' as unknown) &&\n diff[0] === 'burn_limit'\n ) {\n continue;\n } else {\n throw new InvalidOperationSchemaError(\n `Missing properties: ${diff.join(', ').toString()}`\n );\n }\n } else if (diff.length > 1) {\n throw new InvalidOperationSchemaError(`Missing properties: ${diff.join(', ').toString()}`);\n }\n }\n const forged = this.codec.encoder(params).toLowerCase();\n return Promise.resolve(forged);\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["CODEC","BigNumber","decodeCombPair","buf2hex","b58cdecode","prefixMap","prefixLength","b58cencode","Prefix","InvalidKeyHashError","InvalidPublicKeyError","InvalidAddressError","InvalidContractAddressError","InvalidOperationKindError","ProtocolsHash","validateBlock","ValidationResult"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-local-forging.umd.js","sources":["../src/utils.ts","../src/constants.ts","../src/error.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/validator.ts","../src/protocols.ts","../src/proto14-kathmandu/constants-proto14.ts","../src/proto14-kathmandu/michelson/codec-proto14.ts","../src/proto14-kathmandu/codec-proto14.ts","../src/proto14-kathmandu/decoder-proto14.ts","../src/proto14-kathmandu/encoder-proto14.ts","../src/version.ts","../src/taquito-local-forging.ts"],"sourcesContent":["export const concat = (...arr: Uint8Array[]) => {\n return arr.reduce((a: Uint8Array, b: Uint8Array) => {\n const c = new Uint8Array(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }, new Uint8Array());\n};\n\nexport const toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport const pad = (num: number, paddingLen = 8) => {\n return num.toString(16).padStart(paddingLen, '0');\n};\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { pad } from './utils';\n\n// See: https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const ENTRYPOINT_MAX_LENGTH = 31;\n\nexport enum CODEC {\n SECRET = 'secret',\n RAW = 'raw',\n TZ1 = 'tz1',\n BRANCH = 'branch',\n ZARITH = 'zarith',\n PUBLIC_KEY = 'public_key',\n PKH = 'pkh',\n DELEGATE = 'delegate',\n SCRIPT = 'script',\n BALLOT_STATEMENT = 'ballotStmt',\n PROPOSAL = 'proposal',\n PROPOSAL_ARR = 'proposalArr',\n INT32 = 'int32',\n INT16 = 'int16',\n PARAMETERS = 'parameters',\n ADDRESS = 'address',\n SMART_CONTRACT_ADDRESS = 'smart_contract_address',\n VALUE = 'value',\n MANAGER = 'manager',\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n ENTRYPOINT = 'entrypoint',\n OPERATION = 'operation',\n OP_ACTIVATE_ACCOUNT = 'activate_account',\n OP_DELEGATION = 'delegation',\n OP_TRANSACTION = 'transaction',\n OP_ORIGINATION = 'origination',\n OP_BALLOT = 'ballot',\n OP_ENDORSEMENT = 'endorsement',\n OP_SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n OP_REVEAL = 'reveal',\n OP_PROPOSALS = 'proposals',\n OP_REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n OP_TRANSFER_TICKET = 'transfer_ticket',\n OP_TX_ROLLUP_ORIGINATION = 'tx_rollup_origination',\n OP_TX_ROLLUP_SUBMIT_BATCH = 'tx_rollup_submit_batch',\n BURN_LIMIT = 'burn_limit',\n TX_ROLLUP_ORIGINATION_PARAM = 'tx_rollup_origination_param',\n TX_ROLLUP_ID = 'tx_rollup_id',\n TX_ROLLUP_BATCH_CONTENT = 'tx_rollup_batch_content',\n OP_INCREASE_PAID_STORAGE = 'increase_paid_storage',\n OP_UPDATE_CONSENSUS_KEY = 'update_consensus_key',\n OP_DRAIN_DELEGATE = 'drain_delegate',\n}\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMapping: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET_DEPRECATED',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n '98': 'Lambda_rec',\n '99': 'LAMBDA_REC',\n '9a': 'TICKET',\n};\n\nexport const opMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMapping).forEach((key: string) => {\n result[opMapping[key]] = key;\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/shell/p2p_api.html?highlight=p2p\nexport const kindMapping: { [key: number]: string } = {\n 0x04: 'activate_account',\n 0x6b: 'reveal',\n 0x6e: 'delegation',\n 0x6c: 'transaction',\n 0x6d: 'origination',\n 0x06: 'ballot',\n 0x15: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\n 0x96: 'tx_rollup_origination',\n 0x97: 'tx_rollup_submit_batch',\n 0x9e: 'transfer_ticket',\n 0x71: 'increase_paid_storage',\n 0x72: 'update_consensus_key',\n 0x09: 'drain_delegate',\n};\n\nexport const kindMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMapping).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMapping[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const entrypointMapping: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n '05': 'deposit',\n};\n\nexport const entrypointMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMapping).forEach((key: string) => {\n result[entrypointMapping[key]] = key;\n });\n return result;\n})();\n","import { ENTRYPOINT_MAX_LENGTH } from './constants';\n\n/**\n * @category Error\n * @description Error that indicates an invalid block hash being passed or used\n */\nexport class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid operation schema being passed or used\n */ export class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an entrypoint exceeding maximum size\n */\nexport class OversizedEntryPointError extends Error {\n public name = 'OversizedEntryPointError';\n constructor(public entrypoint: string) {\n super(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid ballot value\n */\nexport class InvalidBallotValueError extends Error {\n public name = 'InvalidBallotValueError';\n constructor(public ballotValue: string) {\n super(`The ballot value '${ballotValue}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode ballot value\n */\nexport class DecodeBallotValueError extends Error {\n public name = 'DecodeBallotValueError';\n constructor(public ballotValue: string) {\n super(`Failed to decode ballot value ${ballotValue}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid hex string have been passed or used\n */\nexport class InvalidHexStringError extends Error {\n public name = 'InvalidHexStringError';\n constructor(public hexString: string) {\n super(`The hex string '${hexString}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates unexpected Michelson Value being passed or used\n */\nexport class UnexpectedMichelsonValueError extends Error {\n public name = 'UnexpectedMichelsonValueError';\n constructor(public value: string) {\n super(`Failed to encode michelson value '${value}'`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode an operation\n */\nexport class OperationDecodingError extends Error {\n public name = 'OperationDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode an operation\n */\nexport class OperationEncodingError extends Error {\n public name = 'OperationEncodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported operation being passed or used\n */\nexport class UnsupportedOperationError extends Error {\n public name = 'UnsupportedOperationError';\n constructor(public op: string) {\n super(`The operation '${op}' is unsupported`);\n }\n}\n","import { InvalidHexStringError } from './error';\nexport class Uint8ArrayConsumer {\n static fromHexString(hex: string) {\n const lowHex = hex.toLowerCase();\n if (/^(([a-f]|\\d){2})*$/.test(lowHex)) {\n const arr = new Uint8Array(\n (lowHex.match(/([a-z]|\\d){2}/g) || []).map((byte) => parseInt(byte, 16))\n );\n return new Uint8ArrayConsumer(arr);\n } else {\n throw new InvalidHexStringError(lowHex);\n }\n }\n\n constructor(private readonly arr: Uint8Array, private offset: number = 0) {}\n\n public consume(count: number): Uint8Array {\n const subArr = this.arr.subarray(this.offset, this.offset + count);\n this.offset += count;\n return subArr;\n }\n\n public get(idx: number) {\n return this.arr[this.offset + idx];\n }\n\n public length() {\n return this.arr.length - this.offset;\n }\n}\n","import { BigNumber } from 'bignumber.js';\nimport { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { Encoder } from '../taquito-local-forging';\nimport { opMappingReverse, opMapping } from '../constants';\nimport { pad } from '../utils';\nimport { InvalidHexStringError, UnexpectedMichelsonValueError } from '../error';\n\nexport type PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\nexport type BytesValue = { bytes: string };\nexport type StringValue = { string: string };\nexport type IntValue = { int: string };\nexport type MichelsonValue =\n | PrimValue\n | BytesValue\n | StringValue\n | IntValue\n | (PrimValue | BytesValue | StringValue | IntValue)[];\n\nexport const isPrim = (value: MichelsonValue): value is PrimValue => {\n return 'prim' in value;\n};\n\nexport const isBytes = (value: MichelsonValue): value is BytesValue => {\n return 'bytes' in value && typeof value.bytes === 'string';\n};\n\nexport const isString = (value: MichelsonValue): value is StringValue => {\n return 'string' in value && typeof value.string === 'string';\n};\n\nexport const isInt = (value: MichelsonValue): value is IntValue => {\n return 'int' in value && typeof value.int === 'string';\n};\n\nexport const scriptEncoder: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoder(script.code);\n const storage = valueEncoder(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoder(new Uint8ArrayConsumer(code)),\n storage: valueDecoder(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoder: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoder(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoder(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoder(val));\n }\n return results;\n }\n default:\n return primDecoder(value, preamble);\n }\n};\n\nexport const extractRequiredLen = (value: Uint8ArrayConsumer, bytesLength = 4) => {\n const len = value.consume(bytesLength);\n const valueLen = parseInt(Buffer.from(len).toString('hex'), 16);\n return value.consume(valueLen);\n};\n\nexport const bytesEncoder: Encoder<BytesValue> = (value) => {\n if (!/^([A-Fa-f0-9]{2})*$/.test(value.bytes)) {\n throw new InvalidHexStringError(value.bytes);\n }\n\n const len = value.bytes.length / 2;\n return `0a${pad(len)}${value.bytes}`;\n};\n\nexport const bytesDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const bytes = extractRequiredLen(value);\n return {\n bytes: Buffer.from(bytes).toString('hex'),\n };\n};\n\nexport const stringEncoder: Encoder<StringValue> = (value) => {\n const str = Buffer.from(value.string, 'utf8').toString('hex');\n const hexLength = str.length / 2;\n return `01${pad(hexLength)}${str}`;\n};\n\nexport const stringDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const str = extractRequiredLen(value);\n return {\n string: Buffer.from(str).toString('utf8'),\n };\n};\n\nexport const intEncoder: Encoder<IntValue> = ({ int }) => {\n const num = new BigNumber(int, 10);\n const positiveMark = num.toString(2)[0] === '-' ? '1' : '0';\n const binary = num.toString(2).replace(/-/g, '');\n\n const pad =\n binary.length <= 6\n ? 6\n : (binary.length - 6) % 7\n ? binary.length + 7 - ((binary.length - 6) % 7)\n : binary.length;\n\n const splitted = binary.padStart(pad, '0').match(/\\d{6,7}/g);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reversed = splitted!.reverse();\n\n reversed[0] = positiveMark + reversed[0];\n\n const numHex = reversed.map((x: string, i: number) =>\n // Add one to the last chunk\n parseInt((i === reversed.length - 1 ? '0' : '1') + x, 2)\n .toString(16)\n .padStart(2, '0')\n );\n\n return `00${numHex.join('')}`;\n};\n\nexport const intDecoder = (value: Uint8ArrayConsumer): IntValue => {\n let c = value.consume(1)[0];\n const hexNumber: number[] = [];\n const isNotLastChunkMask = 1 << 7;\n while (c & isNotLastChunkMask) {\n hexNumber.push(c);\n c = value.consume(1)[0];\n }\n\n hexNumber.push(c);\n const isNegative = !!((1 << 6) & hexNumber[0]);\n\n hexNumber[0] = hexNumber[0] & 0b1111111;\n\n const numBin = hexNumber\n .map((x, i) =>\n x\n .toString(2)\n .slice(i === 0 ? -6 : -7)\n .padStart(i === 0 ? 6 : 7, '0')\n )\n .reverse();\n let num = new BigNumber(numBin.join(''), 2);\n if (isNegative) {\n num = num.times(-1);\n }\n\n return {\n int: num.toFixed(),\n };\n};\n\nexport const primEncoder: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverse[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoder(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if ((value.prim === 'LAMBDA' || value.prim === 'LAMBDA_REC') && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMapping[op],\n };\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (opMapping[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoder(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMapping[op] === 'pair' || opMapping[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoder(value));\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoder = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoder(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoder(array));\n }\n return args;\n};\n\nexport const encodeAnnots: Encoder<string[]> = (value: string[]) => {\n const mergedAnnot = value\n .map((x) => {\n return Buffer.from(x, 'utf8').toString('hex');\n })\n .join('20');\n\n const len = mergedAnnot.length / 2;\n return `${pad(len)}${mergedAnnot}`;\n};\n\nexport const decodeAnnots: Decoder = (val: Uint8ArrayConsumer): string[] => {\n const len = val.consume(4);\n const annotLen = parseInt(Buffer.from(len).toString('hex'), 16);\n const restOfAnnot = val.consume(annotLen);\n\n const restOfAnnotHex = Buffer.from(restOfAnnot).toString('hex');\n return restOfAnnotHex.split('20').map((x) => Buffer.from(x, 'hex').toString('utf8'));\n};\n","import {\n b58cdecode,\n b58cencode,\n buf2hex,\n Prefix,\n prefix as prefixMap,\n prefixLength,\n InvalidKeyHashError,\n InvalidPublicKeyError,\n InvalidAddressError,\n InvalidContractAddressError,\n} from '@taquito/utils';\nimport { OversizedEntryPointError, InvalidBallotValueError, DecodeBallotValueError } from './error';\nimport BigNumber from 'bignumber.js';\nimport { entrypointMapping, entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from './constants';\nimport { extractRequiredLen, valueDecoder, valueEncoder, MichelsonValue } from './michelson/codec';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { pad } from './utils';\n\nexport const prefixEncoder = (prefix: Prefix) => (str: string) => {\n return buf2hex(Buffer.from(b58cdecode(str, prefixMap[prefix])));\n};\n\nexport const prefixDecoder = (pre: Prefix) => (str: Uint8ArrayConsumer) => {\n const val = str.consume(prefixLength[pre]);\n return b58cencode(val, prefixMap[pre]);\n};\n\nexport const tz1Decoder = prefixDecoder(Prefix.TZ1);\nexport const branchDecoder = prefixDecoder(Prefix.B);\nexport const pkhDecoder = (val: Uint8ArrayConsumer) => {\n const prefix = val.consume(1);\n\n if (prefix[0] === 0x00) {\n return prefixDecoder(Prefix.TZ1)(val);\n } else if (prefix[0] === 0x01) {\n return prefixDecoder(Prefix.TZ2)(val);\n } else if (prefix[0] === 0x02) {\n return prefixDecoder(Prefix.TZ3)(val);\n }\n};\n\nexport const branchEncoder = prefixEncoder(Prefix.B);\nexport const tz1Encoder = prefixEncoder(Prefix.TZ1);\n\nexport const boolEncoder = (bool: unknown): string => (bool ? 'ff' : '00');\n\nexport const proposalEncoder = (proposal: string): string => {\n return prefixEncoder(Prefix.P)(proposal);\n};\n\nexport const proposalDecoder = (proposal: Uint8ArrayConsumer): string => {\n return prefixDecoder(Prefix.P)(proposal);\n};\n\nexport const proposalsDecoder = (proposal: Uint8ArrayConsumer): string[] => {\n const proposals = [];\n proposal.consume(4);\n while (proposal.length() > 0) {\n proposals.push(proposalDecoder(proposal));\n }\n return proposals;\n};\n\nexport const proposalsEncoder = (proposals: string[]): string => {\n return pad(32 * proposals.length) + proposals.map((x) => proposalEncoder(x)).join('');\n};\n\nexport const ballotEncoder = (ballot: string): string => {\n switch (ballot) {\n case 'yay':\n return '00';\n case 'nay':\n return '01';\n case 'pass':\n return '02';\n default:\n throw new InvalidBallotValueError(ballot);\n }\n};\n\nexport const ballotDecoder = (ballot: Uint8ArrayConsumer): string => {\n const value = ballot.consume(1);\n switch (value[0]) {\n case 0x00:\n return 'yay';\n case 0x01:\n return 'nay';\n case 0x02:\n return 'pass';\n default:\n throw new DecodeBallotValueError(value[0].toString());\n }\n};\n\nexport const delegateEncoder = (val: string) => {\n if (val) {\n return boolEncoder(true) + pkhEncoder(val);\n } else {\n return boolEncoder(false);\n }\n};\n\nexport const int32Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 4; i++) {\n const shiftBy = (4 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int32Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(4);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const int16Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 2; i++) {\n const shiftBy = (2 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int16Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(2);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const boolDecoder = (val: Uint8ArrayConsumer): boolean => {\n const bool = val.consume(1);\n return bool[0] === 0xff;\n};\n\nexport const delegateDecoder = (val: Uint8ArrayConsumer) => {\n const hasDelegate = boolDecoder(val);\n if (hasDelegate) {\n return pkhDecoder(val);\n }\n};\n\nexport const pkhEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n return '00' + prefixEncoder(Prefix.TZ1)(val);\n case Prefix.TZ2:\n return '01' + prefixEncoder(Prefix.TZ2)(val);\n case Prefix.TZ3:\n return '02' + prefixEncoder(Prefix.TZ3)(val);\n default:\n throw new InvalidKeyHashError(val);\n }\n};\n\nexport const publicKeyEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 4);\n switch (pubkeyPrefix) {\n case Prefix.EDPK:\n return '00' + prefixEncoder(Prefix.EDPK)(val);\n case Prefix.SPPK:\n return '01' + prefixEncoder(Prefix.SPPK)(val);\n case Prefix.P2PK:\n return '02' + prefixEncoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val);\n }\n};\n\nexport const addressEncoder = (val: string): string => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n case Prefix.TZ2:\n case Prefix.TZ3:\n return '00' + pkhEncoder(val);\n case Prefix.KT1:\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n default:\n throw new InvalidAddressError(val);\n }\n};\n\nexport const smartContractAddressEncoder = (val: string): string => {\n const prefix = val.substring(0, 3);\n\n if (prefix === Prefix.KT1) {\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n }\n throw new InvalidContractAddressError(val);\n};\n\nexport const publicKeyDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return prefixDecoder(Prefix.EDPK)(val);\n case 0x01:\n return prefixDecoder(Prefix.SPPK)(val);\n case 0x02:\n return prefixDecoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val.toString());\n }\n};\n\nexport const addressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return pkhDecoder(val);\n case 0x01: {\n const address = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return address;\n }\n default:\n throw new InvalidAddressError(val.toString());\n }\n};\n\nexport const smartContractAddressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x01) {\n const scAddress = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return scAddress;\n }\n throw new InvalidContractAddressError(val.toString());\n};\n\nexport const zarithEncoder = (n: string): string => {\n const fn: Array<string> = [];\n let nn = new BigNumber(n, 10);\n if (nn.isNaN()) {\n throw new TypeError(`Invalid zarith number ${n}`);\n }\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (nn.lt(128)) {\n if (nn.lt(16)) fn.push('0');\n fn.push(nn.toString(16));\n break;\n } else {\n let b = nn.mod(128);\n nn = nn.minus(b);\n nn = nn.dividedBy(128);\n b = b.plus(128);\n fn.push(b.toString(16));\n }\n }\n return fn.join('');\n};\n\nexport const zarithDecoder = (n: Uint8ArrayConsumer): string => {\n let mostSignificantByte = 0;\n while (mostSignificantByte < n.length() && (n.get(mostSignificantByte) & 128) !== 0) {\n mostSignificantByte += 1;\n }\n\n let num = new BigNumber(0);\n for (let i = mostSignificantByte; i >= 0; i -= 1) {\n const tmp = n.get(i) & 0x7f;\n num = num.multipliedBy(128);\n num = num.plus(tmp);\n }\n\n n.consume(mostSignificantByte + 1);\n return new BigNumber(num).toString();\n};\n\nexport const entrypointDecoder = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMapping) {\n return entrypointMapping[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoder(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoder(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoder = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverse) {\n return `${entrypointMappingReverse[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoder(value).slice(8)}`;\n }\n};\n\nexport const parametersEncoder = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoder(val.entrypoint);\n const parameters = valueEncoder(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoder = (value: MichelsonValue) => {\n const valueEncoded = valueEncoder(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoder(new Uint8ArrayConsumer(value));\n};\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n\nexport const entrypointNameEncoder = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoder(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoder = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const txRollupOriginationParamEncoder = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoder = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoder = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoder = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoder = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return Buffer.from(value).toString('hex');\n};\n\nexport const burnLimitEncoder = (val: string) => {\n return !val ? '00' : `ff${zarithEncoder(val)}`;\n};\n\nexport const burnLimitDecoder = (value: Uint8ArrayConsumer) => {\n const prefix = value.consume(1);\n if (Buffer.from(prefix).toString('hex') !== '00') {\n return zarithDecoder(value);\n }\n};\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { CODEC, kindMapping, kindMappingReverse } from '../constants';\nimport { InvalidOperationKindError } from '@taquito/utils';\nimport {\n OperationDecodingError,\n OperationEncodingError,\n UnsupportedOperationError,\n} from '../error';\n\nexport const ManagerOperationSchema = {\n branch: CODEC.BRANCH,\n contents: [CODEC.OPERATION],\n};\n\nexport const ActivationSchema = {\n pkh: CODEC.TZ1,\n secret: CODEC.SECRET,\n};\n\nexport const RevealSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n public_key: CODEC.PUBLIC_KEY,\n};\n\nexport const DelegationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n};\n\nexport const TransactionSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n parameters: CODEC.PARAMETERS,\n};\n\nexport const OriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n balance: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n script: CODEC.SCRIPT,\n};\n\nexport const BallotSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposal: CODEC.PROPOSAL,\n ballot: CODEC.BALLOT_STATEMENT,\n};\n\nexport const EndorsementSchema = {\n slot: CODEC.INT16,\n level: CODEC.INT32,\n round: CODEC.INT32,\n block_payload_hash: CODEC.BLOCK_PAYLOAD_HASH,\n};\n\nexport const SeedNonceRevelationSchema = {\n level: CODEC.INT32,\n nonce: CODEC.RAW,\n};\n\nexport const ProposalsSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposals: CODEC.PROPOSAL_ARR,\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n value: CODEC.VALUE,\n};\n\nexport const TransferTicketSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n ticket_contents: CODEC.VALUE,\n ticket_ty: CODEC.VALUE,\n ticket_ticketer: CODEC.ADDRESS,\n ticket_amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n entrypoint: CODEC.ENTRYPOINT,\n};\n\nexport const TxRollupOriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n tx_rollup_origination: CODEC.TX_ROLLUP_ORIGINATION_PARAM,\n};\n\nexport const TxRollupSubmitBatchSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n rollup: CODEC.TX_ROLLUP_ID,\n content: CODEC.TX_ROLLUP_BATCH_CONTENT,\n burn_limit: CODEC.BURN_LIMIT,\n};\n\nexport const IncreasePaidStorageSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.SMART_CONTRACT_ADDRESS,\n};\n\nexport const UpdateConsensusKeySchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n pk: CODEC.PUBLIC_KEY,\n};\n\nexport const DrainDelegateSchema = {\n consensus_key: CODEC.PKH,\n delegate: CODEC.PKH,\n destination: CODEC.PKH,\n};\n\nexport const operationEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverse)) {\n throw new InvalidOperationKindError(operation.kind);\n }\n\n return kindMappingReverse[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoder =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMapping[op[0]];\n if (operationName === undefined) {\n throw new UnsupportedOperationError(op[0].toString());\n }\n\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new OperationDecodingError('Decoded invalid operation');\n }\n\n return {\n kind: operationName,\n ...decodedObj,\n };\n };\n\ntype Schema = Record<string, CODEC | CODEC[]>;\nexport type Value = Record<keyof Schema, unknown[]>;\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (schema: Schema) => (value: Value) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key] as CODEC;\n\n if (value && Array.isArray(valueToEncode)) {\n const encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new OperationEncodingError(`Expected value to be Array ${JSON.stringify(values)}`);\n }\n\n return prev + values.reduce((prevBytes, current) => prevBytes + encoder(current), '');\n } else {\n const encoder = encoders[valueToEncode];\n return prev + encoder(value[key]);\n }\n }, '');\n };\n\nexport const schemaDecoder =\n (decoders: { [key: string]: Decoder }) =>\n (schema: { [key: string]: string | string[] }) =>\n (value: Uint8ArrayConsumer) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key];\n\n if (Array.isArray(valueToEncode)) {\n const decoder = decoders[valueToEncode[0]];\n\n const decoded = [];\n const lastLength = value.length();\n while (value.length() > 0) {\n decoded.push(decoder(value));\n\n if (lastLength === value.length()) {\n throw new OperationDecodingError('Unable to decode value');\n }\n }\n\n return {\n ...prev,\n [key]: decoded,\n };\n } else {\n const decoder = decoders[valueToEncode];\n\n const result = decoder(value);\n\n if (typeof result !== 'undefined') {\n return {\n ...prev,\n [key]: result,\n };\n } else {\n return {\n ...prev,\n };\n }\n }\n }, {});\n };\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n valueParameterDecoder,\n zarithDecoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptDecoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { toHexString } from './utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decoders: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoder,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoder,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecoders[CODEC.OPERATION] = operationDecoder(decoders);\ndecoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ActivationSchema)(val);\ndecoders[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DelegationSchema)(val);\ndecoders[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransactionSchema)(val);\ndecoders[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(OriginationSchema)(val);\ndecoders[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(BallotSchema)(val);\ndecoders[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(EndorsementSchema)(val);\ndecoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(SeedNonceRevelationSchema)(val);\ndecoders[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ProposalsSchema)(val);\ndecoders[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(RevealSchema)(val);\ndecoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(RegisterGlobalConstantSchema)(val);\ndecoders[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransferTicketSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupOriginationSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupSubmitBatchSchema)(val);\ndecoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(IncreasePaidStorageSchema)(val);\ndecoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(UpdateConsensusKeySchema)(val);\ndecoders[CODEC.OP_DRAIN_DELEGATE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DrainDelegateSchema)(val);\ndecoders[CODEC.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n entrypointNameEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n valueParameterEncoder,\n zarithEncoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptEncoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encoders: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoder,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoder,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencoders[CODEC.OPERATION] = operationEncoder(encoders);\nencoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) => schemaEncoder(encoders)(ActivationSchema)(val);\nencoders[CODEC.OP_DELEGATION] = (val: any) => schemaEncoder(encoders)(DelegationSchema)(val);\nencoders[CODEC.OP_TRANSACTION] = (val: any) => schemaEncoder(encoders)(TransactionSchema)(val);\nencoders[CODEC.OP_ORIGINATION] = (val: any) => schemaEncoder(encoders)(OriginationSchema)(val);\nencoders[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encoders)(BallotSchema)(val);\nencoders[CODEC.OP_ENDORSEMENT] = (val: any) => schemaEncoder(encoders)(EndorsementSchema)(val);\nencoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encoders)(SeedNonceRevelationSchema)(val);\nencoders[CODEC.OP_PROPOSALS] = (val: any) => schemaEncoder(encoders)(ProposalsSchema)(val);\nencoders[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encoders)(RevealSchema)(val);\nencoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encoders)(TransferTicketSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encoders)(TxRollupOriginationSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encoders)(TxRollupSubmitBatchSchema)(val);\nencoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encoders)(IncreasePaidStorageSchema)(val);\nencoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: any) =>\n schemaEncoder(encoders)(UpdateConsensusKeySchema)(val);\nencoders[CODEC.OP_DRAIN_DELEGATE] = (val: any) => schemaEncoder(encoders)(DrainDelegateSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n} from './schema/operation';\n\ntype OperationKind =\n | OpKind.ACTIVATION\n | OpKind.REVEAL\n | OpKind.DELEGATION\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.BALLOT\n | OpKind.ENDORSEMENT\n | OpKind.SEED_NONCE_REVELATION\n | OpKind.PROPOSALS\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.TRANSFER_TICKET\n | OpKind.TX_ROLLUP_ORIGINATION\n | OpKind.TX_ROLLUP_SUBMIT_BATCH\n | OpKind.INCREASE_PAID_STORAGE\n | OpKind.UPDATE_CONSENSUS_KEY\n | OpKind.DRAIN_DELEGATE;\n\nconst OperationKindMapping = {\n activate_account: ActivationSchema,\n reveal: RevealSchema,\n delegation: DelegationSchema,\n transaction: TransactionSchema,\n origination: OriginationSchema,\n ballot: BallotSchema,\n endorsement: EndorsementSchema,\n seed_nonce_revelation: SeedNonceRevelationSchema,\n proposals: ProposalsSchema,\n register_global_constant: RegisterGlobalConstantSchema,\n transfer_ticket: TransferTicketSchema,\n tx_rollup_origination: TxRollupOriginationSchema,\n tx_rollup_submit_batch: TxRollupSubmitBatchSchema,\n increase_paid_storage: IncreasePaidStorageSchema,\n update_consensus_key: UpdateConsensusKeySchema,\n drain_delegate: DrainDelegateSchema,\n};\n\n// Asymmetric difference: only account for things in arr2 that are not present in arr1, not vice versa\nconst getArrayDifference = (arr1: string[], arr2: string[]) => {\n return arr2.filter((x) => !arr1.includes(x));\n};\n\nconst deleteArrayElementByValue = (array: string[], item: string) => {\n return array.filter((e) => e !== item);\n};\n\n/**\n * @returns A boolean value to indicate whether the operation kind is valid or not\n */\nexport const validateOperationKind = (opKind: OpKind) => {\n const opKindList = Object.keys(OperationKindMapping);\n return opKindList.includes(opKind);\n};\n\n/**\n * returns 0 when the two array of properties are identical or the passed property\n * does not have any missing parameters from the corresponding schema\n *\n * @returns array element differences if there are missing required property keys\n */\nexport const validateMissingProperty = (operationContent: OperationContents) => {\n const kind = operationContent.kind as OperationKind;\n\n const keys = Object.keys(operationContent);\n const cleanKeys = deleteArrayElementByValue(keys, 'kind');\n\n const schemaKeys = Object.keys(OperationKindMapping[kind]);\n\n return getArrayDifference(cleanKeys, schemaKeys);\n};\n","export enum ProtocolsHash {\n Pt24m4xi = 'Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd',\n PsBABY5H = 'PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU',\n PsBabyM1 = 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS',\n PsCARTHA = 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb',\n PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo',\n PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA',\n PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i',\n PtGRANADs = 'PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV',\n PtHangz2 = 'PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n PtJakart2 = 'PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY',\n PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg',\n PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW',\n ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK',\n}\n\nconst protoLevel: Record<ProtocolsHash, number> = {\n Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd: 4,\n PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU: 5,\n PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS: 5,\n PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb: 6,\n PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo: 7,\n PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA: 8,\n PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i: 9,\n PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV: 10,\n PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx: 11,\n Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A: 12,\n PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY: 13,\n PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14,\n PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15,\n ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 16,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMappingProto14: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n};\n\nexport const opMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto14).forEach((key: string) => {\n result[opMappingProto14[key]] = key;\n });\n return result;\n})();\n\nexport const entrypointMappingProto14: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n};\n\nexport const entrypointMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMappingProto14).forEach((key: string) => {\n result[entrypointMappingProto14[key]] = key;\n });\n return result;\n})();\n","import { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { Decoder, Encoder } from '../../taquito-local-forging';\nimport { opMappingReverseProto14, opMappingProto14 } from '../constants-proto14';\nimport { pad } from '../../utils';\nimport { UnexpectedMichelsonValueError } from '../../error';\nimport {\n bytesDecoder,\n bytesEncoder,\n decodeAnnots,\n encodeAnnots,\n extractRequiredLen,\n intDecoder,\n intEncoder,\n isBytes,\n isInt,\n isPrim,\n isString,\n MichelsonValue,\n PrimValue,\n stringDecoder,\n stringEncoder,\n} from '../../michelson/codec';\n\nexport const scriptEncoderProto14: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto14(script.code);\n const storage = valueEncoderProto14(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto14(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto14(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto14: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto14(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto14(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoderProto14(val));\n }\n return results;\n }\n default:\n return primDecoderProto14(value, preamble);\n }\n};\n\nexport const primEncoderProto14: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverseProto14[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto14(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if (value.prim === 'LAMBDA' && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoderProto14 = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMappingProto14[op],\n };\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto14[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto14(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto14[op] === 'pair' || opMappingProto14[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoderProto14(value));\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoderProto14 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto14(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoderProto14(array));\n }\n return args;\n};\n","import { OversizedEntryPointError } from '../error';\nimport { ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { valueDecoderProto14, valueEncoderProto14 } from './michelson/codec-proto14';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { entrypointMappingProto14, entrypointMappingReverseProto14 } from './constants-proto14';\n\nexport const parametersDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoderProto14(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoderProto14(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoderProto14 = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverseProto14) {\n return `${entrypointMappingReverseProto14[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoderProto14(value).slice(8)}`;\n }\n};\n\nexport const entrypointDecoderProto14 = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMappingProto14) {\n return entrypointMappingProto14[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersEncoderProto14 = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoderProto14(val.entrypoint);\n const parameters = valueEncoderProto14(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto14 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto14(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto14(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointNameEncoderProto14 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto14(value).slice(2)}`;\n};\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n zarithDecoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport { scriptDecoderProto14 } from './michelson/codec-proto14';\nimport { parametersDecoderProto14, valueParameterDecoderProto14 } from './codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { toHexString } from '../utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decodersProto14: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoderProto14,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoderProto14,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto14[CODEC.OPERATION] = operationDecoder(decodersProto14);\ndecodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ActivationSchema)(val);\ndecodersProto14[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(DelegationSchema)(val);\ndecodersProto14[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransactionSchema)(val);\ndecodersProto14[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(OriginationSchema)(val);\ndecodersProto14[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(BallotSchema)(val);\ndecodersProto14[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(EndorsementSchema)(val);\ndecodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(SeedNonceRevelationSchema)(val);\ndecodersProto14[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ProposalsSchema)(val);\ndecodersProto14[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RevealSchema)(val);\ndecodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RegisterGlobalConstantSchema)(val);\ndecodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransferTicketSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupOriginationSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupSubmitBatchSchema)(val);\ndecodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(IncreasePaidStorageSchema)(val);\ndecodersProto14[CODEC.MANAGER] = schemaDecoder(decodersProto14)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n zarithEncoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport {\n entrypointNameEncoderProto14,\n parametersEncoderProto14,\n valueParameterEncoderProto14,\n} from './codec-proto14';\nimport { scriptEncoderProto14 } from './michelson/codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encodersProto14: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoderProto14,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoderProto14,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto14,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto14[CODEC.OPERATION] = operationEncoder(encodersProto14);\nencodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto14)(ActivationSchema)(val);\nencodersProto14[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto14)(DelegationSchema)(val);\nencodersProto14[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto14)(TransactionSchema)(val);\nencodersProto14[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(OriginationSchema)(val);\nencodersProto14[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto14)(BallotSchema)(val);\nencodersProto14[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto14)(EndorsementSchema)(val);\nencodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto14)(SeedNonceRevelationSchema)(val);\nencodersProto14[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto14)(ProposalsSchema)(val);\nencodersProto14[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto14)(RevealSchema)(val);\nencodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto14)(RegisterGlobalConstantSchema)(val);\nencodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto14)(TransferTicketSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupOriginationSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupSubmitBatchSchema)(val);\nencodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encodersProto14)(IncreasePaidStorageSchema)(val);\nencodersProto14[CODEC.MANAGER] = schemaEncoder(encodersProto14)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"ebe5353579be0da07c664f4b294516acdc429f6e\",\n \"version\": \"15.0.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { validateBlock, ValidationResult, InvalidOperationKindError } from '@taquito/utils';\nimport { InvalidBlockHashError, InvalidOperationSchemaError } from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\nimport { ProtocolsHash, ProtoInferiorTo } from './protocols';\nimport { decodersProto14 } from './proto14-kathmandu/decoder-proto14';\nimport { encodersProto14 } from './proto14-kathmandu/encoder-proto14';\n\nexport { CODEC, opMapping, opMappingReverse } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\nexport { ProtocolsHash } from './protocols';\n\nconst PROTOCOL_CURRENT = ProtocolsHash.PtKathman;\n\nexport function getCodec(codec: CODEC, _proto: ProtocolsHash) {\n // use proto14 encoders & decoders if it's kathmandu or prior\n if (_proto === ProtocolsHash.PtKathman || ProtoInferiorTo(_proto, PROTOCOL_CURRENT)) {\n return {\n encoder: encodersProto14[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto14[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = PROTOCOL_CURRENT) {}\n\n private codec = getCodec(CODEC.MANAGER, this.protocolHash);\n\n forge(params: ForgeParams): Promise<string> {\n if (validateBlock(params.branch) !== ValidationResult.VALID) {\n throw new InvalidBlockHashError(`The block hash ${params.branch} is invalid`);\n }\n\n for (const content of params.contents) {\n if (!validateOperationKind(content.kind)) {\n throw new InvalidOperationKindError(content.kind);\n }\n\n const diff = validateMissingProperty(content);\n if (diff.length === 1) {\n if (content.kind === 'delegation' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'origination' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'transaction' && diff[0] === 'parameters') {\n continue;\n } else if (\n content.kind === ('tx_rollup_submit_batch' as unknown) &&\n diff[0] === 'burn_limit'\n ) {\n continue;\n } else {\n throw new InvalidOperationSchemaError(\n `Missing properties: ${diff.join(', ').toString()}`\n );\n }\n } else if (diff.length > 1) {\n throw new InvalidOperationSchemaError(`Missing properties: ${diff.join(', ').toString()}`);\n }\n }\n const forged = this.codec.encoder(params).toLowerCase();\n return Promise.resolve(forged);\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["CODEC","BigNumber","decodeCombPair","buf2hex","b58cdecode","prefixMap","prefixLength","b58cencode","Prefix","InvalidKeyHashError","InvalidPublicKeyError","InvalidAddressError","InvalidContractAddressError","InvalidOperationKindError","ProtocolsHash","validateBlock","ValidationResult"],"mappings":"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"}