@taquito/local-forging 12.0.2 → 12.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/version.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
5
5
|
exports.VERSION = {
|
|
6
|
-
"commitHash": "
|
|
7
|
-
"version": "12.0.
|
|
6
|
+
"commitHash": "02ebaa8ef1920e8b6a81f0d0978f28cff0a2d256",
|
|
7
|
+
"version": "12.0.3"
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1157,8 +1157,8 @@ const validateMissingProperty = (operationContent) => {
|
|
|
1157
1157
|
|
|
1158
1158
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
1159
1159
|
const VERSION = {
|
|
1160
|
-
"commitHash": "
|
|
1161
|
-
"version": "12.0.
|
|
1160
|
+
"commitHash": "02ebaa8ef1920e8b6a81f0d0978f28cff0a2d256",
|
|
1161
|
+
"version": "12.0.3"
|
|
1162
1162
|
};
|
|
1163
1163
|
|
|
1164
1164
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-local-forging.es6.js","sources":["../src/utils.ts","../src/constants.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/proto12-ithaca/codec.ts","../src/proto12-ithaca/constants.ts","../src/proto12-ithaca/schema.ts","../src/proto12-ithaca/decoder.ts","../src/proto12-ithaca/encoder.ts","../src/error.ts","../src/validator.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 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 VALUE = 'value',\n MANAGER = 'manager',\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 0x00: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\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\nexport 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 PsiThaCa = 'PsiThaCaT47Zboaw71QWScM8sXeMM7bbQFncK9FLqYc6EKdpjVP',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n}\n","export 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 Error('Invalid hex string');\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';\n\ntype PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\ntype BytesValue = { bytes: string };\ntype StringValue = { string: string };\ntype 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 Error('Unexpected 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 Error(`Invalid hex string: ${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) as any;\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\nconst 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} from '@taquito/utils';\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 Error(`Invalid ballot value: ${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 Error(`Unable to decode ballot value ${value[0]}`);\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 Error('Invalid public key hash');\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 Error('Invalid PK');\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 Error('Invalid address');\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 Error('Invalid PK');\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 Error('Invalid Address');\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMapping, kindMappingReverse } from '../constants';\n\nexport const ManagerOperationSchema = {\n branch: 'branch',\n contents: ['operation'],\n};\n\nexport const ActivationSchema = {\n pkh: 'tz1',\n secret: 'secret',\n};\n\nexport const RevealSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n public_key: 'public_key',\n};\n\nexport const DelegationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n delegate: 'delegate',\n};\n\nexport const TransactionSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n amount: 'zarith',\n destination: 'address',\n parameters: 'parameters',\n};\n\nexport const OriginationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n balance: 'zarith',\n delegate: 'delegate',\n script: 'script',\n};\n\nexport const BallotSchema = {\n source: 'pkh',\n period: 'int32',\n proposal: 'proposal',\n ballot: 'ballotStmt',\n};\n\nexport const EndorsementSchema = {\n level: 'int32',\n};\n\nexport const SeedNonceRevelationSchema = {\n level: 'int32',\n nonce: 'raw',\n};\n\nexport const ProposalsSchema = {\n source: 'pkh',\n period: 'int32',\n proposals: 'proposalArr',\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n value: '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 Error(`Unsupported operation kind: ${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 const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) =>\n (schema: { [key: string]: string | string[] }) =>\n <T extends { [key: string]: any }>(value: T) => {\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 encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new Error(`Exepected 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 Error('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 branchDecoder,\n delegateDecoder,\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};\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 branchEncoder,\n delegateEncoder,\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};\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) => schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { Prefix } from '@taquito/utils';\nimport { prefixDecoder, prefixEncoder } from '../codec';\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n","import { kindMapping } from '../constants';\nimport { pad } from '../utils';\n\nexport const enum CODEC_PROT0_12 {\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n}\n\nconst { [0x00]: ommited, ...kindMappingNoEndorsement } = kindMapping;\n\nexport const kindMappingProto12: { [key: number]: string } = {\n ...kindMappingNoEndorsement,\n 0x15: 'endorsement',\n};\n\nexport const kindMappingReverseProto12 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMappingProto12).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMappingProto12[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMappingProto12, kindMappingReverseProto12 } from './constants';\n\nexport const EndorsementSchemaProto12 = {\n slot: 'int16',\n level: 'int32',\n round: 'int32',\n block_payload_hash: 'blockPayloadHash',\n};\n\nexport const operationEncoderProto12 =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverseProto12)) {\n throw new Error(`Unsupported operation kind: ${operation.kind}`);\n }\n\n return kindMappingReverseProto12[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoderProto12 =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMappingProto12[op[0]];\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n","import { int16Decoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Decoder, decoders } from '../decoder';\nimport {\n schemaDecoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { blockPayloadHashDecoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationDecoderProto12 } from './schema';\n\nexport const decodersProto12: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.INT16]: int16Decoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n};\n\ndecodersProto12[CODEC.OPERATION] = operationDecoderProto12(decodersProto12);\ndecodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ActivationSchema)(val);\ndecodersProto12[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(DelegationSchema)(val);\ndecodersProto12[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(TransactionSchema)(val);\ndecodersProto12[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(OriginationSchema)(val);\ndecodersProto12[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(BallotSchema)(val);\ndecodersProto12[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(EndorsementSchemaProto12)(val);\ndecodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(SeedNonceRevelationSchema)(val);\ndecodersProto12[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ProposalsSchema)(val);\ndecodersProto12[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RevealSchema)(val);\ndecodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RegisterGlobalConstantSchema)(val);\ndecodersProto12[CODEC.MANAGER] = schemaDecoder(decodersProto12)(ManagerOperationSchema);\n","import { int16Encoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n schemaEncoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { blockPayloadHashEncoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationEncoderProto12 } from './schema';\n\nexport const encodersProto12: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.INT16]: int16Encoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n};\n\nencodersProto12[CODEC.OPERATION] = operationEncoderProto12(encodersProto12);\nencodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto12)(ActivationSchema)(val);\nencodersProto12[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto12)(DelegationSchema)(val);\nencodersProto12[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto12)(TransactionSchema)(val);\nencodersProto12[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto12)(OriginationSchema)(val);\nencodersProto12[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto12)(BallotSchema)(val);\nencodersProto12[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto12)(EndorsementSchemaProto12)(val);\nencodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto12)(SeedNonceRevelationSchema)(val);\nencodersProto12[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto12)(ProposalsSchema)(val);\nencodersProto12[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto12)(RevealSchema)(val);\nencodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto12)(RegisterGlobalConstantSchema)(val);\nencodersProto12[CODEC.MANAGER] = schemaEncoder(encodersProto12)(ManagerOperationSchema);\n","export class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationKindError extends Error {\n public name = 'InvalidOperationKindError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\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 | 'activate_account'\n | 'reveal'\n | 'delegation'\n | 'transaction'\n | 'origination'\n | 'ballot'\n | 'endorsement'\n | 'seed_nonce_revelation'\n | 'proposals'\n | 'register_global_constant';\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};\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: string) => {\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: any) => {\n const kind: OperationKind = operationContent.kind;\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","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"5996bf6b665e26de3201cf45884b4a2bb9218e09\",\n \"version\": \"12.0.2\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC, ProtocolsHash } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { decodersProto12 } from './proto12-ithaca/decoder';\nimport { encodersProto12 } from './proto12-ithaca/encoder';\nimport { validateBlock, ValidationResult } from '@taquito/utils';\nimport {\n InvalidBlockHashError,\n InvalidOperationSchemaError,\n InvalidOperationKindError,\n} from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\n\nexport { CODEC, ProtocolsHash } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2) {\n return {\n encoder: encodersProto12[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto12[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = ProtocolsHash.Psithaca2) {}\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(`The operation kind '${content.kind}' does not exist`);\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 {\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\n return Promise.resolve(this.codec.encoder(params));\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":["prefix","prefixMap","BigNumber"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-local-forging.es6.js","sources":["../src/utils.ts","../src/constants.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/proto12-ithaca/codec.ts","../src/proto12-ithaca/constants.ts","../src/proto12-ithaca/schema.ts","../src/proto12-ithaca/decoder.ts","../src/proto12-ithaca/encoder.ts","../src/error.ts","../src/validator.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 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 VALUE = 'value',\n MANAGER = 'manager',\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 0x00: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\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\nexport 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 PsiThaCa = 'PsiThaCaT47Zboaw71QWScM8sXeMM7bbQFncK9FLqYc6EKdpjVP',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n}\n","export 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 Error('Invalid hex string');\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';\n\ntype PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\ntype BytesValue = { bytes: string };\ntype StringValue = { string: string };\ntype 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 Error('Unexpected 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 Error(`Invalid hex string: ${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) as any;\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\nconst 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} from '@taquito/utils';\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 Error(`Invalid ballot value: ${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 Error(`Unable to decode ballot value ${value[0]}`);\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 Error('Invalid public key hash');\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 Error('Invalid PK');\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 Error('Invalid address');\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 Error('Invalid PK');\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 Error('Invalid Address');\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMapping, kindMappingReverse } from '../constants';\n\nexport const ManagerOperationSchema = {\n branch: 'branch',\n contents: ['operation'],\n};\n\nexport const ActivationSchema = {\n pkh: 'tz1',\n secret: 'secret',\n};\n\nexport const RevealSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n public_key: 'public_key',\n};\n\nexport const DelegationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n delegate: 'delegate',\n};\n\nexport const TransactionSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n amount: 'zarith',\n destination: 'address',\n parameters: 'parameters',\n};\n\nexport const OriginationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n balance: 'zarith',\n delegate: 'delegate',\n script: 'script',\n};\n\nexport const BallotSchema = {\n source: 'pkh',\n period: 'int32',\n proposal: 'proposal',\n ballot: 'ballotStmt',\n};\n\nexport const EndorsementSchema = {\n level: 'int32',\n};\n\nexport const SeedNonceRevelationSchema = {\n level: 'int32',\n nonce: 'raw',\n};\n\nexport const ProposalsSchema = {\n source: 'pkh',\n period: 'int32',\n proposals: 'proposalArr',\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n value: '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 Error(`Unsupported operation kind: ${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 const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) =>\n (schema: { [key: string]: string | string[] }) =>\n <T extends { [key: string]: any }>(value: T) => {\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 encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new Error(`Exepected 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 Error('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 branchDecoder,\n delegateDecoder,\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};\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 branchEncoder,\n delegateEncoder,\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};\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) => schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { Prefix } from '@taquito/utils';\nimport { prefixDecoder, prefixEncoder } from '../codec';\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n","import { kindMapping } from '../constants';\nimport { pad } from '../utils';\n\nexport const enum CODEC_PROT0_12 {\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n}\n\nconst { [0x00]: ommited, ...kindMappingNoEndorsement } = kindMapping;\n\nexport const kindMappingProto12: { [key: number]: string } = {\n ...kindMappingNoEndorsement,\n 0x15: 'endorsement',\n};\n\nexport const kindMappingReverseProto12 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMappingProto12).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMappingProto12[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMappingProto12, kindMappingReverseProto12 } from './constants';\n\nexport const EndorsementSchemaProto12 = {\n slot: 'int16',\n level: 'int32',\n round: 'int32',\n block_payload_hash: 'blockPayloadHash',\n};\n\nexport const operationEncoderProto12 =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverseProto12)) {\n throw new Error(`Unsupported operation kind: ${operation.kind}`);\n }\n\n return kindMappingReverseProto12[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoderProto12 =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMappingProto12[op[0]];\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n","import { int16Decoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Decoder, decoders } from '../decoder';\nimport {\n schemaDecoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { blockPayloadHashDecoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationDecoderProto12 } from './schema';\n\nexport const decodersProto12: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.INT16]: int16Decoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n};\n\ndecodersProto12[CODEC.OPERATION] = operationDecoderProto12(decodersProto12);\ndecodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ActivationSchema)(val);\ndecodersProto12[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(DelegationSchema)(val);\ndecodersProto12[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(TransactionSchema)(val);\ndecodersProto12[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(OriginationSchema)(val);\ndecodersProto12[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(BallotSchema)(val);\ndecodersProto12[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(EndorsementSchemaProto12)(val);\ndecodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(SeedNonceRevelationSchema)(val);\ndecodersProto12[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ProposalsSchema)(val);\ndecodersProto12[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RevealSchema)(val);\ndecodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RegisterGlobalConstantSchema)(val);\ndecodersProto12[CODEC.MANAGER] = schemaDecoder(decodersProto12)(ManagerOperationSchema);\n","import { int16Encoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n schemaEncoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { blockPayloadHashEncoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationEncoderProto12 } from './schema';\n\nexport const encodersProto12: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.INT16]: int16Encoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n};\n\nencodersProto12[CODEC.OPERATION] = operationEncoderProto12(encodersProto12);\nencodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto12)(ActivationSchema)(val);\nencodersProto12[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto12)(DelegationSchema)(val);\nencodersProto12[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto12)(TransactionSchema)(val);\nencodersProto12[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto12)(OriginationSchema)(val);\nencodersProto12[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto12)(BallotSchema)(val);\nencodersProto12[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto12)(EndorsementSchemaProto12)(val);\nencodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto12)(SeedNonceRevelationSchema)(val);\nencodersProto12[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto12)(ProposalsSchema)(val);\nencodersProto12[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto12)(RevealSchema)(val);\nencodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto12)(RegisterGlobalConstantSchema)(val);\nencodersProto12[CODEC.MANAGER] = schemaEncoder(encodersProto12)(ManagerOperationSchema);\n","export class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationKindError extends Error {\n public name = 'InvalidOperationKindError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\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 | 'activate_account'\n | 'reveal'\n | 'delegation'\n | 'transaction'\n | 'origination'\n | 'ballot'\n | 'endorsement'\n | 'seed_nonce_revelation'\n | 'proposals'\n | 'register_global_constant';\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};\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: string) => {\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: any) => {\n const kind: OperationKind = operationContent.kind;\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","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"02ebaa8ef1920e8b6a81f0d0978f28cff0a2d256\",\n \"version\": \"12.0.3\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC, ProtocolsHash } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { decodersProto12 } from './proto12-ithaca/decoder';\nimport { encodersProto12 } from './proto12-ithaca/encoder';\nimport { validateBlock, ValidationResult } from '@taquito/utils';\nimport {\n InvalidBlockHashError,\n InvalidOperationSchemaError,\n InvalidOperationKindError,\n} from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\n\nexport { CODEC, ProtocolsHash } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2) {\n return {\n encoder: encodersProto12[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto12[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = ProtocolsHash.Psithaca2) {}\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(`The operation kind '${content.kind}' does not exist`);\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 {\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\n return Promise.resolve(this.codec.encoder(params));\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":["prefix","prefixMap","BigNumber"],"mappings":";;;AASO,MAAM,WAAW,GAAG,CAAC,KAAiB,KAC3C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAErE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,CAAC;IAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;;ACdD;;;;AAOA;AACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAE5B;AAAZ,WAAY,KAAK;IACf,0BAAiB,CAAA;IACjB,oBAAW,CAAA;IACX,oBAAW,CAAA;IACX,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,kCAAyB,CAAA;IACzB,oBAAW,CAAA;IACX,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,wCAA+B,CAAA;IAC/B,8BAAqB,CAAA;IACrB,qCAA4B,CAAA;IAC5B,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,kCAAyB,CAAA;IACzB,4BAAmB,CAAA;IACnB,gCAAuB,CAAA;IACvB,iDAAwC,CAAA;IACxC,qCAA4B,CAAA;IAC5B,uCAA8B,CAAA;IAC9B,uCAA8B,CAAA;IAC9B,6BAAoB,CAAA;IACpB,uCAA8B,CAAA;IAC9B,2DAAkD,CAAA;IAClD,6BAAoB,CAAA;IACpB,mCAA0B,CAAA;IAC1B,iEAAwD,CAAA;IACxD,wBAAe,CAAA;IACf,4BAAmB,CAAA;AACrB,CAAC,EA9BW,KAAK,KAAL,KAAK,QA8BhB;AAED;AACO,MAAM,SAAS,GAA8B;IAClD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;CAClB,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC;IAC/B,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW;QACzC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG,CAAC;AAEL;AACO,MAAM,WAAW,GAA8B;IACpD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,0BAA0B;CACjC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC;IACjC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAoB;QACpD,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QACjE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KAC9C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG,CAAC;AAEL;AACO,MAAM,iBAAiB,GAA8B;IAC1D,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEK,MAAM,wBAAwB,GAAG,CAAC;IACvC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW;QACjD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;KACtC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG,CAAC;IAEO;AAAZ,WAAY,aAAa;IACvB,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,kFAAiE,CAAA;IACjE,kFAAiE,CAAA;IACjE,iFAAgE,CAAA;IAChE,iFAAgE,CAAA;IAChE,kFAAiE,CAAA;AACnE,CAAC,EAZW,aAAa,KAAb,aAAa;;MClPZ,kBAAkB;IAa7B,YAA6B,GAAe,EAAU,SAAiB,CAAC;QAA3C,QAAG,GAAH,GAAG,CAAY;QAAU,WAAM,GAAN,MAAM,CAAY;KAAI;IAZ5E,OAAO,aAAa,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CACvE,CAAC;YACF,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACpC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;KACF;IAIM,OAAO,CAAC,KAAa;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC;KACf;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;KACpC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KACtC;;;ACTI,MAAM,MAAM,GAAG,CAAC,KAAqB;IAC1C,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,KAAqB;IAC3C,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAqB;IAC5C,OAAO,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/D,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CAAC,KAAqB;IACzC,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;AACzD,CAAC,CAAC;AAEK,MAAM,aAAa,GAA+D,CACvF,MAAM;IAEN,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;AACpF,CAAC,CAAC;AAEK,MAAM,aAAa,GAAY,CAAC,KAAyB;IAC9D,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,YAAY,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,YAAY,GAA4B,CAAC,KAAqB;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;KAClC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;KAC3B;SAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;SAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,KAAyB;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,QAAQ,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,IAAI;YACP,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACjC;YACD,OAAO,OAAO,CAAC;SAChB;QACD;YACE,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACvC;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,KAAyB,EAAE,WAAW,GAAG,CAAC;IAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAwB,CAAC,KAAK;IACrD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,KAAyB;IAC7D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,aAAa,GAAyB,CAAC,KAAK;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,aAAa,GAAY,CAAC,KAAyB;IAC9D,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,UAAU,GAAsB,CAAC,EAAE,GAAG,EAAE;IACnD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjD,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,IAAI,CAAC;UACd,CAAC;UACD,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;cACvB,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;cAC7C,MAAM,CAAC,MAAM,CAAC;IAEpB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;IAG7D,MAAM,QAAQ,GAAG,QAAS,CAAC,OAAO,EAAE,CAAC;IAErC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,CAAS;;IAE/C,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;SACrD,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACpB,CAAC;IAEF,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAyB;IAClD,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,kBAAkB,EAAE;QAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAExC,MAAM,MAAM,GAAG,SAAS;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KACR,CAAC;SACE,QAAQ,CAAC,CAAC,CAAC;SACX,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAClC;SACA,OAAO,EAAE,CAAC;IACb,IAAI,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE;QACd,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE;KACnB,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,WAAW,GAAuB,CAAC,KAAK;IACnD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;IAGpE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAEpF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE;QACxC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAClE;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;QACrE,WAAW;YACT,aAAa,KAAK,EAAE;kBAChB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;kBAClD,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;KACjD;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;QACvC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAClE;IAED,OAAO,GAAG,QAAQ,GAAG,EAAE,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,KAAyB,EAAE,QAAoB;IACzE,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAuB;QACjC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;KACpB,CAAC;IAEF,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE;QAC5B,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAQ,CAAC;SAC9C;aAAM;YACL,OAAO,MAAM,CAAC;SACf;KACF;IAED,IAAI,YAAY,CAAC;IACjB,IAAI,cAAc,CAAC;IACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;QAC3E,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,GAAG,CAAC,CAAC;QACd,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzE,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,GAAG,YAAmB,CAAC;KACtC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;QACtB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAW,CAAC;KAC9B;IAED,IAAI,cAAc,IAAK,cAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;QACvD,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAqB,CAAC;KAC1C;SAAM,IAAI,QAAQ,EAAE;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,KAAK,CAAQ,CAAC;KAC/C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAyB,EAAE,MAA0B;IAC5E,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAQ,CAAC;IAC5E,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,cAAc,GAAY,CAAC,GAAuB;IAC7D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KAChC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,YAAY,GAAsB,CAAC,KAAe;IAC7D,MAAM,WAAW,GAAG,KAAK;SACtB,GAAG,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC/C,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,GAAuB;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;;AChSM,MAAM,aAAa,GAAG,CAACA,QAAc,KAAK,CAAC,GAAW;IAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAEC,MAAS,CAACD,QAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,KAAK,CAAC,GAAuB;IACpE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,GAAG,EAAEC,MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,CAAC,GAAuB;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACtB,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACvC;SAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACvC;SAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACvC;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,IAAa,MAAc,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEpE,MAAM,eAAe,GAAG,CAAC,QAAgB;IAC9C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,QAA4B;IAC1D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,QAA4B;IAC3D,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QAC5B,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,SAAmB;IAClD,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,MAAc;IAC1C,QAAQ,MAAM;QACZ,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;KACtD;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,MAA0B;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,KAAK,CAAC,CAAC,CAAC;QACd,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB;YACE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAChE;AACH,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,GAAW;IACzC,IAAI,GAAG,EAAE;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5C;SAAM;QACL,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;KAC3B;AACH,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAoB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;KACjD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAuB;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAoB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;KACjD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAuB;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,GAAuB;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAC1B,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,GAAuB;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,WAAW,EAAE;QACf,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;KACxB;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW;IACpC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC9C;AACH,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW;IAC1C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD;YACE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;KACjC;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAW;IACxC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACtD;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAuB;IACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,QAAQ,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC;YACE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;KACjC;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAuB;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,QAAQ,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAC;SAChB;QACD;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,CAAS;IACrC,MAAM,EAAE,GAAkB,EAAE,CAAC;IAC7B,IAAI,EAAE,GAAG,IAAIC,WAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;KACnD;;IAED,OAAO,IAAI,EAAE;QACX,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACd,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM;SACP;aAAM;YACL,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;SACzB;KACF;IACD,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,CAAqB;IACjD,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,OAAO,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;QACnF,mBAAmB,IAAI,CAAC,CAAC;KAC1B;IAED,IAAI,GAAG,GAAG,IAAIA,WAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QAChD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACrB;IAED,CAAC,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,IAAIA,WAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,KAAyB;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,IAAI,QAAQ,IAAI,iBAAiB,EAAE;QACjC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KACpC;SAAM;QACL,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,yCAAyC,qBAAqB,EAAE,CACpG,CAAC;SACH;QACD,OAAO,UAAU,CAAC;KACnB;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAuB;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACxB,OAAO;KACR;SAAM;QACL,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,OAAO;YACL,UAAU,EAAE,iBAAiB;YAC7B,KAAK,EAAE,UAAU;SAClB,CAAC;KACH;AACH,CAAC,CAAC;AACK,MAAM,iBAAiB,GAAG,CAAC,UAAkB;IAClD,IAAI,UAAU,IAAI,wBAAwB,EAAE;QAC1C,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;KAClD;SAAM;QACL,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,yCAAyC,qBAAqB,EAAE,CACpG,CAAC;SACH;QAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACrC,OAAO,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAkD;IAClF,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;QAC9F,OAAO,IAAI,CAAC;KACb;IAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,KAAK,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,KAAqB;IACzD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAuB;IAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,YAAY,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;;ACpUM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,CAAC,WAAW,CAAC;CACxB,CAAC;AAEK,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEK,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEK,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEK,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,OAAO;CACf,CAAC;AAEK,MAAM,yBAAyB,GAAG;IACvC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,KAAK;CACb,CAAC;AAEK,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,aAAa;CACzB,CAAC;AAEK,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,KAAK,EAAE,OAAO;CACf,CAAC;AAEK,MAAM,gBAAgB,GAC3B,CAAC,QAAoD,KAAK,CAAC,SAA2B;IACpF,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,kBAAkB,CAAC,EAAE;QAC5E,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;KAClE;IAED,OAAO,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC,CAAC;AAEG,MAAM,gBAAgB,GAC3B,CAAC,QAAoC,KAAK,CAAC,KAAyB;IAClE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,IAAI,aAAa,EAAE;QACjB,uBACE,IAAI,EAAE,aAAa,IAChB,UAAU,EACb;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC;AAEG,MAAM,aAAa,GACxB,CAAC,QAAoD,KACrD,CAAC,MAA4C,KAC7C,CAAmC,KAAQ;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG;QAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAC1E;YAED,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;SACvF;aAAM;YACL,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SACnC;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEG,MAAM,aAAa,GACxB,CAAC,QAAoC,KACrC,CAAC,MAA4C,KAC7C,CAAC,KAAyB;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG;QAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE7B,IAAI,UAAU,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE;oBACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBAC3C;aACF;YAED,uCACK,IAAI,KACP,CAAC,GAAG,GAAG,OAAO,IACd;SACH;aAAM;YACL,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,uCACK,IAAI,KACP,CAAC,GAAG,GAAG,MAAM,IACb;aACH;iBAAM;gBACL,yBACK,IAAI,EACP;aACH;SACF;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;;MChJU,QAAQ,GAA+B;IAClD,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;IACvB,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;IACpC,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;IACvB,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;IACjC,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;IAC3B,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;IACvC,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;IACjC,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;IACtC,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;IACrC,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;IAC/B,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB;EACpC;AAEF,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAuB,KAC5D,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAuB,KACtD,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACjE,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAuB,KACrD,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAuB,KACpE,aAAa,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC;;MCxC5D,QAAQ,GAAoC;IACvD,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAW,KAAK,GAAG;IACpC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAW,KAAK,GAAG;IACjC,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;IACvB,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;IACpC,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;IACvB,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;IACjC,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC7B,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;IACvC,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;IACjC,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;IACtC,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;IAC3B,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;IACrC,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;IAC/B,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB;EACpC;AAEF,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7F,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KAClD,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3F,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AACvH,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC;;AC/DlE,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzD,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCGnC,wBAAwB,UAAK,WAAW,EAA9D,KAAgD,EAAe;AAE9D,MAAM,kBAAkB,mCAC1B,wBAAwB,KAC3B,IAAI,EAAE,aAAa,GACpB,CAAC;AAEK,MAAM,yBAAyB,GAAG,CAAC;IACxC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAoB;QAC3D,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG;;ACjBG,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,kBAAkB;CACvC,CAAC;AAEK,MAAM,uBAAuB,GAClC,CAAC,QAAoD,KAAK,CAAC,SAA2B;IACpF,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,yBAAyB,CAAC,EAAE;QACnF,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;KAClE;IAED,OAAO,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACzF,CAAC,CAAC;AAEG,MAAM,uBAAuB,GAClC,CAAC,QAAoC,KAAK,CAAC,KAAyB;IAClE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,IAAI,aAAa,EAAE;QACjB,uBACE,IAAI,EAAE,aAAa,IAChB,UAAU,EACb;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC;;AClBI,MAAM,eAAe,mCACvB,QAAQ,KACX,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,EAC3B,+CAAqC,uBAAuB,GAC7D,CAAC;AAEF,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;AAC5E,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAuB,KACnE,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAuB,KAC7D,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACxE,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAuB,KAC5D,aAAa,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAuB,KAC3E,aAAa,CAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC;;AC5BhF,MAAM,eAAe,mCACvB,QAAQ,KACX,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,EAC3B,+CAAqC,uBAAuB,GAC7D,CAAC;AAEF,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;AAC5E,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAQ,KACpD,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAQ,KAC9C,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAQ,KAC7C,aAAa,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAQ,KAC5D,aAAa,CAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC;;MC7C1E,qBAAsB,SAAQ,KAAK;IAE9C,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAG,uBAAuB,CAAC;KAGrC;CACF;MAEY,2BAA4B,SAAQ,KAAK;IAEpD,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAG,6BAA6B,CAAC;KAG3C;CACF;MAEY,yBAA0B,SAAQ,KAAK;IAElD,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAG,2BAA2B,CAAC;KAGzC;;;ACOH,MAAM,oBAAoB,GAAG;IAC3B,gBAAgB,EAAE,gBAAgB;IAClC,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,iBAAiB;IAC9B,qBAAqB,EAAE,yBAAyB;IAChD,SAAS,EAAE,eAAe;IAC1B,wBAAwB,EAAE,4BAA4B;CACvD,CAAC;AAEF;AACA,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,IAAc;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAe,EAAE,IAAY;IAC9D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF;;;AAGO,MAAM,qBAAqB,GAAG,CAAC,MAAc;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;;AAMO,MAAM,uBAAuB,GAAG,CAAC,gBAAqB;IAC3D,MAAM,IAAI,GAAkB,gBAAgB,CAAC,IAAI,CAAC;IAElD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,OAAO,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;;ACrED;MACa,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,QAAQ;;;ACJvB;;;;SA2BgB,QAAQ,CAAC,KAAY,EAAE,KAAoB;IACzD,IAAI,KAAK,KAAK,aAAa,CAAC,SAAS,EAAE;QACrC,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,CAAC,GAAW;gBACnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAQ,CAAC;aAChD;SACF,CAAC;KACH;SAAM;QACL,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;YACxB,OAAO,EAAE,CAAC,GAAW;gBACnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAQ,CAAC;aACzC;SACF,CAAC;KACH;AACH,CAAC;MAEY,WAAW;IACtB,YAA4B,eAAe,aAAa,CAAC,SAAS;QAAtC,iBAAY,GAAZ,YAAY,CAA0B;QAE1D,UAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAFW;IAItE,KAAK,CAAC,MAAmB;QACvB,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YAC3D,MAAM,IAAI,qBAAqB,CAAC,kBAAkB,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;SAC/E;QAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxC,MAAM,IAAI,yBAAyB,CAAC,uBAAuB,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC;aAC5F;YAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;oBAC3D,SAAS;iBACV;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;oBACnE,SAAS;iBACV;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;oBACrE,SAAS;iBACV;qBAAM;oBACL,MAAM,IAAI,2BAA2B,CACnC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,CAAC;iBACH;aACF;iBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,IAAI,2BAA2B,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC5F;SACF;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KACpD;IAED,KAAK,CAAC,GAAW;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAgB,CAAC,CAAC;KAChE;CACF;MAEY,WAAW,GAAG,IAAI,WAAW;;;;"}
|
|
@@ -1164,8 +1164,8 @@
|
|
|
1164
1164
|
|
|
1165
1165
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
1166
1166
|
const VERSION = {
|
|
1167
|
-
"commitHash": "
|
|
1168
|
-
"version": "12.0.
|
|
1167
|
+
"commitHash": "02ebaa8ef1920e8b6a81f0d0978f28cff0a2d256",
|
|
1168
|
+
"version": "12.0.3"
|
|
1169
1169
|
};
|
|
1170
1170
|
|
|
1171
1171
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-local-forging.umd.js","sources":["../src/utils.ts","../src/constants.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/proto12-ithaca/codec.ts","../src/proto12-ithaca/constants.ts","../src/proto12-ithaca/schema.ts","../src/proto12-ithaca/decoder.ts","../src/proto12-ithaca/encoder.ts","../src/error.ts","../src/validator.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 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 VALUE = 'value',\n MANAGER = 'manager',\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 0x00: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\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\nexport 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 PsiThaCa = 'PsiThaCaT47Zboaw71QWScM8sXeMM7bbQFncK9FLqYc6EKdpjVP',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n}\n","export 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 Error('Invalid hex string');\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';\n\ntype PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\ntype BytesValue = { bytes: string };\ntype StringValue = { string: string };\ntype 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 Error('Unexpected 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 Error(`Invalid hex string: ${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) as any;\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\nconst 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} from '@taquito/utils';\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 Error(`Invalid ballot value: ${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 Error(`Unable to decode ballot value ${value[0]}`);\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 Error('Invalid public key hash');\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 Error('Invalid PK');\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 Error('Invalid address');\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 Error('Invalid PK');\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 Error('Invalid Address');\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMapping, kindMappingReverse } from '../constants';\n\nexport const ManagerOperationSchema = {\n branch: 'branch',\n contents: ['operation'],\n};\n\nexport const ActivationSchema = {\n pkh: 'tz1',\n secret: 'secret',\n};\n\nexport const RevealSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n public_key: 'public_key',\n};\n\nexport const DelegationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n delegate: 'delegate',\n};\n\nexport const TransactionSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n amount: 'zarith',\n destination: 'address',\n parameters: 'parameters',\n};\n\nexport const OriginationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n balance: 'zarith',\n delegate: 'delegate',\n script: 'script',\n};\n\nexport const BallotSchema = {\n source: 'pkh',\n period: 'int32',\n proposal: 'proposal',\n ballot: 'ballotStmt',\n};\n\nexport const EndorsementSchema = {\n level: 'int32',\n};\n\nexport const SeedNonceRevelationSchema = {\n level: 'int32',\n nonce: 'raw',\n};\n\nexport const ProposalsSchema = {\n source: 'pkh',\n period: 'int32',\n proposals: 'proposalArr',\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n value: '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 Error(`Unsupported operation kind: ${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 const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) =>\n (schema: { [key: string]: string | string[] }) =>\n <T extends { [key: string]: any }>(value: T) => {\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 encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new Error(`Exepected 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 Error('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 branchDecoder,\n delegateDecoder,\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};\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 branchEncoder,\n delegateEncoder,\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};\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) => schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { Prefix } from '@taquito/utils';\nimport { prefixDecoder, prefixEncoder } from '../codec';\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n","import { kindMapping } from '../constants';\nimport { pad } from '../utils';\n\nexport const enum CODEC_PROT0_12 {\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n}\n\nconst { [0x00]: ommited, ...kindMappingNoEndorsement } = kindMapping;\n\nexport const kindMappingProto12: { [key: number]: string } = {\n ...kindMappingNoEndorsement,\n 0x15: 'endorsement',\n};\n\nexport const kindMappingReverseProto12 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMappingProto12).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMappingProto12[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMappingProto12, kindMappingReverseProto12 } from './constants';\n\nexport const EndorsementSchemaProto12 = {\n slot: 'int16',\n level: 'int32',\n round: 'int32',\n block_payload_hash: 'blockPayloadHash',\n};\n\nexport const operationEncoderProto12 =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverseProto12)) {\n throw new Error(`Unsupported operation kind: ${operation.kind}`);\n }\n\n return kindMappingReverseProto12[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoderProto12 =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMappingProto12[op[0]];\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n","import { int16Decoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Decoder, decoders } from '../decoder';\nimport {\n schemaDecoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { blockPayloadHashDecoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationDecoderProto12 } from './schema';\n\nexport const decodersProto12: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.INT16]: int16Decoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n};\n\ndecodersProto12[CODEC.OPERATION] = operationDecoderProto12(decodersProto12);\ndecodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ActivationSchema)(val);\ndecodersProto12[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(DelegationSchema)(val);\ndecodersProto12[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(TransactionSchema)(val);\ndecodersProto12[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(OriginationSchema)(val);\ndecodersProto12[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(BallotSchema)(val);\ndecodersProto12[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(EndorsementSchemaProto12)(val);\ndecodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(SeedNonceRevelationSchema)(val);\ndecodersProto12[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ProposalsSchema)(val);\ndecodersProto12[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RevealSchema)(val);\ndecodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RegisterGlobalConstantSchema)(val);\ndecodersProto12[CODEC.MANAGER] = schemaDecoder(decodersProto12)(ManagerOperationSchema);\n","import { int16Encoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n schemaEncoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { blockPayloadHashEncoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationEncoderProto12 } from './schema';\n\nexport const encodersProto12: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.INT16]: int16Encoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n};\n\nencodersProto12[CODEC.OPERATION] = operationEncoderProto12(encodersProto12);\nencodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto12)(ActivationSchema)(val);\nencodersProto12[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto12)(DelegationSchema)(val);\nencodersProto12[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto12)(TransactionSchema)(val);\nencodersProto12[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto12)(OriginationSchema)(val);\nencodersProto12[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto12)(BallotSchema)(val);\nencodersProto12[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto12)(EndorsementSchemaProto12)(val);\nencodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto12)(SeedNonceRevelationSchema)(val);\nencodersProto12[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto12)(ProposalsSchema)(val);\nencodersProto12[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto12)(RevealSchema)(val);\nencodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto12)(RegisterGlobalConstantSchema)(val);\nencodersProto12[CODEC.MANAGER] = schemaEncoder(encodersProto12)(ManagerOperationSchema);\n","export class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationKindError extends Error {\n public name = 'InvalidOperationKindError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\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 | 'activate_account'\n | 'reveal'\n | 'delegation'\n | 'transaction'\n | 'origination'\n | 'ballot'\n | 'endorsement'\n | 'seed_nonce_revelation'\n | 'proposals'\n | 'register_global_constant';\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};\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: string) => {\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: any) => {\n const kind: OperationKind = operationContent.kind;\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","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"5996bf6b665e26de3201cf45884b4a2bb9218e09\",\n \"version\": \"12.0.2\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC, ProtocolsHash } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { decodersProto12 } from './proto12-ithaca/decoder';\nimport { encodersProto12 } from './proto12-ithaca/encoder';\nimport { validateBlock, ValidationResult } from '@taquito/utils';\nimport {\n InvalidBlockHashError,\n InvalidOperationSchemaError,\n InvalidOperationKindError,\n} from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\n\nexport { CODEC, ProtocolsHash } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2) {\n return {\n encoder: encodersProto12[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto12[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = ProtocolsHash.Psithaca2) {}\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(`The operation kind '${content.kind}' does not exist`);\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 {\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\n return Promise.resolve(this.codec.encoder(params));\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["CODEC","ProtocolsHash","BigNumber","buf2hex","b58cdecode","prefixMap","prefixLength","b58cencode","Prefix","validateBlock","ValidationResult"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-local-forging.umd.js","sources":["../src/utils.ts","../src/constants.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/proto12-ithaca/codec.ts","../src/proto12-ithaca/constants.ts","../src/proto12-ithaca/schema.ts","../src/proto12-ithaca/decoder.ts","../src/proto12-ithaca/encoder.ts","../src/error.ts","../src/validator.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 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 VALUE = 'value',\n MANAGER = 'manager',\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 0x00: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\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\nexport 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 PsiThaCa = 'PsiThaCaT47Zboaw71QWScM8sXeMM7bbQFncK9FLqYc6EKdpjVP',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n}\n","export 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 Error('Invalid hex string');\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';\n\ntype PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\ntype BytesValue = { bytes: string };\ntype StringValue = { string: string };\ntype 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 Error('Unexpected 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 Error(`Invalid hex string: ${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) as any;\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\nconst 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} from '@taquito/utils';\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 Error(`Invalid ballot value: ${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 Error(`Unable to decode ballot value ${value[0]}`);\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 Error('Invalid public key hash');\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 Error('Invalid PK');\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 Error('Invalid address');\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 Error('Invalid PK');\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 Error('Invalid Address');\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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 Error(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\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","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMapping, kindMappingReverse } from '../constants';\n\nexport const ManagerOperationSchema = {\n branch: 'branch',\n contents: ['operation'],\n};\n\nexport const ActivationSchema = {\n pkh: 'tz1',\n secret: 'secret',\n};\n\nexport const RevealSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n public_key: 'public_key',\n};\n\nexport const DelegationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n delegate: 'delegate',\n};\n\nexport const TransactionSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n amount: 'zarith',\n destination: 'address',\n parameters: 'parameters',\n};\n\nexport const OriginationSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n balance: 'zarith',\n delegate: 'delegate',\n script: 'script',\n};\n\nexport const BallotSchema = {\n source: 'pkh',\n period: 'int32',\n proposal: 'proposal',\n ballot: 'ballotStmt',\n};\n\nexport const EndorsementSchema = {\n level: 'int32',\n};\n\nexport const SeedNonceRevelationSchema = {\n level: 'int32',\n nonce: 'raw',\n};\n\nexport const ProposalsSchema = {\n source: 'pkh',\n period: 'int32',\n proposals: 'proposalArr',\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: 'pkh',\n fee: 'zarith',\n counter: 'zarith',\n gas_limit: 'zarith',\n storage_limit: 'zarith',\n value: '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 Error(`Unsupported operation kind: ${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 const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) =>\n (schema: { [key: string]: string | string[] }) =>\n <T extends { [key: string]: any }>(value: T) => {\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 encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new Error(`Exepected 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 Error('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 branchDecoder,\n delegateDecoder,\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};\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 branchEncoder,\n delegateEncoder,\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};\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) => schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { Prefix } from '@taquito/utils';\nimport { prefixDecoder, prefixEncoder } from '../codec';\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n","import { kindMapping } from '../constants';\nimport { pad } from '../utils';\n\nexport const enum CODEC_PROT0_12 {\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n}\n\nconst { [0x00]: ommited, ...kindMappingNoEndorsement } = kindMapping;\n\nexport const kindMappingProto12: { [key: number]: string } = {\n ...kindMappingNoEndorsement,\n 0x15: 'endorsement',\n};\n\nexport const kindMappingReverseProto12 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMappingProto12).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMappingProto12[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { kindMappingProto12, kindMappingReverseProto12 } from './constants';\n\nexport const EndorsementSchemaProto12 = {\n slot: 'int16',\n level: 'int32',\n round: 'int32',\n block_payload_hash: 'blockPayloadHash',\n};\n\nexport const operationEncoderProto12 =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverseProto12)) {\n throw new Error(`Unsupported operation kind: ${operation.kind}`);\n }\n\n return kindMappingReverseProto12[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoderProto12 =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMappingProto12[op[0]];\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new Error('Decoded invalid operation');\n }\n\n if (operationName) {\n return {\n kind: operationName,\n ...decodedObj,\n };\n } else {\n throw new Error(`Unsupported operation ${op[0]}`);\n }\n };\n","import { int16Decoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Decoder, decoders } from '../decoder';\nimport {\n schemaDecoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { blockPayloadHashDecoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationDecoderProto12 } from './schema';\n\nexport const decodersProto12: { [key: string]: Decoder } = {\n ...decoders,\n [CODEC.INT16]: int16Decoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n};\n\ndecodersProto12[CODEC.OPERATION] = operationDecoderProto12(decodersProto12);\ndecodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ActivationSchema)(val);\ndecodersProto12[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(DelegationSchema)(val);\ndecodersProto12[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(TransactionSchema)(val);\ndecodersProto12[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(OriginationSchema)(val);\ndecodersProto12[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(BallotSchema)(val);\ndecodersProto12[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(EndorsementSchemaProto12)(val);\ndecodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(SeedNonceRevelationSchema)(val);\ndecodersProto12[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(ProposalsSchema)(val);\ndecodersProto12[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RevealSchema)(val);\ndecodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto12)(RegisterGlobalConstantSchema)(val);\ndecodersProto12[CODEC.MANAGER] = schemaDecoder(decodersProto12)(ManagerOperationSchema);\n","import { int16Encoder } from '../codec';\nimport { CODEC } from '../constants';\nimport { Encoder, encoders } from '../encoder';\nimport {\n schemaEncoder,\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n ManagerOperationSchema,\n} from '../schema/operation';\nimport { blockPayloadHashEncoder } from './codec';\nimport { CODEC_PROT0_12 } from './constants';\nimport { EndorsementSchemaProto12, operationEncoderProto12 } from './schema';\n\nexport const encodersProto12: { [key: string]: Encoder<any> } = {\n ...encoders,\n [CODEC.INT16]: int16Encoder,\n [CODEC_PROT0_12.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n};\n\nencodersProto12[CODEC.OPERATION] = operationEncoderProto12(encodersProto12);\nencodersProto12[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto12)(ActivationSchema)(val);\nencodersProto12[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto12)(DelegationSchema)(val);\nencodersProto12[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto12)(TransactionSchema)(val);\nencodersProto12[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto12)(OriginationSchema)(val);\nencodersProto12[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto12)(BallotSchema)(val);\nencodersProto12[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto12)(EndorsementSchemaProto12)(val);\nencodersProto12[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto12)(SeedNonceRevelationSchema)(val);\nencodersProto12[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto12)(ProposalsSchema)(val);\nencodersProto12[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto12)(RevealSchema)(val);\nencodersProto12[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto12)(RegisterGlobalConstantSchema)(val);\nencodersProto12[CODEC.MANAGER] = schemaEncoder(encodersProto12)(ManagerOperationSchema);\n","export class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class InvalidOperationKindError extends Error {\n public name = 'InvalidOperationKindError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\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 | 'activate_account'\n | 'reveal'\n | 'delegation'\n | 'transaction'\n | 'origination'\n | 'ballot'\n | 'endorsement'\n | 'seed_nonce_revelation'\n | 'proposals'\n | 'register_global_constant';\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};\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: string) => {\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: any) => {\n const kind: OperationKind = operationContent.kind;\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","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"02ebaa8ef1920e8b6a81f0d0978f28cff0a2d256\",\n \"version\": \"12.0.3\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC, ProtocolsHash } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { decodersProto12 } from './proto12-ithaca/decoder';\nimport { encodersProto12 } from './proto12-ithaca/encoder';\nimport { validateBlock, ValidationResult } from '@taquito/utils';\nimport {\n InvalidBlockHashError,\n InvalidOperationSchemaError,\n InvalidOperationKindError,\n} from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\n\nexport { CODEC, ProtocolsHash } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\n\nexport function getCodec(codec: CODEC, proto: ProtocolsHash) {\n if (proto === ProtocolsHash.Psithaca2) {\n return {\n encoder: encodersProto12[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto12[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = ProtocolsHash.Psithaca2) {}\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(`The operation kind '${content.kind}' does not exist`);\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 {\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\n return Promise.resolve(this.codec.encoder(params));\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["CODEC","ProtocolsHash","BigNumber","buf2hex","b58cdecode","prefixMap","prefixLength","b58cencode","Prefix","validateBlock","ValidationResult"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taquito/local-forging",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.3",
|
|
4
4
|
"description": "Provide local forging functionality to be with taquito",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tezos",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@taquito/utils": "^12.0.
|
|
70
|
+
"@taquito/utils": "^12.0.3",
|
|
71
71
|
"bignumber.js": "^9.0.2"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@taquito/rpc": "^12.0.
|
|
74
|
+
"@taquito/rpc": "^12.0.3",
|
|
75
75
|
"@types/bluebird": "^3.5.36",
|
|
76
76
|
"@types/jest": "^26.0.23",
|
|
77
77
|
"@types/node": "^17.0.0",
|
|
@@ -100,5 +100,5 @@
|
|
|
100
100
|
"typedoc": "^0.20.36",
|
|
101
101
|
"typescript": "~4.1.5"
|
|
102
102
|
},
|
|
103
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "b8cd241cd9e19a15c487ab56a149e92ac3713ee9"
|
|
104
104
|
}
|