@taquito/local-forging 13.0.0 → 13.0.1

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.es6.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/proto13-jakarta/schema/operation-proto13.ts","../src/validator.ts","../src/protocols.ts","../src/proto13-jakarta/constants-proto13.ts","../src/proto13-jakarta/michelson-proto13/codec-proto13.ts","../src/proto13-jakarta/codec-proto13.ts","../src/proto13-jakarta/encoder-proto13.ts","../src/proto13-jakarta/decoder-proto13.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 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}\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',\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};\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/api/p2p.html\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};\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};\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(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' && 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') {\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') {\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} 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 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 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","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 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\n type Schema = Record<string, CODEC | CODEC[]>\n export type Value = Record<keyof Schema, unknown[]>\n \n export const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => \n (schema: Schema) => \n (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 delegateDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\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 ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\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.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\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.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\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 ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\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.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\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.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { CODEC } from \"../../constants\";\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","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './proto13-jakarta/schema/operation-proto13';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\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\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};\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 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 ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 14,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","import { opMapping as opMappingGeneral } from './../constants';\n\nexport const opMappingProto13: { [key: string]: string } = {\n ...opMappingGeneral,\n '84': 'sapling_transaction_deprecated',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n};\n\nexport const opMappingReverseProto13 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto13).forEach((key: string) => {\n result[opMappingProto13[key]] = key;\n });\n return result;\n})();\n","import { Decoder } from '../../decoder';\nimport { pad } from '../../utils';\nimport { Encoder } from '../../encoder';\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';\nimport { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { opMappingProto13, opMappingReverseProto13 } from '../constants-proto13';\nimport { UnexpectedMichelsonValueError } from '../../error';\n\nexport const scriptEncoderProto13: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto13(script.code);\n const storage = valueEncoderProto13(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto13: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto13(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto13(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto13: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto13(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto13(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('Unexpected value');\n};\n\nexport const valueDecoderProto13: 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(valueDecoderProto13(val));\n }\n return results;\n }\n default:\n return primDecoderProto13(value, preamble);\n }\n};\n\nexport const primEncoderProto13: 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 = opMappingReverseProto13[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto13(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 primDecoderProto13 = (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: opMappingProto13[op],\n };\n\n if (opMappingProto13[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto13[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto13(value, result) as any;\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto13[op] === 'pair' || opMappingProto13[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(() => valueDecoderProto13(value));\n\n if (opMappingProto13[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 primViewDecoderProto13 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto13(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(valueDecoderProto13(array));\n }\n return args;\n};\n","import { Prefix } from '@taquito/utils';\nimport {\n entrypointDecoder,\n prefixDecoder,\n prefixEncoder,\n zarithDecoder,\n zarithEncoder,\n} from '../codec';\nimport { entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { OversizedEntryPointError } from '../error';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { valueDecoderProto13, valueEncoderProto13 } from './michelson-proto13/codec-proto13';\n\nexport const parametersDecoderProto13 = (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 = valueDecoderProto13(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\n\nexport const valueParameterDecoderProto13 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto13(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointEncoderProto13 = (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${valueEncoderProto13(value).slice(8)}`;\n }\n};\n\nexport const entrypointNameEncoderProto13 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto13(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoderProto13 = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const parametersEncoderProto13 = (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 = entrypointEncoderProto13(val.entrypoint);\n const parameters = valueEncoderProto13(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto13 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto13(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const txRollupOriginationParamEncoderProto13 = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoderProto13 = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoderProto13 = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoderProto13 = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoderProto13 = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoderProto13 = (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 { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n} from '../schema/operation';\nimport {\n entrypointNameEncoderProto13,\n parametersEncoderProto13,\n valueParameterEncoderProto13,\n txRollupOriginationParamEncoderProto13,\n txRollupIdEncoderProto13,\n txRollupBatchContentEncoderProto13,\n burnLimitEncoder,\n} from './codec-proto13';\nimport { scriptEncoderProto13 } from './michelson-proto13/codec-proto13';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation-proto13';\n\nexport const encodersProto13: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.SCRIPT]: scriptEncoderProto13,\n [CODEC.PARAMETERS]: parametersEncoderProto13,\n [CODEC.VALUE]: valueParameterEncoderProto13,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto13,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoderProto13,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoderProto13,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoderProto13,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto13[CODEC.OPERATION] = operationEncoder(encodersProto13);\nencodersProto13[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto13)(ActivationSchema)(val);\nencodersProto13[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto13)(DelegationSchema)(val);\nencodersProto13[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto13)(TransactionSchema)(val);\nencodersProto13[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto13)(OriginationSchema)(val);\nencodersProto13[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto13)(BallotSchema)(val);\nencodersProto13[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto13)(EndorsementSchema)(val);\nencodersProto13[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto13)(SeedNonceRevelationSchema)(val);\nencodersProto13[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto13)(ProposalsSchema)(val);\nencodersProto13[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto13)(RevealSchema)(val);\nencodersProto13[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto13)(RegisterGlobalConstantSchema)(val);\nencodersProto13[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto13)(TransferTicketSchema)(val);\nencodersProto13[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto13)(TxRollupOriginationSchema)(val);\nencodersProto13[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto13)(TxRollupSubmitBatchSchema)(val);\nencodersProto13[CODEC.MANAGER] = schemaEncoder(encodersProto13)(ManagerOperationSchema);\n","import { Decoder, decoders } from '../decoder';\nimport { CODEC } from '../constants';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport {\n entrypointNameDecoderProto13,\n parametersDecoderProto13,\n valueParameterDecoderProto13,\n txRollupBatchContentDecoderProto13,\n txRollupIdDecoderProto13,\n txRollupOriginationParamDecoderProto13,\n burnLimitDecoder,\n} from './codec-proto13';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n} from '../schema/operation';\nimport { scriptDecoderProto13 } from './michelson-proto13/codec-proto13';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation-proto13';\n\nexport const decodersProto13: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.SCRIPT]: scriptDecoderProto13,\n [CODEC.PARAMETERS]: parametersDecoderProto13,\n [CODEC.VALUE]: valueParameterDecoderProto13,\n [CODEC.ENTRYPOINT]: entrypointNameDecoderProto13,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoderProto13,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoderProto13,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoderProto13,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto13[CODEC.OPERATION] = operationDecoder(decodersProto13);\ndecodersProto13[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(ActivationSchema)(val);\ndecodersProto13[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(DelegationSchema)(val);\ndecodersProto13[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TransactionSchema)(val);\ndecodersProto13[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(OriginationSchema)(val);\ndecodersProto13[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(BallotSchema)(val);\ndecodersProto13[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(EndorsementSchema)(val);\ndecodersProto13[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(SeedNonceRevelationSchema)(val);\ndecodersProto13[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(ProposalsSchema)(val);\ndecodersProto13[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(RevealSchema)(val);\ndecodersProto13[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(RegisterGlobalConstantSchema)(val);\ndecodersProto13[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaDecoder(decodersProto13)(TransferTicketSchema)(val);\ndecodersProto13[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TxRollupOriginationSchema)(val);\ndecodersProto13[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TxRollupSubmitBatchSchema)(val);\ndecodersProto13[CODEC.MANAGER] = schemaDecoder(decodersProto13)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"01d3579d51bb8d70038a304cd4dbb7c6366a244b\",\n \"version\": \"13.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 { encodersProto13 } from './proto13-jakarta/encoder-proto13';\nimport { decodersProto13 } from './proto13-jakarta/decoder-proto13';\n\nexport { CODEC } 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.Psithaca2;\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2 || ProtoInferiorTo(proto, ProtocolsHash.Psithaca2)) {\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 } else {\n return {\n encoder: encodersProto13[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto13[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":["decodeCombPair","prefix","prefixMap","BigNumber","opMappingGeneral"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-local-forging.es6.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/proto13-jakarta/schema/operation-proto13.ts","../src/validator.ts","../src/protocols.ts","../src/proto13-jakarta/constants-proto13.ts","../src/proto13-jakarta/michelson-proto13/codec-proto13.ts","../src/proto13-jakarta/codec-proto13.ts","../src/proto13-jakarta/encoder-proto13.ts","../src/proto13-jakarta/decoder-proto13.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 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}\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',\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};\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/api/p2p.html\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};\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};\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(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' && 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') {\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') {\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} 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 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 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","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 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\n type Schema = Record<string, CODEC | CODEC[]>\n export type Value = Record<keyof Schema, unknown[]>\n \n export const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => \n (schema: Schema) => \n (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 delegateDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\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 ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\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.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\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.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\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 ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\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.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\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.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { CODEC } from \"../../constants\";\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","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './proto13-jakarta/schema/operation-proto13';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\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\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};\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 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 ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 14,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","import { opMapping as opMappingGeneral } from './../constants';\n\nexport const opMappingProto13: { [key: string]: string } = {\n ...opMappingGeneral,\n '84': 'sapling_transaction_deprecated',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n};\n\nexport const opMappingReverseProto13 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto13).forEach((key: string) => {\n result[opMappingProto13[key]] = key;\n });\n return result;\n})();\n","import { Decoder } from '../../decoder';\nimport { pad } from '../../utils';\nimport { Encoder } from '../../encoder';\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';\nimport { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { opMappingProto13, opMappingReverseProto13 } from '../constants-proto13';\nimport { UnexpectedMichelsonValueError } from '../../error';\n\nexport const scriptEncoderProto13: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto13(script.code);\n const storage = valueEncoderProto13(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto13: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto13(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto13(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto13: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto13(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto13(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('Unexpected value');\n};\n\nexport const valueDecoderProto13: 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(valueDecoderProto13(val));\n }\n return results;\n }\n default:\n return primDecoderProto13(value, preamble);\n }\n};\n\nexport const primEncoderProto13: 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 = opMappingReverseProto13[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto13(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 primDecoderProto13 = (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: opMappingProto13[op],\n };\n\n if (opMappingProto13[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto13[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto13(value, result) as any;\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto13[op] === 'pair' || opMappingProto13[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(() => valueDecoderProto13(value));\n\n if (opMappingProto13[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 primViewDecoderProto13 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto13(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(valueDecoderProto13(array));\n }\n return args;\n};\n","import { Prefix } from '@taquito/utils';\nimport {\n entrypointDecoder,\n prefixDecoder,\n prefixEncoder,\n zarithDecoder,\n zarithEncoder,\n} from '../codec';\nimport { entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { OversizedEntryPointError } from '../error';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { valueDecoderProto13, valueEncoderProto13 } from './michelson-proto13/codec-proto13';\n\nexport const parametersDecoderProto13 = (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 = valueDecoderProto13(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\n\nexport const valueParameterDecoderProto13 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto13(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointEncoderProto13 = (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${valueEncoderProto13(value).slice(8)}`;\n }\n};\n\nexport const entrypointNameEncoderProto13 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto13(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoderProto13 = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const parametersEncoderProto13 = (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 = entrypointEncoderProto13(val.entrypoint);\n const parameters = valueEncoderProto13(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto13 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto13(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const txRollupOriginationParamEncoderProto13 = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoderProto13 = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoderProto13 = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoderProto13 = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoderProto13 = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoderProto13 = (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 { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n} from '../schema/operation';\nimport {\n entrypointNameEncoderProto13,\n parametersEncoderProto13,\n valueParameterEncoderProto13,\n txRollupOriginationParamEncoderProto13,\n txRollupIdEncoderProto13,\n txRollupBatchContentEncoderProto13,\n burnLimitEncoder,\n} from './codec-proto13';\nimport { scriptEncoderProto13 } from './michelson-proto13/codec-proto13';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation-proto13';\n\nexport const encodersProto13: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.SCRIPT]: scriptEncoderProto13,\n [CODEC.PARAMETERS]: parametersEncoderProto13,\n [CODEC.VALUE]: valueParameterEncoderProto13,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto13,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoderProto13,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoderProto13,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoderProto13,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto13[CODEC.OPERATION] = operationEncoder(encodersProto13);\nencodersProto13[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto13)(ActivationSchema)(val);\nencodersProto13[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto13)(DelegationSchema)(val);\nencodersProto13[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto13)(TransactionSchema)(val);\nencodersProto13[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto13)(OriginationSchema)(val);\nencodersProto13[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto13)(BallotSchema)(val);\nencodersProto13[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto13)(EndorsementSchema)(val);\nencodersProto13[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto13)(SeedNonceRevelationSchema)(val);\nencodersProto13[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto13)(ProposalsSchema)(val);\nencodersProto13[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto13)(RevealSchema)(val);\nencodersProto13[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto13)(RegisterGlobalConstantSchema)(val);\nencodersProto13[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto13)(TransferTicketSchema)(val);\nencodersProto13[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto13)(TxRollupOriginationSchema)(val);\nencodersProto13[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto13)(TxRollupSubmitBatchSchema)(val);\nencodersProto13[CODEC.MANAGER] = schemaEncoder(encodersProto13)(ManagerOperationSchema);\n","import { Decoder, decoders } from '../decoder';\nimport { CODEC } from '../constants';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport {\n entrypointNameDecoderProto13,\n parametersDecoderProto13,\n valueParameterDecoderProto13,\n txRollupBatchContentDecoderProto13,\n txRollupIdDecoderProto13,\n txRollupOriginationParamDecoderProto13,\n burnLimitDecoder,\n} from './codec-proto13';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n} from '../schema/operation';\nimport { scriptDecoderProto13 } from './michelson-proto13/codec-proto13';\nimport {\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation-proto13';\n\nexport const decodersProto13: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.SCRIPT]: scriptDecoderProto13,\n [CODEC.PARAMETERS]: parametersDecoderProto13,\n [CODEC.VALUE]: valueParameterDecoderProto13,\n [CODEC.ENTRYPOINT]: entrypointNameDecoderProto13,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoderProto13,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoderProto13,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoderProto13,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto13[CODEC.OPERATION] = operationDecoder(decodersProto13);\ndecodersProto13[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(ActivationSchema)(val);\ndecodersProto13[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(DelegationSchema)(val);\ndecodersProto13[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TransactionSchema)(val);\ndecodersProto13[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(OriginationSchema)(val);\ndecodersProto13[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(BallotSchema)(val);\ndecodersProto13[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(EndorsementSchema)(val);\ndecodersProto13[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(SeedNonceRevelationSchema)(val);\ndecodersProto13[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(ProposalsSchema)(val);\ndecodersProto13[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(RevealSchema)(val);\ndecodersProto13[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(RegisterGlobalConstantSchema)(val);\ndecodersProto13[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaDecoder(decodersProto13)(TransferTicketSchema)(val);\ndecodersProto13[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TxRollupOriginationSchema)(val);\ndecodersProto13[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto13)(TxRollupSubmitBatchSchema)(val);\ndecodersProto13[CODEC.MANAGER] = schemaDecoder(decodersProto13)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff\",\n \"version\": \"13.0.1\"\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 { encodersProto13 } from './proto13-jakarta/encoder-proto13';\nimport { decodersProto13 } from './proto13-jakarta/decoder-proto13';\n\nexport { CODEC } 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.Psithaca2;\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2 || ProtoInferiorTo(proto, ProtocolsHash.Psithaca2)) {\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 } else {\n return {\n encoder: encodersProto13[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto13[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":["decodeCombPair","prefix","prefixMap","BigNumber","opMappingGeneral"],"mappings":"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"}