@taquito/michelson-encoder 17.3.1 → 17.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-michelson-encoder.es6.js","sources":["../src/michelson-map.ts","../src/tokens/token.ts","../src/tokens/bigmap.ts","../src/tokens/or.ts","../src/tokens/pair.ts","../src/tokens/comparable/nat.ts","../src/tokens/comparable/string.ts","../src/tokens/comparable/address.ts","../src/tokens/map.ts","../src/tokens/comparable/bool.ts","../src/tokens/comparable/tx_rollup_l2_address.ts","../src/tokens/contract.ts","../src/tokens/list.ts","../src/tokens/comparable/mutez.ts","../src/tokens/comparable/bytes.ts","../src/tokens/option.ts","../src/tokens/comparable/timestamp.ts","../src/tokens/comparable/int.ts","../src/tokens/unit.ts","../src/tokens/key.ts","../src/tokens/comparable/key_hash.ts","../src/tokens/signature.ts","../src/tokens/lambda.ts","../src/tokens/operation.ts","../src/tokens/set.ts","../src/tokens/chain-id.ts","../src/tokens/ticket.ts","../src/tokens/ticket-deprecated.ts","../src/tokens/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.ts","../src/tokens/sapling-transaction-deprecated.ts","../src/tokens/bls12-381-fr.ts","../src/tokens/bls12-381-g1.ts","../src/tokens/bls12-381-g2.ts","../src/tokens/chest.ts","../src/tokens/chest-key.ts","../src/tokens/constant.ts","../src/tokens/tokens.ts","../src/tokens/createToken.ts","../src/schema/errors.ts","../src/schema/storage.ts","../src/schema/parameter.ts","../src/schema/view-schema.ts","../src/schema/event-schema.ts","../src/version.ts","../src/taquito-michelson-encoder.ts"],"sourcesContent":["import { MichelsonV1Expression } from '@taquito/rpc';\nimport { Schema } from './schema/storage';\nimport stringify from 'fast-json-stable-stringify';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid map type being passed or used\n */\nexport class InvalidMapTypeError extends TaquitoError {\n constructor(public readonly mapType: any, public readonly reason: string) {\n super();\n this.message = `The map type '${JSON.stringify(mapType)}' is invalid. Reason: ${reason}.`;\n this.name = 'InvalidMapTypeError';\n }\n}\n\n// Retrieve a unique symbol associated with the key from the environment\n// Used in order to identify all object that are of type MichelsonMap even if they come from different module\nconst michelsonMapTypeSymbol = Symbol.for('taquito-michelson-map-type-symbol');\n\nexport type MichelsonMapKey = Array<any> | object | string | boolean | number | null;\n\n/**\n *\n * @throws {@link InvalidMapTypeError} when the argument passed to mapType is not a valid map type\n */\nfunction validateMapType(value: MichelsonV1Expression): asserts value is {\n prim: 'map' | 'big_map';\n args: [MichelsonV1Expression, MichelsonV1Expression];\n} {\n if (!('prim' in value)) {\n throw new InvalidMapTypeError(value, `Missing 'prim' field`);\n }\n if (!['map', 'big_map'].includes(value.prim)) {\n throw new InvalidMapTypeError(value, `The prim field should be 'map' or 'big_map'`);\n }\n if (!('args' in value)) {\n throw new InvalidMapTypeError(value, `Missing 'args' field`);\n }\n if (!Array.isArray(value.args)) {\n throw new InvalidMapTypeError(value, `The 'args' field should be an array`);\n }\n if (value.args.length !== 2) {\n throw new InvalidMapTypeError(value, `The 'args' field should have 2 elements`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a map type mismatch, where an attempt to set a key or value in a Map doesn't match the defined type of the Map\n */\nexport class MapTypecheckError extends TaquitoError {\n name = 'MapTypecheckError';\n\n constructor(\n public readonly value: any,\n public readonly type: any,\n objectType: 'key' | 'value',\n public readonly reason: any\n ) {\n super();\n this.message = `The ${objectType} provided: ${JSON.stringify(\n value\n )} is not compatible with the expected michelson type: ${JSON.stringify(\n type\n )}. Reason: ${JSON.stringify(reason)}.`;\n this.name = 'MapTypecheckError';\n }\n}\n\n/**\n * @description Michelson Map is an abstraction over the michelson native map. It supports complex Pair as key\n */\nexport class MichelsonMap<K extends MichelsonMapKey, T> {\n private valueMap = new Map<string, T>();\n private keyMap = new Map<string, K>();\n\n public [michelsonMapTypeSymbol] = true;\n\n // Used to check if an object is a michelson map.\n // Using instanceof was not working for project that had multiple instance of taquito dependencies\n // as the class constructor is different\n static isMichelsonMap(obj: any): obj is MichelsonMap<any, any> {\n return obj && obj[michelsonMapTypeSymbol] === true;\n }\n\n private keySchema?: Schema;\n private valueSchema?: Schema;\n\n /**\n * @param mapType If specified key and value will be type-checked before being added to the map\n *\n * @example new MichelsonMap({ prim: \"map\", args: [{prim: \"string\"}, {prim: \"int\"}]})\n */\n constructor(mapType?: MichelsonV1Expression) {\n if (mapType) {\n this.setType(mapType);\n }\n }\n\n setType(mapType: MichelsonV1Expression) {\n validateMapType(mapType);\n\n this.keySchema = new Schema(mapType.args[0]);\n this.valueSchema = new Schema(mapType.args[1]);\n }\n\n removeType() {\n this.keySchema = undefined;\n this.valueSchema = undefined;\n }\n\n static fromLiteral(obj: { [key: string]: any }, mapType?: MichelsonV1Expression) {\n const map = new MichelsonMap(mapType);\n Object.keys(obj).forEach((key) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n\n private typecheckKey(key: K) {\n if (!this.keySchema) {\n return;\n }\n this.keySchema.Typecheck(key);\n }\n\n private typecheckValue(value: T) {\n if (!this.valueSchema) {\n return;\n }\n this.valueSchema.Typecheck(value);\n }\n\n /**\n * @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for value\n */\n private assertTypecheckValue(value: T) {\n try {\n this.typecheckValue(value);\n } catch (e) {\n throw new MapTypecheckError(value, this.valueSchema, 'value', e);\n }\n }\n\n /**\n * @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for key\n */\n private assertTypecheckKey(key: K) {\n try {\n this.typecheckKey(key);\n } catch (e) {\n throw new MapTypecheckError(key, this.keySchema, 'key', e);\n }\n }\n\n private serializeDeterministically(key: K): string {\n return stringify(key);\n }\n\n *keys(): Generator<K> {\n for (const [key] of this.entries()) {\n yield key;\n }\n }\n\n *values(): Generator<T> {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n\n *entries(): Generator<[K, T]> {\n for (const key of this.valueMap.keys()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this.keyMap.get(key)!, this.valueMap.get(key)!];\n }\n }\n\n get(key: K): T | undefined {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.valueMap.get(strKey);\n }\n\n /**\n *\n * @description Set a key and a value in the MichelsonMap. If the key already exists, override the current value.\n *\n * @example map.set(\"myKey\", \"myValue\") // Using a string as key\n *\n * @example map.set({0: \"test\", 1: \"test1\"}, \"myValue\") // Using a pair as key\n *\n * @warn The same key can be represented in multiple ways, depending on the type of the key. This duplicate key situation will cause a runtime error (duplicate key) when sending the map data to the Tezos RPC node.\n *\n * For example, consider a contract with a map whose key is of type boolean. If you set the following values in MichelsonMap: map.set(false, \"myValue\") and map.set(null, \"myValue\").\n *\n * You will get two unique entries in the MichelsonMap. These values will both be evaluated as falsy by the MichelsonEncoder and ultimately rejected by the Tezos RPC.\n */\n set(key: K, value: T) {\n this.assertTypecheckKey(key);\n this.assertTypecheckValue(value);\n\n const strKey = this.serializeDeterministically(key);\n this.keyMap.set(strKey, key);\n this.valueMap.set(strKey, value);\n }\n\n delete(key: K) {\n this.assertTypecheckKey(key);\n\n this.keyMap.delete(this.serializeDeterministically(key));\n this.valueMap.delete(this.serializeDeterministically(key));\n }\n\n has(key: K) {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.keyMap.has(strKey) && this.valueMap.has(strKey);\n }\n\n clear(): void {\n this.keyMap.clear();\n this.valueMap.clear();\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n forEach(cb: (value: T, key: K, map: MichelsonMap<K, T>) => void) {\n for (const [key, value] of this.entries()) {\n cb(value, key, this);\n }\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TokenSchema } from '../schema/types';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding invalid or incorrect data (e.g. if an address is expected but a number is received)\n */\nexport abstract class TokenValidationError extends TaquitoError {\n name = 'TokenValidationError';\n\n constructor(public readonly value: any, public readonly token: Token, baseMessage: string) {\n super();\n const annot = this.token.annot();\n const annotText = annot ? `[${annot}] ` : '';\n this.message = `${annotText}${baseMessage}`;\n }\n}\n\nexport type TokenFactory = (val: any, idx: number) => Token;\n\nexport interface Semantic {\n [key: string]: (value: MichelsonV1Expression, schema: MichelsonV1Expression) => any;\n}\n\nexport interface SemanticEncoding {\n [key: string]: (value: any, type?: MichelsonV1Expression) => MichelsonV1Expression;\n}\n\nexport abstract class Token {\n constructor(\n protected val: MichelsonV1ExpressionExtended,\n protected idx: number,\n protected fac: TokenFactory\n ) {}\n\n protected typeWithoutAnnotations() {\n const handleMichelsonExpression = (val: MichelsonV1Expression): MichelsonV1Expression => {\n if (typeof val === 'object') {\n if (Array.isArray(val)) {\n const array = val as MichelsonV1Expression[];\n return array.map((item) => handleMichelsonExpression(item));\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.args) {\n return {\n prim: extended.prim,\n args: extended.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: extended.prim,\n };\n }\n }\n return val;\n };\n\n const handleMichelsonExtended = (\n val: MichelsonV1ExpressionExtended\n ): Omit<MichelsonV1ExpressionExtended, 'annots'> => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return handleMichelsonExtended(this.val);\n }\n\n annot() {\n return (\n Array.isArray(this.val.annots) && this.val.annots.length > 0\n ? this.val.annots[0]\n : String(this.idx)\n ).replace(/(%|:)(_Liq_entry_)?/, '');\n }\n\n hasAnnotations() {\n return Array.isArray(this.val.annots) && this.val.annots.length;\n }\n\n get tokenVal() {\n return this.val;\n }\n\n public createToken = this.fac;\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public abstract ExtractSchema(): any;\n\n abstract generateSchema(): TokenSchema;\n\n public abstract Execute(val: any, semantics?: Semantic): any;\n\n public abstract Encode(_args: any[]): any;\n\n public abstract EncodeObject(args: any, semantics?: SemanticEncoding): any;\n\n public ExtractSignature() {\n return [[this.ExtractSchema()]];\n }\n\n abstract findAndReturnTokens(tokenToFind: string, tokens: Array<Token>): Array<Token>;\n}\n\nexport type BigMapKeyType = string | number | object;\n\nexport abstract class ComparableToken extends Token {\n abstract ToBigMapKey(val: BigMapKeyType): {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n };\n abstract ToKey(val: string | MichelsonV1Expression): any;\n\n compare(o1: string, o2: string): number {\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { BigMapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Big Map types\n */\nexport class BigMapValidationError extends TokenValidationError {\n name = 'BigMapValidationError';\n constructor(public value: any, public token: BigMapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BigMapToken extends Token {\n static prim: 'big_map' = 'big_map' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as unknown as ComparableToken;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): BigMapTokenSchema {\n return {\n __michelsonType: BigMapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n private validate(value: any) {\n if (!MichelsonMap.isMichelsonMap(value)) {\n throw new BigMapValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a MichelsonMap`\n );\n }\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n this.validate(val);\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n this.validate(val);\n\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val, this.val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link InvalidMapTypeError} when the argument passed to val is an array but not a valid map type\n * @throws {@link BigMapValidationError} when the value is invalid\n */\n public Execute(val: any[] | { int: string }, semantic?: Semantic) {\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val as any, this.val);\n }\n\n if (Array.isArray(val)) {\n // Athens is returning an empty array for big map in storage\n // Internal: In taquito v5 it is still used to decode big map diff (as if they were a regular map)\n const map = new MichelsonMap(this.val);\n val.forEach((current) => {\n map.set(this.KeySchema.ToKey(current.args[0]), this.ValueSchema.Execute(current.args[1]));\n });\n return map;\n } else if ('int' in val) {\n // Babylon is returning an int with the big map id in contract storage\n return val.int;\n } else {\n throw new BigMapValidationError(\n val,\n this,\n `Big map is expecting either an array (Athens) or an object with an int property (Babylon). Got ${JSON.stringify(\n val\n )}`\n );\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BigMapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { OrTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n ComparableToken,\n SemanticEncoding,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing an OrToken\n */\nexport class OrValidationError extends TokenValidationError {\n name = 'OrValidationError';\n constructor(public value: any, public token: OrToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class OrToken extends ComparableToken {\n static prim: 'or' = 'or' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n const label = args[args.length - 1];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Left', args: [leftToken.Encode(args)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Right', args: [rightToken.Encode(args)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.Encode(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public ExtractSignature(): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n const newSig = [];\n\n if (leftToken instanceof OrToken) {\n newSig.push(...leftToken.ExtractSignature());\n } else {\n for (const sig of leftToken.ExtractSignature()) {\n newSig.push([leftToken.annot(), ...sig]);\n }\n }\n\n if (rightToken instanceof OrToken) {\n newSig.push(...rightToken.ExtractSignature());\n } else {\n for (const sig of rightToken.ExtractSignature()) {\n newSig.push([rightToken.annot(), ...sig]);\n }\n }\n\n return newSig;\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n this.validateJavascriptObject(args);\n const label = Object.keys(args)[0];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n return { prim: 'Left', args: [leftToken.EncodeObject(args[label], semantic)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label], semantic)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n private validateJavascriptObject(args: any): asserts args is Record<string, any> {\n if (\n typeof args !== 'object' ||\n Array.isArray(args) ||\n args === null ||\n Object.keys(args).length !== 1\n ) {\n throw new OrValidationError(\n args,\n this,\n `EncodeObject expects an object with a single key but got: ${JSON.stringify(args)}`\n );\n }\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n public Execute(val: any, semantics?: Semantic): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (val.prim === 'Right') {\n if (rightToken instanceof OrToken) {\n return rightToken.Execute(val.args[0], semantics);\n } else {\n return {\n [rightToken.annot()]: rightToken.Execute(val.args[0], semantics),\n };\n }\n } else if (val.prim === 'Left') {\n if (leftToken instanceof OrToken) {\n return leftToken.Execute(val.args[0], semantics);\n }\n return {\n [leftToken.annot()]: leftToken.Execute(val.args[0], semantics),\n };\n } else {\n throw new OrValidationError(\n val,\n this,\n `Was expecting Left or Right prim but got: ${JSON.stringify(val.prim)}`\n );\n }\n }\n\n private traversal(\n getLeftValue: (token: Token) => any,\n getRightValue: (token: Token) => any,\n concat: (left: any, right: any) => any\n ) {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof OrToken) {\n leftValue = getLeftValue(leftToken);\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof OrToken) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = concat(leftValue, rightValue);\n\n return res;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema(),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n }\n\n generateSchema(): OrTokenSchema {\n return {\n __michelsonType: OrToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof OrToken) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof OrToken) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n },\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n ),\n };\n }\n\n private findToken(label: any): Token | null {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (\n String(leftToken.annot()) === String(label) &&\n !(leftToken instanceof OrToken) &&\n leftToken instanceof ComparableToken\n ) {\n return leftToken;\n } else if (\n String(rightToken.annot()) === String(label) &&\n !(rightToken instanceof OrToken) &&\n rightToken instanceof ComparableToken\n ) {\n return rightToken;\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n return null;\n }\n }\n\n compare(val1: any, val2: any): any {\n const labelVal1 = Object.keys(val1)[0];\n const labelVal2 = Object.keys(val2)[0];\n\n if (labelVal1 === labelVal2) {\n const token = this.findToken(labelVal1);\n if (token instanceof ComparableToken) {\n return token.compare(val1[labelVal1], val2[labelVal1]);\n }\n } else {\n const encoded1 = JSON.stringify(this.EncodeObject(val1));\n const encoded2 = JSON.stringify(this.EncodeObject(val2));\n return encoded1 < encoded2 ? -1 : 1;\n }\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OrToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.traversal(\n (leftToken) => leftToken.findAndReturnTokens(tokenToFind, tokens),\n (rightToken) => rightToken.findAndReturnTokens(tokenToFind, tokens),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n return tokens;\n }\n}\n","import { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\nimport { OrToken } from './or';\nimport { PairTokenSchema } from '../schema/types';\nimport { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates in invalid token argument being passed\n */\nexport class TokenArgumentValidationError extends TaquitoError {\n public name = 'TokenArgumentValidationError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure occurring when doing a comparison of tokens\n */\nexport class TokenComparisonError extends TaquitoError {\n public name = 'TokenComparisonError';\n constructor(public val1: string, public val2: string) {\n super();\n this.message = `Tokens ${JSON.stringify(val1)} and ${JSON.stringify(val2)} are not comparable`;\n }\n}\n\n// collapse comb pair\n/**\n * @throws {@link TokenArgumentValidationError}\n */\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n if (val.args === undefined) {\n throw new TokenArgumentValidationError(\n `The value ${JSON.stringify(\n val\n )} is an invalid PairToken with no arguments, a pair must have two or more arguments.`\n );\n }\n if (val.args.length > 2) {\n return [\n val.args[0],\n {\n prim: prim,\n args: val.args.slice(1),\n },\n ];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim: 'pair' = 'pair' as const;\n\n constructor(val: MichelsonV1Expression, idx: number, fac: TokenFactory) {\n super(\n Array.isArray(val)\n ? {\n prim: PairToken.prim,\n args: val,\n }\n : (val as MichelsonV1ExpressionExtended).prim\n ? (val as MichelsonV1ExpressionExtended)\n : ({\n prim: PairToken.prim,\n args: val,\n } as MichelsonV1ExpressionExtended),\n idx,\n fac\n );\n }\n\n private args(): [any, any] {\n // collapse comb pair\n return collapse(this.val);\n }\n\n private tokens(): [Token, Token] {\n let cnt = 0;\n return this.args().map((a) => {\n const tok = this.createToken(a, this.idx + cnt);\n if (tok instanceof PairToken) {\n cnt += Object.keys(tok.ExtractSchema()).length;\n } else {\n cnt++;\n }\n return tok;\n }) as [Token, Token];\n }\n\n public Encode(args: any[]): any {\n return {\n prim: 'Pair',\n args: this.tokens().map((t) => t.Encode(args)),\n };\n }\n\n public ExtractSignature(): any {\n const args = this.args();\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n\n const newSig = [];\n\n for (const leftSig of leftToken.ExtractSignature()) {\n for (const rightSig of rightToken.ExtractSignature()) {\n newSig.push([...leftSig, ...rightSig]);\n }\n }\n\n return newSig;\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const [leftToken, rightToken] = this.tokens();\n\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = args;\n } else {\n leftValue = args[leftToken.annot()];\n }\n\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = args;\n } else {\n rightValue = args[rightToken.annot()];\n }\n\n return {\n prim: 'Pair',\n args: [\n leftToken.EncodeObject(leftValue, semantic),\n rightToken.EncodeObject(rightValue, semantic),\n ],\n };\n }\n\n private traversal(getLeftValue: (token: Token) => any, getRightValue: (token: Token) => any) {\n const args = this.args();\n\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n if (leftToken instanceof PairToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = {\n ...leftValue,\n ...rightValue,\n };\n\n return res;\n }\n\n public Execute(val: any, semantics?: Semantic): { [key: string]: any } {\n const args = collapse(val, 'Pair');\n return this.traversal(\n (leftToken) => leftToken.Execute(args[0], semantics),\n (rightToken) => rightToken.Execute(args[1], semantics)\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema()\n );\n }\n\n generateSchema(): PairTokenSchema {\n return {\n __michelsonType: PairToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n }\n ),\n };\n }\n\n /**\n * @throws {@link TokenComparisonError}\n */\n public compare(val1: any, val2: any) {\n const [leftToken, rightToken] = this.tokens();\n\n const getValue = (token: Token, args: any) => {\n if (token instanceof PairToken && !token.hasAnnotations()) {\n return args;\n } else {\n return args[token.annot()];\n }\n };\n\n if (leftToken instanceof ComparableToken && rightToken instanceof ComparableToken) {\n const result: number = leftToken.compare(\n getValue(leftToken, val1),\n getValue(leftToken, val2)\n );\n\n if (result === 0) {\n return rightToken.compare(getValue(rightToken, val1), getValue(rightToken, val2));\n }\n\n return result;\n }\n\n throw new TokenComparisonError(val1, val2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (PairToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.tokens().map((t) => t.findAndReturnTokens(tokenToFind, tokens));\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Nat\n */\nexport class NatValidationError extends TokenValidationError {\n name = 'NatValidationError';\n constructor(public value: any, public token: NatToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NatToken extends ComparableToken {\n static prim: 'nat' = 'nat' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new NatValidationError(val, this, `Value is not a number: ${JSON.stringify(val)}`);\n }\n if (bigNumber.isNegative()) {\n throw new NatValidationError(val, this, `Value cannot be negative: ${JSON.stringify(val)}`);\n }\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[NatToken.prim]) {\n return semantic[NatToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NatToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NatToken.prim,\n schema: NatToken.prim,\n };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: NatToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return new BigNumber(int);\n }\n\n compare(nat1: string | number, nat2: string | number) {\n const o1 = Number(nat1);\n const o2 = Number(nat2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NatToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim: 'string' = 'string' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return StringToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: StringToken.prim,\n schema: StringToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[StringToken.prim]) {\n return semantic[StringToken.prim](val);\n }\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: StringToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (StringToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing an Address\n */\nexport class AddressValidationError extends TokenValidationError {\n name = 'AddressValidationError';\n constructor(public value: any, public token: AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class AddressToken extends ComparableToken {\n static prim: 'address' = 'address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decode(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n private validate(value: any) {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new AddressValidationError(\n value,\n this,\n `Address is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[AddressToken.prim]) {\n return semantic[AddressToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new AddressValidationError(\n val,\n this,\n `cannot be missing both string and bytes: ${JSON.stringify(val)}`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: AddressToken.prim,\n schema: AddressToken.prim,\n };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new AddressValidationError(\n { bytes, string },\n this,\n `cannot be missing both string and bytes ${JSON.stringify({ string, bytes })}`\n );\n }\n\n return encodePubKey(bytes);\n }\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n const implicit1 = isImplicit(address1);\n const implicit2 = isImplicit(address2);\n\n if (implicit1 && !implicit2) {\n return -1;\n } else if (implicit2 && !implicit1) {\n return 1;\n }\n return super.compare(address1, address2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { MapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Map\n */\nexport class MapValidationError extends TokenValidationError {\n name = 'MapValidationError';\n constructor(public value: any, public token: MapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MapToken extends Token {\n static prim: 'map' = 'map' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n validate(value: any) {\n if (!MichelsonMap.isMichelsonMap(value)) {\n throw new MapValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid MichelsonMap`\n );\n }\n }\n\n public Execute(val: any[], semantics?: Semantic): { [key: string]: any } {\n const map = new MichelsonMap(this.val);\n\n val.forEach((current) => {\n map.set(\n this.KeySchema.ToKey(current.args[0]),\n this.ValueSchema.Execute(current.args[1], semantics)\n );\n });\n return map;\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n this.validate(val);\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n this.validate(val);\n\n if (semantic && semantic[MapToken.prim]) {\n return semantic[MapToken.prim](val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): MapTokenSchema {\n return {\n __michelsonType: MapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim: 'bool' = 'bool' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): boolean {\n return String(val.prim).toLowerCase() === 'true' ? true : false;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { prim: val ? 'True' : 'False' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding) {\n if (semantic && semantic[BoolToken.prim]) {\n return semantic[BoolToken.prim](val);\n }\n return { prim: val ? 'True' : 'False' };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BoolToken.prim,\n schema: BoolToken.prim,\n };\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val) as any,\n type: { prim: BoolToken.prim },\n };\n }\n\n ToKey(val: string) {\n return this.EncodeObject(val);\n }\n\n compare(val1: any, val2: any) {\n if ((val1 && val2) || (!val1 && !val2)) {\n return 0;\n } else if (val1) {\n return 1;\n } else {\n return -1;\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BoolToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n b58decodeL2Address,\n encodeL2Address,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\nimport {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from '../token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Tx Rollup L2 Address\n */\nexport class TxRollupL2AddressValidationError extends TokenValidationError {\n name = 'TxRollupL2AddressValidationError';\n constructor(public value: unknown, public token: TxRollupL2AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class TxRollupL2AddressToken extends ComparableToken {\n static prim: 'tx_rollup_l2_address' = 'tx_rollup_l2_address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decodeL2Address(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n private validate(value: any) {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new TxRollupL2AddressValidationError(\n value,\n this,\n `tx_rollup_l2_address is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public Encode(args: string[]): any {\n const val = args.pop();\n if (!val) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `arg missing to encode: this -> \"${JSON.stringify(val)}\"`\n );\n }\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[TxRollupL2AddressToken.prim]) {\n return semantic[TxRollupL2AddressToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public Execute(val: { bytes?: string; string?: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `value cannot be missing string and byte value. must have one ${JSON.stringify(val)}`\n );\n }\n return encodeL2Address(val.bytes);\n }\n public ExtractSchema() {\n return TxRollupL2AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TxRollupL2AddressToken.prim,\n schema: TxRollupL2AddressToken.prim,\n };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public ToKey({ bytes, string }: { bytes?: string; string?: string }) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new TxRollupL2AddressValidationError(\n bytes,\n this,\n `value cannot be missing string and byte value. must have one: bytes = ${JSON.stringify(\n bytes\n )}`\n );\n }\n return encodeL2Address(bytes);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]): Token[] {\n if (TxRollupL2AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TokenSchema } from './../schema/types';\nimport { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { ContractTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Contract\n */\nexport class ContractValidationError extends TokenValidationError {\n name = 'ContractValidationError';\n constructor(public value: any, public token: ContractToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ContractToken extends Token {\n static prim: 'contract' = 'contract' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n private validate(value: any) {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new ContractValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid contract address.`\n );\n }\n\n return null;\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new ContractValidationError(\n val,\n this,\n `Value ${JSON.stringify(\n val\n )} is not a valid contract address. must contain bytes or string.`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n this.validate(val);\n return { string: val };\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n if (semantic && semantic[ContractToken.prim]) {\n return semantic[ContractToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n generateSchema(): ContractTokenSchema {\n const valueSchema = this.createToken(this.val.args[0], 0);\n return {\n __michelsonType: ContractToken.prim,\n schema: {\n parameter: this.val.args[0] ? valueSchema.generateSchema() : ({} as TokenSchema),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ListTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, TokenValidationError, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a List\n */\nexport class ListValidationError extends TokenValidationError {\n name = 'ListValidationError';\n constructor(public value: any, public token: ListToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ListToken extends Token {\n static prim: 'list' = 'list' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n private validate(value: any) {\n if (!Array.isArray(value)) {\n throw new ListValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid array`\n );\n }\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n const schema = this.createToken(this.val.args[0], 0);\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n this.validate(val);\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n this.validate(args);\n\n if (semantic && semantic[ListToken.prim]) {\n return semantic[ListToken.prim](args);\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [ListToken.prim]: this.valueSchema.ExtractSchema(),\n };\n }\n\n generateSchema(): ListTokenSchema {\n return {\n __michelsonType: ListToken.prim,\n schema: this.valueSchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ListToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Mutez\n */\nexport class MutezValidationError extends TokenValidationError {\n name = 'MutezValidationError';\n constructor(public value: any, public token: MutezToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MutezToken extends ComparableToken {\n static prim: 'mutez' = 'mutez' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any) {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return MutezToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: MutezToken.prim,\n schema: MutezToken.prim,\n };\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new MutezValidationError(val, this, `Value is not a number: ${val}`);\n }\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: String(val).toString() };\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[MutezToken.prim]) {\n return semantic[MutezToken.prim](val);\n }\n\n return { int: String(val).toString() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: MutezToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(mutez1: string | number, mutez2: string | number) {\n const o1 = Number(mutez1);\n const o2 = Number(mutez2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MutezToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n Token,\n SemanticEncoding,\n} from '../token';\nimport { stripHexPrefix } from '@taquito/utils';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Bytes\n */\nexport class BytesValidationError extends TokenValidationError {\n name = 'BytesValidationError';\n constructor(public value: any, public token: BytesToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BytesToken extends ComparableToken {\n static prim: 'bytes' = 'bytes' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { bytes: val },\n type: { prim: BytesToken.prim },\n };\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n private validate(val: any) {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n public Encode(args: any[]): any {\n let val = args.pop();\n val = stripHexPrefix(this.convertUint8ArrayToHexString(val));\n\n this.validate(val);\n\n return { bytes: String(val).toString() };\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n public EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n\n if (typeof val === 'string') {\n val = stripHexPrefix(val);\n }\n\n this.validate(val);\n\n if (semantic && semantic[BytesToken.prim]) {\n return semantic[BytesToken.prim](val);\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BytesToken.prim,\n schema: BytesToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return bytes;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BytesToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { OptionTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim: 'option' = 'option' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public subToken(): Token {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n schema(): Token {\n return this.createToken(this.val.args[0], 0);\n }\n\n annot(): string {\n return Array.isArray(this.val.annots)\n ? super.annot()\n : this.createToken(this.val.args[0], this.idx).annot();\n }\n\n public Encode(args: any): any {\n const value = args;\n if (value === undefined || value === null) {\n return { prim: 'None' };\n } else if (\n Array.isArray(value) &&\n (value[value.length - 1] === undefined || value[value.length - 1] === null)\n ) {\n value.pop();\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().Encode(args)] };\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n let value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n value = typeof value === 'object' && 'Some' in value ? value['Some'] : value;\n return { prim: 'Some', args: [this.schema().EncodeObject(value, semantic)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n return { Some: this.schema().Execute(val.args[0], semantics) };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return { Some: this.schema().ExtractSchema() };\n }\n\n generateSchema(): OptionTokenSchema {\n return {\n __michelsonType: OptionToken.prim,\n schema: this.schema().generateSchema(),\n };\n }\n\n public ExtractSignature() {\n return [...this.schema().ExtractSignature()];\n }\n\n get KeySchema(): ComparableToken {\n return this.schema() as any;\n }\n\n compare(val1: any, val2: any) {\n if (!val1) {\n return -1;\n } else if (!val2) {\n return 1;\n }\n return this.KeySchema.compare(val1, val2);\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OptionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.subToken().findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim: 'timestamp' = 'timestamp' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { string?: string; int?: string }) {\n if (val.string && /^\\d+$/.test(val.string)) {\n return new Date(Number(val.string) * 1000).toISOString();\n } else if (val.string) {\n return new Date(val.string).toISOString();\n } else if (val.int) {\n return new Date(Number(val.int) * 1000).toISOString();\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TimestampToken.prim]) {\n return semantic[TimestampToken.prim](val);\n }\n\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TimestampToken.prim,\n schema: TimestampToken.prim,\n };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: TimestampToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TimestampToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Int\n */\nexport class IntValidationError extends TokenValidationError {\n name = 'IntValidationError';\n constructor(public value: any, public token: IntToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class IntToken extends ComparableToken {\n static prim: 'int' = 'int' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return IntToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n };\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new IntValidationError(val, this, `Value is not a number: ${JSON.stringify(val)}`);\n }\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[IntToken.prim]) {\n return semantic[IntToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: IntToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(int1: string | number, int2: string | number) {\n const o1 = Number(int1);\n const o2 = Number(int2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (IntToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ComparableToken, SemanticEncoding, Token, TokenFactory } from './token';\nimport { BaseTokenSchema } from '../schema/types';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim: 'unit' = 'unit' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n args.pop();\n return { prim: 'Unit' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[UnitToken.prim]) {\n return semantic[UnitToken.prim](val);\n }\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return UnitToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: UnitToken.prim,\n schema: UnitToken.prim,\n };\n }\n\n compare(_val1: any, _val2: any) {\n return 0;\n }\n\n ToKey(_val: any) {\n return UnitValue;\n }\n\n ToBigMapKey(_val: any) {\n return {\n key: { prim: 'Unit' },\n type: { prim: UnitToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (UnitToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport {\n encodeKey,\n validatePublicKey,\n ValidationResult,\n Prefix,\n b58cdecode,\n prefix,\n} from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nconst publicKeyPrefixLength = 4;\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Key\n */\nexport class KeyValidationError extends TokenValidationError {\n name = 'KeyValidationError';\n constructor(public value: any, public token: KeyToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyToken extends ComparableToken {\n static prim: 'key' = 'key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n private validate(value: any) {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n throw new KeyValidationError(value, this, 'Key is not valid');\n }\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[KeyToken.prim]) {\n return semantic[KeyToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyToken.prim,\n schema: KeyToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyToken.prim },\n };\n }\n\n compare(key1: string, key2: string): number {\n const keyPrefix1 = this.getPrefix(key1);\n const keyPrefix2 = this.getPrefix(key2);\n\n if (keyPrefix1 === Prefix.EDPK && keyPrefix2 !== Prefix.EDPK) {\n return -1;\n } else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n } else if (keyPrefix1 === Prefix.P2PK) {\n if (keyPrefix2 !== Prefix.P2PK) {\n return 1;\n }\n\n const keyBytes1 = this.getP256PublicKeyComparableBytes(key1);\n const keyBytes2 = this.getP256PublicKeyComparableBytes(key2);\n return Buffer.compare(keyBytes1, keyBytes2);\n }\n\n return super.compare(key1, key2);\n }\n\n private getPrefix(val: string) {\n return val.substring(0, publicKeyPrefixLength);\n }\n\n private getP256PublicKeyComparableBytes(p2pk: string) {\n return b58cdecode(p2pk, prefix[Prefix.P2PK]).slice(1);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Key Hash\n */\nexport class KeyHashValidationError extends TokenValidationError {\n name = 'KeyHashValidationError';\n constructor(public value: any, public token: KeyHashToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyHashToken extends ComparableToken {\n static prim: 'key_hash' = 'key_hash' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n private validate(value: any) {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n throw new KeyHashValidationError(\n value,\n this,\n `KeyHash is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[KeyHashToken.prim]) {\n return semantic[KeyHashToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyHashToken.prim,\n schema: KeyHashToken.prim,\n };\n }\n\n public ToKey({ string, bytes }: any) {\n if (string) {\n return string;\n }\n\n return encodeKeyHash(bytes);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyHashToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyHashToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Signature\n */\nexport class SignatureValidationError extends TokenValidationError {\n name = 'SignatureValidationError';\n constructor(public value: any, public token: SignatureToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SignatureToken extends ComparableToken {\n static prim: 'signature' = 'signature' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): string {\n if (val.string) {\n return val.string;\n }\n // TODO decode the signature\n return val.bytes;\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n private validate(value: any) {\n if (validateSignature(value) !== ValidationResult.VALID) {\n throw new SignatureValidationError(value, this, 'Signature is not valid');\n }\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[SignatureToken.prim]) {\n return semantic[SignatureToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SignatureToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: SignatureToken.prim,\n schema: SignatureToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: SignatureToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SignatureToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { LambdaTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim: 'lambda' = 'lambda' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get paramSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n get returnSchema() {\n return this.createToken(this.val.args[1], this.idx + 1);\n }\n\n public Execute(val: any) {\n if (val.string) {\n return val.string;\n } else {\n return val;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return val;\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[LambdaToken.prim]) {\n return semantic[LambdaToken.prim](val);\n }\n return val;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [LambdaToken.prim]: {\n parameters: this.paramSchema.ExtractSchema(),\n returns: this.returnSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): LambdaTokenSchema {\n return {\n __michelsonType: LambdaToken.prim,\n schema: {\n parameters: this.paramSchema.generateSchema(),\n returns: this.returnSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (LambdaToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n this.createToken(this.val.args[1], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim: 'operation' = 'operation' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return val.string;\n }\n\n public Encode(...args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[OperationToken.prim]) {\n return semantic[OperationToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: OperationToken.prim,\n schema: OperationToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SetTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n TokenValidationError,\n ComparableToken,\n SemanticEncoding,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Set\n */\nexport class SetValidationError extends TokenValidationError {\n name = 'SetValidationError';\n constructor(public value: any, public token: SetToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SetToken extends Token {\n static prim: 'set' = 'set' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n private validate(value: any) {\n if (!Array.isArray(value)) {\n throw new SetValidationError(value, this, `Value ${JSON.stringify(value)} is not an array`);\n }\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return val\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n return val.reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.Execute(current, semantics)];\n }, []);\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n this.validate(args);\n\n if (semantic && semantic[SetToken.prim]) {\n return semantic[SetToken.prim](args);\n }\n\n return args\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SetToken.prim;\n }\n\n generateSchema(): SetTokenSchema {\n return {\n __michelsonType: SetToken.prim,\n schema: this.KeySchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SetToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a ChainID\n */\nexport class ChainIDValidationError extends TokenValidationError {\n name = 'ChainIDValidationError';\n constructor(public value: any, public token: ChainIDToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ChainIDToken extends ComparableToken {\n static prim: 'chain_id' = 'chain_id' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n private validate(value: any) {\n if (validateChain(value) !== ValidationResult.VALID) {\n throw new ChainIDValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid ChainID`\n );\n }\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChainIDToken.prim,\n schema: ChainIDToken.prim,\n };\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[ChainIDToken.prim]) {\n return semantic[ChainIDToken.prim](val);\n }\n\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: ChainIDToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChainIDToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TaquitoError } from '@taquito/core';\nimport { TicketTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketError extends TaquitoError {\n name = 'TicketEncodeError';\n\n constructor() {\n super();\n this.message = 'Tickets cannot be sent to the blockchain; they are created on-chain';\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketToken extends Token {\n static prim: 'ticket' = 'ticket' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link EncodeTicketError}\n */\n public Encode(_args: any[]): any {\n throw new EncodeTicketError();\n }\n\n /**\n * @throws {@link EncodeTicketError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketToken.prim]) {\n return semantic[TicketToken.prim](args, this.val);\n }\n throw new EncodeTicketError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketToken.prim]) {\n return semantics[TicketToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketTokenSchema {\n return {\n __michelsonType: TicketToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { TaquitoError } from '@taquito/core';\nimport { TicketDeprecatedTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketDeprecatedError extends TaquitoError {\n name = 'TicketDeprecatedEncodeError';\n\n constructor() {\n super();\n this.message = 'Ticket_deprecated cannot be sent to the blockchain; they are created on-chain';\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketDeprecatedToken extends Token {\n static prim: 'ticket_deprecated' = 'ticket_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link EncodeTicketDeprecatedError}\n */\n public Encode(_args: any[]): any {\n throw new EncodeTicketDeprecatedError();\n }\n\n /**\n * @throws {@link EncodeTicketDeprecatedError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketDeprecatedToken.prim]) {\n return semantic[TicketDeprecatedToken.prim](args, this.val);\n }\n throw new EncodeTicketDeprecatedError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketDeprecatedToken.prim]) {\n return semantics[TicketDeprecatedToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketDeprecatedTokenSchema {\n return {\n __michelsonType: TicketDeprecatedToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Never Token\n */\nexport class NeverTokenError extends TokenValidationError {\n name = 'NeverTokenError';\n constructor(public value: any, public token: NeverToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NeverToken extends Token {\n static prim: 'never' = 'never' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(\n val,\n this,\n `Assigning a value to the type never is forbidden. Trying to assign ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[NeverToken.prim]) {\n return semantic[NeverToken.prim](val);\n }\n throw new NeverTokenError(\n val,\n this,\n `Assigning a value to the type never is forbidden. Trying to assign ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public Execute(val: any) {\n throw new NeverTokenError(\n val,\n this,\n `There is no literal value for the type never. Trying to execute ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NeverToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NeverToken.prim,\n schema: NeverToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NeverToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingStateTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling State\n */\nexport class SaplingStateValidationError extends TokenValidationError {\n name = 'SaplingStateValidationError';\n constructor(public value: any, public token: SaplingStateToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingStateToken extends Token {\n static prim: 'sapling_state' = 'sapling_state' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any) {\n return typeof val === 'object' && Object.keys(val).length === 0;\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n Execute(val: { int: string }, semantic?: Semantic) {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val, this.val);\n }\n if ('int' in val) {\n return val.int;\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n Encode(args: any[]): any {\n const val = args.pop();\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${JSON.stringify(val)} while expecting: {}`\n );\n }\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val);\n }\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${JSON.stringify(val)} while expecting: {}`\n );\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingStateTokenSchema {\n return {\n __michelsonType: SaplingStateToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingStateToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling Transaction\n */\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name = 'SaplingTransactionValidationError';\n constructor(public value: any, public token: SaplingTransactionToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionToken extends Token {\n static prim: 'sapling_transaction' = 'sapling_transaction' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link SaplingTransactionValidationError}\n */\n Execute(_val: any) {\n throw new SaplingTransactionValidationError(\n _val,\n this,\n `There is no literal value for the sapling_transaction type. Got: ${JSON.stringify(_val)}.`\n );\n }\n\n /**\n * @throws {@link SaplingTransactionValidationError}\n */\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionValidationError(\n val,\n this,\n `Invalid bytes: ${JSON.stringify(val)}`\n );\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionToken.prim]) {\n return semantic[SaplingTransactionToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionTokenSchema {\n return {\n __michelsonType: SaplingTransactionToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionDeprecatedTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling Transaction Deprecated\n */\nexport class SaplingTransactionDeprecatedValidationError extends TokenValidationError {\n name = 'SaplingTransactionDeprecatedValidationError';\n constructor(public value: any, public token: SaplingTransactionDeprecatedToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionDeprecatedToken extends Token {\n static prim: 'sapling_transaction_deprecated' = 'sapling_transaction_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link SaplingTransactionDeprecatedValidationError}\n */\n Execute(_val: any) {\n throw new SaplingTransactionDeprecatedValidationError(\n _val,\n this,\n `There is no literal value for the sapling_transaction_deprecated type. Got: ${JSON.stringify(\n _val\n )}.`\n );\n }\n\n /**\n * @throws {@link SaplingTransactionDeprecatedValidationError}\n */\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionDeprecatedValidationError(\n val,\n this,\n `Invalid bytes: ${JSON.stringify(val)}`\n );\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionDeprecatedToken.prim]) {\n return semantic[SaplingTransactionDeprecatedToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionDeprecatedToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionDeprecatedTokenSchema {\n return {\n __michelsonType: SaplingTransactionDeprecatedToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 scalar field Fr\n */\nexport class Bls12381frValidationError extends TokenValidationError {\n name = 'Bls12381frValidationError';\n constructor(public value: any, public token: Bls12381frToken, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381frToken extends Token {\n // An element of the BLS12-381 scalar field Fr\n // see https://tezos.gitlab.io/michelson-reference/#type-bls12_381_fr\n static prim: 'bls12_381_fr' = 'bls12_381_fr' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381frValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n EncodeObject(val: string | Uint8Array | number, semantic?: SemanticEncoding) {\n if (semantic && semantic[Bls12381frToken.prim]) {\n return semantic[Bls12381frToken.prim](val);\n }\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381frToken.prim,\n schema: Bls12381frToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 curve G1\n */\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name = 'Bls12381g1ValidationError';\n constructor(public value: any, public token: Bls12381g1Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g1Token extends Token {\n // A point on the BLS12-381 curve G1\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g1\n static prim: 'bls12_381_g1' = 'bls12_381_g1' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381g1ValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n if (semantic && semantic[Bls12381g1Token.prim]) {\n return semantic[Bls12381g1Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g1Token.prim,\n schema: Bls12381g1Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 curve G2\n */\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name = 'Bls12381g2ValidationError';\n constructor(public value: any, public token: Bls12381g2Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g2Token extends Token {\n // A point on the BLS12-381 curve G2\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g2\n static prim: 'bls12_381_g2' = 'bls12_381_g2' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381g2ValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n if (semantic && semantic[Bls12381g2Token.prim]) {\n return semantic[Bls12381g2Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g2Token.prim,\n schema: Bls12381g2Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Chest\n */\nexport class ChestValidationError extends TokenValidationError {\n name = 'ChestValidationError';\n constructor(public value: any, public token: ChestToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestToken extends Token {\n static prim: 'chest' = 'chest' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 == 0) {\n return;\n }\n throw new ChestValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n\n if (semantic && semantic[ChestToken.prim]) {\n return semantic[ChestToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestToken.prim,\n schema: ChestToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Chest Key\n */\nexport class ChestKeyValidationError extends TokenValidationError {\n name = 'ChestKeyValidationError';\n constructor(public value: any, public token: ChestKeyToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestKeyToken extends Token {\n static prim: 'chest_key' = 'chest_key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new ChestKeyValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n\n if (semantic && semantic[ChestKeyToken.prim]) {\n return semantic[ChestKeyToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestKeyToken.prim,\n schema: ChestKeyToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ConstantTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding a Global Constant\n */\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing executing a Global Constant\n */\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name = 'GlobalConstantDecodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantToken extends Token {\n static prim: 'constant' = 'constant' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link GlobalConstantDecodingError}\n */\n public Execute(val: any, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(\n val,\n this,\n `Unable to decode a value represented by a global constants. Please provide an expanded script to the Michelson-Encoder or semantics for the decoding. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n }\n\n /**\n * @throws {@link GlobalConstantEncodingError}\n */\n public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(\n args,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @throws {@link GlobalConstantEncodingError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val);\n }\n throw new GlobalConstantEncodingError(\n val,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n generateSchema(): ConstantTokenSchema {\n return {\n __michelsonType: GlobalConstantToken.prim,\n schema: {\n hash: this.val.args[0]['string'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { PairToken } from './pair';\n\nimport { NatToken } from './comparable/nat';\n\nimport { StringToken } from './comparable/string';\n\nimport { BigMapToken } from './bigmap';\n\nimport { AddressToken } from './comparable/address';\n\nimport { MapToken } from './map';\n\nimport { BoolToken } from './comparable/bool';\n\nimport { TxRollupL2AddressToken } from './comparable/tx_rollup_l2_address';\n\nimport { OrToken } from './or';\n\nimport { ContractToken } from './contract';\n\nimport { ListToken } from './list';\nimport { MutezToken } from './comparable/mutez';\nimport { BytesToken } from './comparable/bytes';\nimport { OptionToken } from './option';\nimport { TimestampToken } from './comparable/timestamp';\nimport { IntToken } from './comparable/int';\nimport { UnitToken } from './unit';\nimport { KeyToken } from './key';\nimport { KeyHashToken } from './comparable/key_hash';\nimport { SignatureToken } from './signature';\nimport { LambdaToken } from './lambda';\nimport { OperationToken } from './operation';\nimport { SetToken } from './set';\nimport { ChainIDToken } from './chain-id';\nimport { TicketToken } from './ticket';\nimport { TicketDeprecatedToken } from './ticket-deprecated';\nimport { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\nimport { SaplingTransactionDeprecatedToken } from './sapling-transaction-deprecated';\nimport { Bls12381frToken } from './bls12-381-fr';\nimport { Bls12381g1Token } from './bls12-381-g1';\nimport { Bls12381g2Token } from './bls12-381-g2';\nimport { ChestToken } from './chest';\nimport { ChestKeyToken } from './chest-key';\nimport { GlobalConstantToken } from './constant';\n\nexport const tokens = [\n PairToken,\n NatToken,\n StringToken,\n BigMapToken,\n AddressToken,\n TxRollupL2AddressToken,\n MapToken,\n BoolToken,\n OrToken,\n ContractToken,\n ListToken,\n MutezToken,\n BytesToken,\n OptionToken,\n TimestampToken,\n IntToken,\n UnitToken,\n KeyToken,\n KeyHashToken,\n SignatureToken,\n LambdaToken,\n OperationToken,\n SetToken,\n ChainIDToken,\n TicketToken,\n TicketDeprecatedToken,\n NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\n SaplingTransactionDeprecatedToken,\n Bls12381frToken,\n Bls12381g1Token,\n Bls12381g2Token,\n ChestToken,\n ChestKeyToken,\n GlobalConstantToken,\n];\n","import { tokens } from './tokens';\nimport { Token } from './token';\nimport { PairToken } from './pair';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a script having an invalid type or it being unsupported by the Michelson Encoder. Note some protocol changes might affect this, we encourage users to open an issue so we can look into implementing support for said types.\n */\nexport class InvalidTokenError extends TaquitoError {\n name = 'Invalid token error';\n constructor(public message: string, public data: any) {\n super(message);\n }\n}\n\n/**\n *\n * @description Create a token from a value\n * @throws {@link InvalidTokenError} If the value passed is not supported by the Michelson Encoder\n */\nexport function createToken(val: any, idx: number): Token {\n if (Array.isArray(val)) {\n return new PairToken(val, idx, createToken);\n }\n\n const t = tokens.find((x) => x.prim === val.prim);\n if (!t) {\n throw new InvalidTokenError(\n `Malformed data: ${JSON.stringify(val)}. Expected a value with a valid prim property`,\n val\n );\n }\n return new t(val, idx, createToken);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { InvalidViewParameterError, TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding (transforming JS parameter into JSON Michelson) the parameter of the view\n */\nexport class ParameterEncodingError extends InvalidViewParameterError {\n constructor(\n public readonly viewName: string,\n public readonly sigs: any,\n public readonly args: any,\n public readonly cause?: any\n ) {\n super(viewName, sigs, args, cause);\n this.name = 'ParameterEncodingError';\n this.message = `Could not encode parameter ${JSON.stringify(\n args\n )} received for name \"${viewName}\" expecting one of the following signatures ${JSON.stringify(\n sigs\n )}`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid on-chain view found on the script\n */\nexport class InvalidScriptError extends TaquitoError {\n name = 'InvalidScriptError';\n constructor(public readonly script: any, public readonly reason?: string) {\n super();\n let message = `Invalid on-chain view found in the following script.`;\n if (reason) {\n message += ` Reason: ${reason}.`;\n }\n message += `Script: ${JSON.stringify(script)}`;\n this.message = message;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid RPC response being passed or used\n */\nexport class InvalidRpcResponseError extends TaquitoError {\n public name = 'InvalidRpcResponseError';\n constructor(public readonly script: any, public readonly reason?: string) {\n super();\n let message = `Invalid RPC response passed as argument(s).`;\n if (reason) {\n message += ` Reason: ${reason}.`;\n }\n message += ` Received: ${JSON.stringify(script)}`;\n this.message = message;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map schema being passed or used\n */\nexport class InvalidBigMapSchemaError extends TaquitoError {\n public name = 'InvalidBigMapSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map diff being passed or used\n */\nexport class InvalidBigMapDiffError extends TaquitoError {\n public name = 'InvalidBigMapDiffError';\n constructor(public message: string, public readonly value: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode big maps\n */\nexport class BigMapEncodingError extends TaquitoError {\n public name = 'BigMapEncodingError';\n constructor(\n obj: 'key' | 'value',\n public readonly details: any,\n public readonly schema: any,\n public readonly value: any\n ) {\n super();\n this.message = `Unable to encode the big map ${obj}. Schema is: ${JSON.stringify(\n schema\n )}. The ${obj} is: ${JSON.stringify(value)}. Error details: ${details}`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode storage\n */\nexport class StorageEncodingError extends TaquitoError {\n public name = 'StorageEncodingError';\n constructor(\n obj: string,\n public details: any,\n public readonly schema: any,\n public readonly value: any,\n public readonly semantics?: any\n ) {\n super();\n this.message = `Unable to encode ${obj}. The schema is: ${JSON.stringify(\n schema\n )}, the value is: ${JSON.stringify(value)}.${\n semantics ? `And the semantic is: ${JSON.stringify(semantics)}` : ''\n }. Error details: ${details}`;\n }\n}\n\n/**\n * @category Error\n * @description General error that indicates a function not being passed a necessary argument\n */\nexport class MissingArgumentError extends TaquitoError {\n public name = 'MissingArgumentError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionBase,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { MapToken } from '../tokens/map';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { TicketToken } from '../tokens/ticket';\nimport { TicketDeprecatedToken } from '../tokens/ticket-deprecated';\nimport {\n BigMapKeyType,\n Semantic,\n SemanticEncoding,\n Token,\n TokenValidationError,\n} from '../tokens/token';\nimport {\n InvalidRpcResponseError,\n InvalidBigMapSchemaError,\n InvalidBigMapDiffError,\n BigMapEncodingError,\n StorageEncodingError,\n MissingArgumentError,\n} from './errors';\nimport { RpcTransaction } from './model';\nimport { TokenSchema } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(\n val: Token['val'] | MichelsonV1Expression,\n prim: string = PairToken.prim\n): Token['val'] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.prim === prim && extended.args && extended.args.length > 2) {\n return {\n ...extended,\n args: [\n extended.args?.[0],\n {\n prim: prim,\n args: extended.args?.slice(1),\n },\n ],\n };\n }\n return extended;\n}\n\nexport function deepEqual(\n a: MichelsonV1Expression | undefined,\n b: MichelsonV1Expression | undefined\n): boolean {\n if (a === undefined || b === undefined) {\n return a === b;\n }\n const ac = collapse(a);\n const bc = collapse(b);\n return (\n ac.prim === bc.prim &&\n ((ac.args === undefined && bc.args === undefined) ||\n (ac.args !== undefined &&\n bc.args !== undefined &&\n ac.args.length === bc.args.length &&\n ac.args.every((v, i) => deepEqual(v, bc.args?.[i] ?? {})))) &&\n ((ac.annots === undefined && bc.annots === undefined) ||\n (ac.annots !== undefined &&\n bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i])))\n );\n}\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. Its API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: Schema): boolean {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n /**\n * @throws {@link InvalidRpcResponseError}\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n if (!val) {\n throw new InvalidRpcResponseError(val, 'the RPC response is empty');\n }\n if (!val.script) {\n throw new InvalidRpcResponseError(val, 'the RPC response has no script');\n }\n if (!Array.isArray(val.script.code)) {\n throw new InvalidRpcResponseError(val, 'The response.script.code should be an array');\n }\n let code = val.script.code;\n while (code.length === 1 && Array.isArray(code[0])) {\n code = code[0];\n }\n const storage = code.find(\n (x) => 'prim' in x && x.prim === 'storage'\n ) as MichelsonV1ExpressionExtended;\n if (!storage || !Array.isArray(storage.args)) {\n throw new InvalidRpcResponseError(\n val,\n 'The response.script.code has an element of type {prim: \"storage\"}, but its args is not an array'\n );\n }\n return new Schema(storage.args[0]);\n }\n\n private isExpressionExtended(\n val: any\n ): val is Required<Pick<MichelsonV1ExpressionExtended, 'prim' | 'args'>> {\n return 'prim' in val && Array.isArray(val.args);\n }\n\n constructor(readonly val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n\n if (this.root instanceof BigMapToken) {\n this.bigMap = this.root;\n } else if (this.isExpressionExtended(val) && val.prim === 'pair') {\n const exp = val.args[0];\n if (this.isExpressionExtended(exp) && exp.prim === 'big_map') {\n this.bigMap = new BigMapToken(exp, 0, createToken);\n }\n }\n }\n\n private removeTopLevelAnnotation(obj: any) {\n // PairToken and OrToken can have redundant top level annotation in their storage\n if (this.root instanceof PairToken || this.root instanceof OrToken) {\n if (this.root.hasAnnotations() && typeof obj === 'object' && Object.keys(obj).length === 1) {\n return obj[Object.keys(obj)[0]];\n }\n }\n\n return obj;\n }\n\n Execute(val: any, semantics?: Semantic) {\n const storage = this.root.Execute(val, semantics);\n\n return this.removeTopLevelAnnotation(storage);\n }\n\n Typecheck(val: any) {\n if (this.root instanceof BigMapToken && Number.isInteger(Number(val))) {\n return;\n }\n if (this.root instanceof TicketToken && val.ticketer && val.value && val.amount) {\n return;\n }\n if (this.root instanceof TicketDeprecatedToken && val.ticketer && val.value && val.amount) {\n return;\n }\n if (this.root instanceof MapToken && this.root.ValueSchema instanceof BigMapToken) {\n return;\n }\n this.root.EncodeObject(val);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n * @throws {@link InvalidBigMapDiffError}\n */\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n if (!Array.isArray(diff)) {\n throw new InvalidBigMapDiffError(\n `Big map diff must be an array, got: ${JSON.stringify(diff)}`,\n diff\n );\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n */\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n * @throws {@link BigMapEncodingError}\n */\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new BigMapEncodingError('key', ex, this.bigMap.KeySchema, key);\n }\n }\n\n /**\n * @throws {@link TokenValidationError}\n * @throws {@link StorageEncodingError}\n */\n Encode(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new StorageEncodingError('storage object', ex, this.root, value, semantics);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @description Produce a representation of the storage schema.\n * Note: Provide guidance on how to write the storage object for the origination operation with Taquito.\n */\n generateSchema(): TokenSchema {\n return this.removeTopLevelAnnotation(this.root.generateSchema());\n }\n\n /**\n * @deprecated\n * @throws {@link InvalidBigMapSchemaError}\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n const bigMap = tx.reduce((prev, current) => {\n return {\n ...prev,\n ...this.ExecuteOnBigMapDiff(current.contents[0].metadata.operation_result.big_map_diff),\n };\n }, {});\n\n return {\n ...this.Execute(state),\n [this.bigMap.annot()]: bigMap,\n };\n }\n\n /**\n * @description Look up in top-level pairs of the storage to find a value matching the specified type\n *\n * @returns The first value found that match the type or `undefined` if no value is found\n *\n * @param storage storage to parse to find the value\n * @param valueType type of value to look for\n *\n */\n FindFirstInTopLevelPair<T extends MichelsonV1Expression>(storage: any, valueType: any) {\n return this.findValue(this.root['val'], storage, valueType) as T | undefined;\n }\n\n // TODO check these type casts\n /**\n * @throws {@link MissingArgumentError}\n */\n private findValue(\n schema: MichelsonV1Expression,\n storage: any,\n valueToFind: any\n ): MichelsonV1ExpressionBase | undefined {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || (schema as MichelsonV1ExpressionExtended).prim === 'pair') {\n const sch = collapse(schema);\n const strg = collapse(storage, 'Pair');\n if (sch.args === undefined || strg.args === undefined) {\n throw new MissingArgumentError('Tokens have no arguments'); // unlikely\n }\n if (sch.args[0])\n return (\n // unsafe\n this.findValue(sch.args[0] as MichelsonV1ExpressionExtended, strg.args[0], valueToFind) ||\n this.findValue(sch.args[1] as MichelsonV1ExpressionExtended, strg.args[1], valueToFind)\n );\n }\n }\n /**\n * @description Look up the schema to find any occurrence of a particular token.\n *\n * @returns an array of tokens of the specified kind or an empty array if no token was found\n *\n * @param tokenToFind string representing the prim property of the token to find\n *\n * @example\n * ```\n * Useful to find all global constants in a script, an array of GlobalConstantToken is returned:\n *\n * const schema = new Schema(script);\n * const allGlobalConstantTokens = schema.findToken('constant');\n * ```\n *\n */\n findToken(tokenToFind: string): Array<Token> {\n const tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError, SemanticEncoding } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { TokenSchema } from './types';\nimport { InvalidRpcResponseError, ParameterEncodingError } from './errors';\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class ParameterSchema {\n private root: Token;\n\n /**\n *\n * @description Create an instance of ParameterSchema from a contract script\n *\n * @param val contract script obtained from the RPC\n * @returns ParameterSchema\n * @throws {InvalidRpcResponseError} If the RPC response is invalid\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n if (!val) {\n throw new InvalidRpcResponseError(val, 'the RPC response is empty');\n }\n if (!val.script) {\n throw new InvalidRpcResponseError(val, 'the RPC response has no script');\n }\n if (!Array.isArray(val.script.code)) {\n throw new InvalidRpcResponseError(val, 'The response.script.code should be an array');\n }\n const parameter = val.script.code.find(\n (x) => 'prim' in x && x.prim === 'parameter'\n ) as MichelsonV1ExpressionExtended;\n if (!parameter) {\n throw new InvalidRpcResponseError(\n val,\n `The response.script.code should have an element of type {prim: \"parameter\"}`\n );\n }\n if (!Array.isArray(parameter.args)) {\n throw new InvalidRpcResponseError(\n val,\n `The response.script.code has an element of type {prim: \"parameter\"}, but its args is not an array`\n );\n }\n return new ParameterSchema(parameter.args[0]);\n }\n\n /**\n * @description Check if the Contract parameter is multiple entry point or not\n */\n get isMultipleEntryPoint() {\n return (\n this.root instanceof OrToken ||\n (this.root instanceof OptionToken && this.root.subToken() instanceof OrToken)\n );\n }\n\n /**\n * @description Check if the Contract parameter has an annotation or not\n */\n get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n /**\n * @description Return the schema of the parameter of a specific entry point\n * @throws {@link InvalidTokenError}\n */\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n /**\n * @description Returns the javascript object equivalent of the Micheline value provided\n */\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\n\n /**\n * @description Returns a micheline formatted object for the values provided\n * @throws {@link TokenValidationError}\n * @throws {@link ParameterEncodingError}\n */\n Encode(...args: any[]) {\n try {\n return this.root.Encode(args.reverse());\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new ParameterEncodingError('Unable to encode parameter', this.root, args, ex);\n }\n }\n\n /**\n * @description Returns a micheline formatted object for the javascript object provided\n * @throws {@link TokenValidationError}\n * @throws {@link ParameterEncodingError}\n */\n EncodeObject(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new ParameterEncodingError('Unable to encode parameter object', this.root, value, ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n /**\n * @description Produce a schema grouping together all the entry points of a contract.\n */\n generateSchema(): TokenSchema {\n return this.root.generateSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { createToken } from '../tokens/createToken';\nimport { Semantic, Token } from '../tokens/token';\nimport { InvalidScriptError, ParameterEncodingError } from './errors';\n\nexport class ViewSchema {\n readonly viewName: string;\n readonly viewArgsType: MichelsonV1ExpressionExtended;\n readonly viewReturnType: MichelsonV1ExpressionExtended;\n readonly instructions: MichelsonV1ExpressionExtended[];\n private rootArgsType: Token;\n private rootReturnType: Token;\n\n /**\n *\n * @description Create an instance of ViewSchema for each view in a script\n *\n * @param val contract script obtained from the RPC\n * @returns array of ViewSchema or empty array if there is no view in the contract\n * @throws {@link InvalidScriptError}\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const allViewSchema: ViewSchema[] = [];\n\n const views =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.filter((x: any) => x.prim === 'view') as MichelsonV1ExpressionExtended[]);\n\n if (views) {\n views.forEach((view) => {\n allViewSchema.push(new ViewSchema(view.args));\n });\n }\n return allViewSchema;\n }\n\n /**\n * @throws {@link InvalidScriptError}\n */\n constructor(viewArgs: MichelsonV1Expression[] | undefined) {\n if (!viewArgs) {\n throw new InvalidScriptError(viewArgs, 'the args are not defined');\n }\n if (viewArgs.length !== 4) {\n throw new InvalidScriptError(viewArgs, `there should be exactly 4 arguments`);\n }\n if (!('string' in viewArgs[0]) || !viewArgs[0]['string']) {\n throw new InvalidScriptError(\n viewArgs,\n `The first argument should be a string, representing the view name. It should be in the form: { string: 'viewName' }`\n );\n }\n\n this.viewName = viewArgs[0]['string'];\n this.viewArgsType = viewArgs[1] as MichelsonV1ExpressionExtended;\n this.viewReturnType = viewArgs[2] as MichelsonV1ExpressionExtended;\n this.instructions = viewArgs[3] as MichelsonV1ExpressionExtended[];\n\n this.rootArgsType = createToken(this.viewArgsType, 0);\n this.rootReturnType = createToken(this.viewReturnType, 0);\n }\n\n /**\n *\n * @description Transform the view parameter into Michelson\n *\n * @param args parameter of the view in js format\n * @returns parameter of the view in Michelson\n * @throws {@link ParameterEncodingError}\n */\n encodeViewArgs(args: any) {\n try {\n return this.rootArgsType.EncodeObject(args);\n } catch (ex) {\n throw new ParameterEncodingError(this.viewName, undefined, args, ex);\n }\n }\n\n /**\n *\n * @description Transform the view result from Michelson to readable data\n *\n * @param val result of the view in JSON Michelson\n * @param semantics optional semantics to override the default decoding behavior\n * @returns result of the view in a readable format\n */\n decodeViewResult(val: any, semantics?: Semantic) {\n return this.rootReturnType.Execute(val, semantics);\n }\n\n /**\n *\n * @description Return the signature of the view parameter\n */\n extractArgsSchema() {\n return this.rootArgsType.ExtractSchema();\n }\n\n /**\n *\n * @description Return the format of the view result\n */\n extractResultSchema() {\n return this.rootReturnType.ExtractSchema();\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { deepEqual } from './storage';\n\nexport class EventSchema {\n constructor(\n public readonly tag?: string,\n public readonly type?: MichelsonV1ExpressionExtended\n ) {}\n\n static fromMichelineValue(val: MichelsonV1ExpressionExtended) {\n return new EventSchema(\n val.annots?.[0],\n val.args?.[0] as MichelsonV1ExpressionExtended\n );\n }\n\n static fromRPCResponse(val: { script: ScriptResponse }): EventSchema[] {\n const allEventSchema: EventSchema[] = [];\n val.script.code.forEach((code) => {\n if (\n !('prim' in code) ||\n code.prim !== 'code' ||\n !('args' in code) ||\n !code.args\n ) {\n return;\n }\n allEventSchema.push(...EventSchema.extractEventsRecursively(code.args));\n });\n return EventSchema.removeDuplicates(allEventSchema);\n }\n\n static removeDuplicates(events: EventSchema[]): EventSchema[] {\n const uniqueEvents: EventSchema[] = [];\n events.forEach((event) => {\n const idx = uniqueEvents.findIndex(\n (e) => e.tag === event.tag && deepEqual(e.type, event.type)\n );\n if (idx === -1) {\n uniqueEvents.push(event);\n }\n });\n return uniqueEvents;\n }\n\n static extractEventsRecursively(code: MichelsonV1Expression): EventSchema[] {\n if (Array.isArray(code)) {\n return code.flatMap((c) => EventSchema.extractEventsRecursively(c));\n }\n if (!('prim' in code)) {\n return [];\n }\n if (code.prim === 'EMIT') {\n return [EventSchema.fromMichelineValue(code)];\n }\n if (!('args' in code) || !code.args) {\n return [];\n }\n return code.args.flatMap((c) => EventSchema.extractEventsRecursively(c));\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"9e27326dabf764c55402c50be4d78681f2c78cca\",\n \"version\": \"17.3.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport * from './schema/view-schema';\nexport * from './schema/event-schema';\nexport * from './schema/errors';\nexport * from './schema/types';\nexport { Semantic, SemanticEncoding, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\nexport { Token } from './tokens/token';\n"],"names":["_a","collapse","ticketerType","amountType"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-michelson-encoder.es6.js","sources":["../src/michelson-map.ts","../src/tokens/token.ts","../src/tokens/bigmap.ts","../src/tokens/or.ts","../src/tokens/pair.ts","../src/tokens/comparable/nat.ts","../src/tokens/comparable/string.ts","../src/tokens/comparable/address.ts","../src/tokens/map.ts","../src/tokens/comparable/bool.ts","../src/tokens/comparable/tx_rollup_l2_address.ts","../src/tokens/contract.ts","../src/tokens/list.ts","../src/tokens/comparable/mutez.ts","../src/tokens/comparable/bytes.ts","../src/tokens/option.ts","../src/tokens/comparable/timestamp.ts","../src/tokens/comparable/int.ts","../src/tokens/unit.ts","../src/tokens/key.ts","../src/tokens/comparable/key_hash.ts","../src/tokens/signature.ts","../src/tokens/lambda.ts","../src/tokens/operation.ts","../src/tokens/set.ts","../src/tokens/chain-id.ts","../src/tokens/ticket.ts","../src/tokens/ticket-deprecated.ts","../src/tokens/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.ts","../src/tokens/sapling-transaction-deprecated.ts","../src/tokens/bls12-381-fr.ts","../src/tokens/bls12-381-g1.ts","../src/tokens/bls12-381-g2.ts","../src/tokens/chest.ts","../src/tokens/chest-key.ts","../src/tokens/constant.ts","../src/tokens/tokens.ts","../src/tokens/createToken.ts","../src/schema/errors.ts","../src/schema/storage.ts","../src/schema/parameter.ts","../src/schema/view-schema.ts","../src/schema/event-schema.ts","../src/version.ts","../src/taquito-michelson-encoder.ts"],"sourcesContent":["import { MichelsonV1Expression } from '@taquito/rpc';\nimport { Schema } from './schema/storage';\nimport stringify from 'fast-json-stable-stringify';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid map type being passed or used\n */\nexport class InvalidMapTypeError extends TaquitoError {\n constructor(public readonly mapType: any, public readonly reason: string) {\n super();\n this.message = `The map type '${JSON.stringify(mapType)}' is invalid. Reason: ${reason}.`;\n this.name = 'InvalidMapTypeError';\n }\n}\n\n// Retrieve a unique symbol associated with the key from the environment\n// Used in order to identify all object that are of type MichelsonMap even if they come from different module\nconst michelsonMapTypeSymbol = Symbol.for('taquito-michelson-map-type-symbol');\n\nexport type MichelsonMapKey = Array<any> | object | string | boolean | number | null;\n\n/**\n *\n * @throws {@link InvalidMapTypeError} when the argument passed to mapType is not a valid map type\n */\nfunction validateMapType(value: MichelsonV1Expression): asserts value is {\n prim: 'map' | 'big_map';\n args: [MichelsonV1Expression, MichelsonV1Expression];\n} {\n if (!('prim' in value)) {\n throw new InvalidMapTypeError(value, `Missing 'prim' field`);\n }\n if (!['map', 'big_map'].includes(value.prim)) {\n throw new InvalidMapTypeError(value, `The prim field should be 'map' or 'big_map'`);\n }\n if (!('args' in value)) {\n throw new InvalidMapTypeError(value, `Missing 'args' field`);\n }\n if (!Array.isArray(value.args)) {\n throw new InvalidMapTypeError(value, `The 'args' field should be an array`);\n }\n if (value.args.length !== 2) {\n throw new InvalidMapTypeError(value, `The 'args' field should have 2 elements`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a map type mismatch, where an attempt to set a key or value in a Map doesn't match the defined type of the Map\n */\nexport class MapTypecheckError extends TaquitoError {\n name = 'MapTypecheckError';\n\n constructor(\n public readonly value: any,\n public readonly type: any,\n objectType: 'key' | 'value',\n public readonly reason: any\n ) {\n super();\n this.message = `The ${objectType} provided: ${JSON.stringify(\n value\n )} is not compatible with the expected michelson type: ${JSON.stringify(\n type\n )}. Reason: ${JSON.stringify(reason)}.`;\n this.name = 'MapTypecheckError';\n }\n}\n\n/**\n * @description Michelson Map is an abstraction over the michelson native map. It supports complex Pair as key\n */\nexport class MichelsonMap<K extends MichelsonMapKey, T> {\n private valueMap = new Map<string, T>();\n private keyMap = new Map<string, K>();\n\n public [michelsonMapTypeSymbol] = true;\n\n // Used to check if an object is a michelson map.\n // Using instanceof was not working for project that had multiple instance of taquito dependencies\n // as the class constructor is different\n static isMichelsonMap(obj: any): obj is MichelsonMap<any, any> {\n return obj && obj[michelsonMapTypeSymbol] === true;\n }\n\n private keySchema?: Schema;\n private valueSchema?: Schema;\n\n /**\n * @param mapType If specified key and value will be type-checked before being added to the map\n *\n * @example new MichelsonMap({ prim: \"map\", args: [{prim: \"string\"}, {prim: \"int\"}]})\n */\n constructor(mapType?: MichelsonV1Expression) {\n if (mapType) {\n this.setType(mapType);\n }\n }\n\n setType(mapType: MichelsonV1Expression) {\n validateMapType(mapType);\n\n this.keySchema = new Schema(mapType.args[0]);\n this.valueSchema = new Schema(mapType.args[1]);\n }\n\n removeType() {\n this.keySchema = undefined;\n this.valueSchema = undefined;\n }\n\n static fromLiteral(obj: { [key: string]: any }, mapType?: MichelsonV1Expression) {\n const map = new MichelsonMap(mapType);\n Object.keys(obj).forEach((key) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n\n private typecheckKey(key: K) {\n if (!this.keySchema) {\n return;\n }\n this.keySchema.Typecheck(key);\n }\n\n private typecheckValue(value: T) {\n if (!this.valueSchema) {\n return;\n }\n this.valueSchema.Typecheck(value);\n }\n\n /**\n * @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for value\n */\n private assertTypecheckValue(value: T) {\n try {\n this.typecheckValue(value);\n } catch (e) {\n throw new MapTypecheckError(value, this.valueSchema, 'value', e);\n }\n }\n\n /**\n * @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for key\n */\n private assertTypecheckKey(key: K) {\n try {\n this.typecheckKey(key);\n } catch (e) {\n throw new MapTypecheckError(key, this.keySchema, 'key', e);\n }\n }\n\n private serializeDeterministically(key: K): string {\n return stringify(key);\n }\n\n *keys(): Generator<K> {\n for (const [key] of this.entries()) {\n yield key;\n }\n }\n\n *values(): Generator<T> {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n\n *entries(): Generator<[K, T]> {\n for (const key of this.valueMap.keys()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this.keyMap.get(key)!, this.valueMap.get(key)!];\n }\n }\n\n get(key: K): T | undefined {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.valueMap.get(strKey);\n }\n\n /**\n *\n * @description Set a key and a value in the MichelsonMap. If the key already exists, override the current value.\n *\n * @example map.set(\"myKey\", \"myValue\") // Using a string as key\n *\n * @example map.set({0: \"test\", 1: \"test1\"}, \"myValue\") // Using a pair as key\n *\n * @warn The same key can be represented in multiple ways, depending on the type of the key. This duplicate key situation will cause a runtime error (duplicate key) when sending the map data to the Tezos RPC node.\n *\n * For example, consider a contract with a map whose key is of type boolean. If you set the following values in MichelsonMap: map.set(false, \"myValue\") and map.set(null, \"myValue\").\n *\n * You will get two unique entries in the MichelsonMap. These values will both be evaluated as falsy by the MichelsonEncoder and ultimately rejected by the Tezos RPC.\n */\n set(key: K, value: T) {\n this.assertTypecheckKey(key);\n this.assertTypecheckValue(value);\n\n const strKey = this.serializeDeterministically(key);\n this.keyMap.set(strKey, key);\n this.valueMap.set(strKey, value);\n }\n\n delete(key: K) {\n this.assertTypecheckKey(key);\n\n this.keyMap.delete(this.serializeDeterministically(key));\n this.valueMap.delete(this.serializeDeterministically(key));\n }\n\n has(key: K) {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.keyMap.has(strKey) && this.valueMap.has(strKey);\n }\n\n clear(): void {\n this.keyMap.clear();\n this.valueMap.clear();\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n forEach(cb: (value: T, key: K, map: MichelsonMap<K, T>) => void) {\n for (const [key, value] of this.entries()) {\n cb(value, key, this);\n }\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TokenSchema } from '../schema/types';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding invalid or incorrect data (e.g. if an address is expected but a number is received)\n */\nexport abstract class TokenValidationError extends TaquitoError {\n name = 'TokenValidationError';\n\n constructor(public readonly value: any, public readonly token: Token, baseMessage: string) {\n super();\n const annot = this.token.annot();\n const annotText = annot ? `[${annot}] ` : '';\n this.message = `${annotText}${baseMessage}`;\n }\n}\n\nexport type TokenFactory = (val: any, idx: number) => Token;\n\nexport interface Semantic {\n [key: string]: (value: MichelsonV1Expression, schema: MichelsonV1Expression) => any;\n}\n\nexport interface SemanticEncoding {\n [key: string]: (value: any, type?: MichelsonV1Expression) => MichelsonV1Expression;\n}\n\nexport abstract class Token {\n constructor(\n protected val: MichelsonV1ExpressionExtended,\n protected idx: number,\n protected fac: TokenFactory\n ) {}\n\n protected typeWithoutAnnotations() {\n const handleMichelsonExpression = (val: MichelsonV1Expression): MichelsonV1Expression => {\n if (typeof val === 'object') {\n if (Array.isArray(val)) {\n const array = val as MichelsonV1Expression[];\n return array.map((item) => handleMichelsonExpression(item));\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.args) {\n return {\n prim: extended.prim,\n args: extended.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: extended.prim,\n };\n }\n }\n return val;\n };\n\n const handleMichelsonExtended = (\n val: MichelsonV1ExpressionExtended\n ): Omit<MichelsonV1ExpressionExtended, 'annots'> => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return handleMichelsonExtended(this.val);\n }\n\n annot() {\n return (\n Array.isArray(this.val.annots) && this.val.annots.length > 0\n ? this.val.annots[0]\n : String(this.idx)\n ).replace(/(%|:)(_Liq_entry_)?/, '');\n }\n\n hasAnnotations() {\n return Array.isArray(this.val.annots) && this.val.annots.length;\n }\n\n get tokenVal() {\n return this.val;\n }\n\n public createToken = this.fac;\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public abstract ExtractSchema(): any;\n\n abstract generateSchema(): TokenSchema;\n\n public abstract Execute(val: any, semantics?: Semantic): any;\n\n public abstract Encode(_args: any[]): any;\n\n public abstract EncodeObject(args: any, semantics?: SemanticEncoding): any;\n\n public ExtractSignature() {\n return [[this.ExtractSchema()]];\n }\n\n abstract findAndReturnTokens(tokenToFind: string, tokens: Array<Token>): Array<Token>;\n}\n\nexport type BigMapKeyType = string | number | object;\n\nexport abstract class ComparableToken extends Token {\n abstract ToBigMapKey(val: BigMapKeyType): {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n };\n abstract ToKey(val: string | MichelsonV1Expression): any;\n\n compare(o1: string, o2: string): number {\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { BigMapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Big Map types\n */\nexport class BigMapValidationError extends TokenValidationError {\n name = 'BigMapValidationError';\n constructor(public value: any, public token: BigMapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BigMapToken extends Token {\n static prim: 'big_map' = 'big_map' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as unknown as ComparableToken;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): BigMapTokenSchema {\n return {\n __michelsonType: BigMapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n private validate(value: any) {\n if (!MichelsonMap.isMichelsonMap(value)) {\n throw new BigMapValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a MichelsonMap`\n );\n }\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n this.validate(val);\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link BigMapValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n this.validate(val);\n\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val, this.val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link InvalidMapTypeError} when the argument passed to val is an array but not a valid map type\n * @throws {@link BigMapValidationError} when the value is invalid\n */\n public Execute(val: any[] | { int: string }, semantic?: Semantic) {\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val as any, this.val);\n }\n\n if (Array.isArray(val)) {\n // Athens is returning an empty array for big map in storage\n // Internal: In taquito v5 it is still used to decode big map diff (as if they were a regular map)\n const map = new MichelsonMap(this.val);\n val.forEach((current) => {\n map.set(this.KeySchema.ToKey(current.args[0]), this.ValueSchema.Execute(current.args[1]));\n });\n return map;\n } else if ('int' in val) {\n // Babylon is returning an int with the big map id in contract storage\n return val.int;\n } else {\n throw new BigMapValidationError(\n val,\n this,\n `Big map is expecting either an array (Athens) or an object with an int property (Babylon). Got ${JSON.stringify(\n val\n )}`\n );\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BigMapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { OrTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n ComparableToken,\n SemanticEncoding,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing an OrToken\n */\nexport class OrValidationError extends TokenValidationError {\n name = 'OrValidationError';\n constructor(public value: any, public token: OrToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class OrToken extends ComparableToken {\n static prim: 'or' = 'or' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n const label = args[args.length - 1];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Left', args: [leftToken.Encode(args)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Right', args: [rightToken.Encode(args)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.Encode(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public ExtractSignature(): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n const newSig = [];\n\n if (leftToken instanceof OrToken) {\n newSig.push(...leftToken.ExtractSignature());\n } else {\n for (const sig of leftToken.ExtractSignature()) {\n newSig.push([leftToken.annot(), ...sig]);\n }\n }\n\n if (rightToken instanceof OrToken) {\n newSig.push(...rightToken.ExtractSignature());\n } else {\n for (const sig of rightToken.ExtractSignature()) {\n newSig.push([rightToken.annot(), ...sig]);\n }\n }\n\n return newSig;\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n this.validateJavascriptObject(args);\n const label = Object.keys(args)[0];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n return { prim: 'Left', args: [leftToken.EncodeObject(args[label], semantic)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label], semantic)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n private validateJavascriptObject(args: any): asserts args is Record<string, any> {\n if (\n typeof args !== 'object' ||\n Array.isArray(args) ||\n args === null ||\n Object.keys(args).length !== 1\n ) {\n throw new OrValidationError(\n args,\n this,\n `EncodeObject expects an object with a single key but got: ${JSON.stringify(args)}`\n );\n }\n }\n\n /**\n * @throws {@link OrValidationError}\n */\n public Execute(val: any, semantics?: Semantic): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (val.prim === 'Right') {\n if (rightToken instanceof OrToken) {\n return rightToken.Execute(val.args[0], semantics);\n } else {\n return {\n [rightToken.annot()]: rightToken.Execute(val.args[0], semantics),\n };\n }\n } else if (val.prim === 'Left') {\n if (leftToken instanceof OrToken) {\n return leftToken.Execute(val.args[0], semantics);\n }\n return {\n [leftToken.annot()]: leftToken.Execute(val.args[0], semantics),\n };\n } else {\n throw new OrValidationError(\n val,\n this,\n `Was expecting Left or Right prim but got: ${JSON.stringify(val.prim)}`\n );\n }\n }\n\n private traversal(\n getLeftValue: (token: Token) => any,\n getRightValue: (token: Token) => any,\n concat: (left: any, right: any) => any\n ) {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof OrToken) {\n leftValue = getLeftValue(leftToken);\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof OrToken) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = concat(leftValue, rightValue);\n\n return res;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema(),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n }\n\n generateSchema(): OrTokenSchema {\n return {\n __michelsonType: OrToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof OrToken) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof OrToken) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n },\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n ),\n };\n }\n\n private findToken(label: any): Token | null {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (\n String(leftToken.annot()) === String(label) &&\n !(leftToken instanceof OrToken) &&\n leftToken instanceof ComparableToken\n ) {\n return leftToken;\n } else if (\n String(rightToken.annot()) === String(label) &&\n !(rightToken instanceof OrToken) &&\n rightToken instanceof ComparableToken\n ) {\n return rightToken;\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n return null;\n }\n }\n\n compare(val1: any, val2: any): any {\n const labelVal1 = Object.keys(val1)[0];\n const labelVal2 = Object.keys(val2)[0];\n\n if (labelVal1 === labelVal2) {\n const token = this.findToken(labelVal1);\n if (token instanceof ComparableToken) {\n return token.compare(val1[labelVal1], val2[labelVal1]);\n }\n } else {\n const encoded1 = JSON.stringify(this.EncodeObject(val1));\n const encoded2 = JSON.stringify(this.EncodeObject(val2));\n return encoded1 < encoded2 ? -1 : 1;\n }\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OrToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.traversal(\n (leftToken) => leftToken.findAndReturnTokens(tokenToFind, tokens),\n (rightToken) => rightToken.findAndReturnTokens(tokenToFind, tokens),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n return tokens;\n }\n}\n","import { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\nimport { OrToken } from './or';\nimport { PairTokenSchema } from '../schema/types';\nimport { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates in invalid token argument being passed\n */\nexport class TokenArgumentValidationError extends TaquitoError {\n public name = 'TokenArgumentValidationError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure occurring when doing a comparison of tokens\n */\nexport class TokenComparisonError extends TaquitoError {\n public name = 'TokenComparisonError';\n constructor(public val1: string, public val2: string) {\n super();\n this.message = `Tokens ${JSON.stringify(val1)} and ${JSON.stringify(val2)} are not comparable`;\n }\n}\n\n// collapse comb pair\n/**\n * @throws {@link TokenArgumentValidationError}\n */\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n if (val.args === undefined) {\n throw new TokenArgumentValidationError(\n `The value ${JSON.stringify(\n val\n )} is an invalid PairToken with no arguments, a pair must have two or more arguments.`\n );\n }\n if (val.args.length > 2) {\n return [\n val.args[0],\n {\n prim: prim,\n args: val.args.slice(1),\n },\n ];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim: 'pair' = 'pair' as const;\n\n constructor(val: MichelsonV1Expression, idx: number, fac: TokenFactory) {\n super(\n Array.isArray(val)\n ? {\n prim: PairToken.prim,\n args: val,\n }\n : (val as MichelsonV1ExpressionExtended).prim\n ? (val as MichelsonV1ExpressionExtended)\n : ({\n prim: PairToken.prim,\n args: val,\n } as MichelsonV1ExpressionExtended),\n idx,\n fac\n );\n }\n\n private args(): [any, any] {\n // collapse comb pair\n return collapse(this.val);\n }\n\n private tokens(): [Token, Token] {\n let cnt = 0;\n return this.args().map((a) => {\n const tok = this.createToken(a, this.idx + cnt);\n if (tok instanceof PairToken) {\n cnt += Object.keys(tok.ExtractSchema()).length;\n } else {\n cnt++;\n }\n return tok;\n }) as [Token, Token];\n }\n\n public Encode(args: any[]): any {\n return {\n prim: 'Pair',\n args: this.tokens().map((t) => t.Encode(args)),\n };\n }\n\n public ExtractSignature(): any {\n const args = this.args();\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n\n const newSig = [];\n\n for (const leftSig of leftToken.ExtractSignature()) {\n for (const rightSig of rightToken.ExtractSignature()) {\n newSig.push([...leftSig, ...rightSig]);\n }\n }\n\n return newSig;\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const [leftToken, rightToken] = this.tokens();\n\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = args;\n } else {\n leftValue = args[leftToken.annot()];\n }\n\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = args;\n } else {\n rightValue = args[rightToken.annot()];\n }\n\n return {\n prim: 'Pair',\n args: [\n leftToken.EncodeObject(leftValue, semantic),\n rightToken.EncodeObject(rightValue, semantic),\n ],\n };\n }\n\n private traversal(getLeftValue: (token: Token) => any, getRightValue: (token: Token) => any) {\n const args = this.args();\n\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n if (leftToken instanceof PairToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = {\n ...leftValue,\n ...rightValue,\n };\n\n return res;\n }\n\n public Execute(val: any, semantics?: Semantic): { [key: string]: any } {\n const args = collapse(val, 'Pair');\n return this.traversal(\n (leftToken) => leftToken.Execute(args[0], semantics),\n (rightToken) => rightToken.Execute(args[1], semantics)\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema()\n );\n }\n\n generateSchema(): PairTokenSchema {\n return {\n __michelsonType: PairToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n }\n ),\n };\n }\n\n /**\n * @throws {@link TokenComparisonError}\n */\n public compare(val1: any, val2: any) {\n const [leftToken, rightToken] = this.tokens();\n\n const getValue = (token: Token, args: any) => {\n if (token instanceof PairToken && !token.hasAnnotations()) {\n return args;\n } else {\n return args[token.annot()];\n }\n };\n\n if (leftToken instanceof ComparableToken && rightToken instanceof ComparableToken) {\n const result: number = leftToken.compare(\n getValue(leftToken, val1),\n getValue(leftToken, val2)\n );\n\n if (result === 0) {\n return rightToken.compare(getValue(rightToken, val1), getValue(rightToken, val2));\n }\n\n return result;\n }\n\n throw new TokenComparisonError(val1, val2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (PairToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.tokens().map((t) => t.findAndReturnTokens(tokenToFind, tokens));\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Nat\n */\nexport class NatValidationError extends TokenValidationError {\n name = 'NatValidationError';\n constructor(public value: any, public token: NatToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NatToken extends ComparableToken {\n static prim: 'nat' = 'nat' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new NatValidationError(val, this, `Value is not a number: ${JSON.stringify(val)}`);\n }\n if (bigNumber.isNegative()) {\n throw new NatValidationError(val, this, `Value cannot be negative: ${JSON.stringify(val)}`);\n }\n }\n\n /**\n * @throws {@link NatValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[NatToken.prim]) {\n return semantic[NatToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NatToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NatToken.prim,\n schema: NatToken.prim,\n };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: NatToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return new BigNumber(int);\n }\n\n compare(nat1: string | number, nat2: string | number) {\n const o1 = Number(nat1);\n const o2 = Number(nat2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NatToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim: 'string' = 'string' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return StringToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: StringToken.prim,\n schema: StringToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[StringToken.prim]) {\n return semantic[StringToken.prim](val);\n }\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: StringToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (StringToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing an Address\n */\nexport class AddressValidationError extends TokenValidationError {\n name = 'AddressValidationError';\n constructor(public value: any, public token: AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class AddressToken extends ComparableToken {\n static prim: 'address' = 'address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decode(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n private validate(value: any) {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new AddressValidationError(\n value,\n this,\n `Address is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[AddressToken.prim]) {\n return semantic[AddressToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new AddressValidationError(\n val,\n this,\n `cannot be missing both string and bytes: ${JSON.stringify(val)}`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: AddressToken.prim,\n schema: AddressToken.prim,\n };\n }\n\n /**\n * @throws {@link AddressValidationError}\n */\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new AddressValidationError(\n { bytes, string },\n this,\n `cannot be missing both string and bytes ${JSON.stringify({ string, bytes })}`\n );\n }\n\n return encodePubKey(bytes);\n }\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n const implicit1 = isImplicit(address1);\n const implicit2 = isImplicit(address2);\n\n if (implicit1 && !implicit2) {\n return -1;\n } else if (implicit2 && !implicit1) {\n return 1;\n }\n return super.compare(address1, address2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { MapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Map\n */\nexport class MapValidationError extends TokenValidationError {\n name = 'MapValidationError';\n constructor(public value: any, public token: MapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MapToken extends Token {\n static prim: 'map' = 'map' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n validate(value: any) {\n if (!MichelsonMap.isMichelsonMap(value)) {\n throw new MapValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid MichelsonMap`\n );\n }\n }\n\n public Execute(val: any[], semantics?: Semantic): { [key: string]: any } {\n const map = new MichelsonMap(this.val);\n\n val.forEach((current) => {\n map.set(\n this.KeySchema.ToKey(current.args[0]),\n this.ValueSchema.Execute(current.args[1], semantics)\n );\n });\n return map;\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n this.validate(val);\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @throws {@link MapValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n this.validate(val);\n\n if (semantic && semantic[MapToken.prim]) {\n return semantic[MapToken.prim](val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): MapTokenSchema {\n return {\n __michelsonType: MapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim: 'bool' = 'bool' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): boolean {\n return String(val.prim).toLowerCase() === 'true' ? true : false;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { prim: val ? 'True' : 'False' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding) {\n if (semantic && semantic[BoolToken.prim]) {\n return semantic[BoolToken.prim](val);\n }\n return { prim: val ? 'True' : 'False' };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BoolToken.prim,\n schema: BoolToken.prim,\n };\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val) as any,\n type: { prim: BoolToken.prim },\n };\n }\n\n ToKey(val: string) {\n return this.EncodeObject(val);\n }\n\n compare(val1: any, val2: any) {\n if ((val1 && val2) || (!val1 && !val2)) {\n return 0;\n } else if (val1) {\n return 1;\n } else {\n return -1;\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BoolToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n b58decodeL2Address,\n encodeL2Address,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\nimport {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from '../token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Tx Rollup L2 Address\n */\nexport class TxRollupL2AddressValidationError extends TokenValidationError {\n name = 'TxRollupL2AddressValidationError';\n constructor(public value: unknown, public token: TxRollupL2AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class TxRollupL2AddressToken extends ComparableToken {\n static prim: 'tx_rollup_l2_address' = 'tx_rollup_l2_address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decodeL2Address(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n private validate(value: any) {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new TxRollupL2AddressValidationError(\n value,\n this,\n `tx_rollup_l2_address is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public Encode(args: string[]): any {\n const val = args.pop();\n if (!val) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `arg missing to encode: this -> \"${JSON.stringify(val)}\"`\n );\n }\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[TxRollupL2AddressToken.prim]) {\n return semantic[TxRollupL2AddressToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public Execute(val: { bytes?: string; string?: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `value cannot be missing string and byte value. must have one ${JSON.stringify(val)}`\n );\n }\n return encodeL2Address(val.bytes);\n }\n public ExtractSchema() {\n return TxRollupL2AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TxRollupL2AddressToken.prim,\n schema: TxRollupL2AddressToken.prim,\n };\n }\n\n /**\n * @throws {@link TxRollupL2AddressValidationError}\n */\n public ToKey({ bytes, string }: { bytes?: string; string?: string }) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new TxRollupL2AddressValidationError(\n bytes,\n this,\n `value cannot be missing string and byte value. must have one: bytes = ${JSON.stringify(\n bytes\n )}`\n );\n }\n return encodeL2Address(bytes);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]): Token[] {\n if (TxRollupL2AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TokenSchema } from './../schema/types';\nimport { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { ContractTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Contract\n */\nexport class ContractValidationError extends TokenValidationError {\n name = 'ContractValidationError';\n constructor(public value: any, public token: ContractToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ContractToken extends Token {\n static prim: 'contract' = 'contract' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n private validate(value: any) {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new ContractValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid contract address.`\n );\n }\n\n return null;\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new ContractValidationError(\n val,\n this,\n `Value ${JSON.stringify(\n val\n )} is not a valid contract address. must contain bytes or string.`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n this.validate(val);\n return { string: val };\n }\n\n /**\n * @throws {@link ContractValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n if (semantic && semantic[ContractToken.prim]) {\n return semantic[ContractToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n generateSchema(): ContractTokenSchema {\n const valueSchema = this.createToken(this.val.args[0], 0);\n return {\n __michelsonType: ContractToken.prim,\n schema: {\n parameter: this.val.args[0] ? valueSchema.generateSchema() : ({} as TokenSchema),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ListTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, TokenValidationError, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a List\n */\nexport class ListValidationError extends TokenValidationError {\n name = 'ListValidationError';\n constructor(public value: any, public token: ListToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ListToken extends Token {\n static prim: 'list' = 'list' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n private validate(value: any) {\n if (!Array.isArray(value)) {\n throw new ListValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid array`\n );\n }\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n const schema = this.createToken(this.val.args[0], 0);\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n this.validate(val);\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n /**\n * @throws {@link ListValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n this.validate(args);\n\n if (semantic && semantic[ListToken.prim]) {\n return semantic[ListToken.prim](args);\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [ListToken.prim]: this.valueSchema.ExtractSchema(),\n };\n }\n\n generateSchema(): ListTokenSchema {\n return {\n __michelsonType: ListToken.prim,\n schema: this.valueSchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ListToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Mutez\n */\nexport class MutezValidationError extends TokenValidationError {\n name = 'MutezValidationError';\n constructor(public value: any, public token: MutezToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MutezToken extends ComparableToken {\n static prim: 'mutez' = 'mutez' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any) {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return MutezToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: MutezToken.prim,\n schema: MutezToken.prim,\n };\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new MutezValidationError(val, this, `Value is not a number: ${val}`);\n }\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: String(val).toString() };\n }\n\n /**\n * @throws {@link MutezValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[MutezToken.prim]) {\n return semantic[MutezToken.prim](val);\n }\n\n return { int: String(val).toString() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: MutezToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(mutez1: string | number, mutez2: string | number) {\n const o1 = Number(mutez1);\n const o2 = Number(mutez2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MutezToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n Token,\n SemanticEncoding,\n} from '../token';\nimport { stripHexPrefix } from '@taquito/utils';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Bytes\n */\nexport class BytesValidationError extends TokenValidationError {\n name = 'BytesValidationError';\n constructor(public value: any, public token: BytesToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BytesToken extends ComparableToken {\n static prim: 'bytes' = 'bytes' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { bytes: val },\n type: { prim: BytesToken.prim },\n };\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n private validate(val: any) {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n public Encode(args: any[]): any {\n let val = args.pop();\n val = stripHexPrefix(this.convertUint8ArrayToHexString(val));\n\n this.validate(val);\n\n return { bytes: String(val).toString() };\n }\n\n /**\n * @throws {@link BytesValidationError}\n */\n public EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n\n if (typeof val === 'string') {\n val = stripHexPrefix(val);\n }\n\n this.validate(val);\n\n if (semantic && semantic[BytesToken.prim]) {\n return semantic[BytesToken.prim](val);\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BytesToken.prim,\n schema: BytesToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return bytes;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BytesToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { OptionTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim: 'option' = 'option' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public subToken(): Token {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n schema(): Token {\n return this.createToken(this.val.args[0], 0);\n }\n\n annot(): string {\n return Array.isArray(this.val.annots)\n ? super.annot()\n : this.createToken(this.val.args[0], this.idx).annot();\n }\n\n public Encode(args: any): any {\n const value = args;\n if (value === undefined || value === null) {\n return { prim: 'None' };\n } else if (\n Array.isArray(value) &&\n (value[value.length - 1] === undefined || value[value.length - 1] === null)\n ) {\n value.pop();\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().Encode(args)] };\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n let value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n value = typeof value === 'object' && 'Some' in value ? value['Some'] : value;\n return { prim: 'Some', args: [this.schema().EncodeObject(value, semantic)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n return { Some: this.schema().Execute(val.args[0], semantics) };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return { Some: this.schema().ExtractSchema() };\n }\n\n generateSchema(): OptionTokenSchema {\n return {\n __michelsonType: OptionToken.prim,\n schema: this.schema().generateSchema(),\n };\n }\n\n public ExtractSignature() {\n return [...this.schema().ExtractSignature()];\n }\n\n get KeySchema(): ComparableToken {\n return this.schema() as any;\n }\n\n compare(val1: any, val2: any) {\n if (!val1) {\n return -1;\n } else if (!val2) {\n return 1;\n }\n return this.KeySchema.compare(val1, val2);\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OptionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.subToken().findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim: 'timestamp' = 'timestamp' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { string?: string; int?: string }) {\n if (val.string && /^\\d+$/.test(val.string)) {\n return new Date(Number(val.string) * 1000).toISOString();\n } else if (val.string) {\n return new Date(val.string).toISOString();\n } else if (val.int) {\n return new Date(Number(val.int) * 1000).toISOString();\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TimestampToken.prim]) {\n return semantic[TimestampToken.prim](val);\n }\n\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TimestampToken.prim,\n schema: TimestampToken.prim,\n };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: TimestampToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TimestampToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Int\n */\nexport class IntValidationError extends TokenValidationError {\n name = 'IntValidationError';\n constructor(public value: any, public token: IntToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class IntToken extends ComparableToken {\n static prim: 'int' = 'int' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return IntToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n };\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n private validate(val: any) {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n throw new IntValidationError(val, this, `Value is not a number: ${JSON.stringify(val)}`);\n }\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @throws {@link IntValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[IntToken.prim]) {\n return semantic[IntToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: IntToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(int1: string | number, int2: string | number) {\n const o1 = Number(int1);\n const o2 = Number(int2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (IntToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ComparableToken, SemanticEncoding, Token, TokenFactory } from './token';\nimport { BaseTokenSchema } from '../schema/types';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim: 'unit' = 'unit' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n args.pop();\n return { prim: 'Unit' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[UnitToken.prim]) {\n return semantic[UnitToken.prim](val);\n }\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return UnitToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: UnitToken.prim,\n schema: UnitToken.prim,\n };\n }\n\n compare(_val1: any, _val2: any) {\n return 0;\n }\n\n ToKey(_val: any) {\n return UnitValue;\n }\n\n ToBigMapKey(_val: any) {\n return {\n key: { prim: 'Unit' },\n type: { prim: UnitToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (UnitToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport {\n encodeKey,\n validatePublicKey,\n ValidationResult,\n Prefix,\n b58cdecode,\n prefix,\n} from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nconst publicKeyPrefixLength = 4;\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Key\n */\nexport class KeyValidationError extends TokenValidationError {\n name = 'KeyValidationError';\n constructor(public value: any, public token: KeyToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyToken extends ComparableToken {\n static prim: 'key' = 'key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n private validate(value: any) {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n throw new KeyValidationError(value, this, 'Key is not valid');\n }\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link KeyValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[KeyToken.prim]) {\n return semantic[KeyToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyToken.prim,\n schema: KeyToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyToken.prim },\n };\n }\n\n compare(key1: string, key2: string): number {\n const keyPrefix1 = this.getPrefix(key1);\n const keyPrefix2 = this.getPrefix(key2);\n\n if (keyPrefix1 === Prefix.EDPK && keyPrefix2 !== Prefix.EDPK) {\n return -1;\n } else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n } else if (keyPrefix1 === Prefix.P2PK) {\n if (keyPrefix2 !== Prefix.P2PK) {\n return 1;\n }\n\n const keyBytes1 = this.getP256PublicKeyComparableBytes(key1);\n const keyBytes2 = this.getP256PublicKeyComparableBytes(key2);\n return Buffer.compare(keyBytes1, keyBytes2);\n }\n\n return super.compare(key1, key2);\n }\n\n private getPrefix(val: string) {\n return val.substring(0, publicKeyPrefixLength);\n }\n\n private getP256PublicKeyComparableBytes(p2pk: string) {\n return b58cdecode(p2pk, prefix[Prefix.P2PK]).slice(1);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Key Hash\n */\nexport class KeyHashValidationError extends TokenValidationError {\n name = 'KeyHashValidationError';\n constructor(public value: any, public token: KeyHashToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyHashToken extends ComparableToken {\n static prim: 'key_hash' = 'key_hash' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n private validate(value: any) {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n throw new KeyHashValidationError(\n value,\n this,\n `KeyHash is not valid: ${JSON.stringify(value)}`\n );\n }\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link KeyHashValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[KeyHashToken.prim]) {\n return semantic[KeyHashToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyHashToken.prim,\n schema: KeyHashToken.prim,\n };\n }\n\n public ToKey({ string, bytes }: any) {\n if (string) {\n return string;\n }\n\n return encodeKeyHash(bytes);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyHashToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyHashToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Signature\n */\nexport class SignatureValidationError extends TokenValidationError {\n name = 'SignatureValidationError';\n constructor(public value: any, public token: SignatureToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SignatureToken extends ComparableToken {\n static prim: 'signature' = 'signature' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): string {\n if (val.string) {\n return val.string;\n }\n // TODO decode the signature\n return val.bytes;\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n private validate(value: any) {\n if (validateSignature(value) !== ValidationResult.VALID) {\n throw new SignatureValidationError(value, this, 'Signature is not valid');\n }\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link SignatureValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[SignatureToken.prim]) {\n return semantic[SignatureToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SignatureToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: SignatureToken.prim,\n schema: SignatureToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: SignatureToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SignatureToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { LambdaTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim: 'lambda' = 'lambda' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get paramSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n get returnSchema() {\n return this.createToken(this.val.args[1], this.idx + 1);\n }\n\n public Execute(val: any) {\n if (val.string) {\n return val.string;\n } else {\n return val;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return val;\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[LambdaToken.prim]) {\n return semantic[LambdaToken.prim](val);\n }\n return val;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [LambdaToken.prim]: {\n parameters: this.paramSchema.ExtractSchema(),\n returns: this.returnSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): LambdaTokenSchema {\n return {\n __michelsonType: LambdaToken.prim,\n schema: {\n parameters: this.paramSchema.generateSchema(),\n returns: this.returnSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (LambdaToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n this.createToken(this.val.args[1], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim: 'operation' = 'operation' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return val.string;\n }\n\n public Encode(...args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[OperationToken.prim]) {\n return semantic[OperationToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: OperationToken.prim,\n schema: OperationToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SetTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n TokenValidationError,\n ComparableToken,\n SemanticEncoding,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Set\n */\nexport class SetValidationError extends TokenValidationError {\n name = 'SetValidationError';\n constructor(public value: any, public token: SetToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SetToken extends Token {\n static prim: 'set' = 'set' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n private validate(value: any) {\n if (!Array.isArray(value)) {\n throw new SetValidationError(value, this, `Value ${JSON.stringify(value)} is not an array`);\n }\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return val\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n return val.reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.Execute(current, semantics)];\n }, []);\n }\n\n /**\n * @throws {@link SetValidationError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n this.validate(args);\n\n if (semantic && semantic[SetToken.prim]) {\n return semantic[SetToken.prim](args);\n }\n\n return args\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SetToken.prim;\n }\n\n generateSchema(): SetTokenSchema {\n return {\n __michelsonType: SetToken.prim,\n schema: this.KeySchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SetToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a ChainID\n */\nexport class ChainIDValidationError extends TokenValidationError {\n name = 'ChainIDValidationError';\n constructor(public value: any, public token: ChainIDToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ChainIDToken extends ComparableToken {\n static prim: 'chain_id' = 'chain_id' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n private validate(value: any) {\n if (validateChain(value) !== ValidationResult.VALID) {\n throw new ChainIDValidationError(\n value,\n this,\n `Value ${JSON.stringify(value)} is not a valid ChainID`\n );\n }\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChainIDToken.prim,\n schema: ChainIDToken.prim,\n };\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n\n this.validate(val);\n\n return { string: val };\n }\n\n /**\n * @throws {@link ChainIDValidationError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n this.validate(val);\n\n if (semantic && semantic[ChainIDToken.prim]) {\n return semantic[ChainIDToken.prim](val);\n }\n\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: ChainIDToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChainIDToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TaquitoError } from '@taquito/core';\nimport { TicketTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketError extends TaquitoError {\n name = 'TicketEncodeError';\n\n constructor() {\n super();\n this.message = 'Tickets cannot be sent to the blockchain; they are created on-chain';\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketToken extends Token {\n static prim: 'ticket' = 'ticket' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link EncodeTicketError}\n */\n public Encode(_args: any[]): any {\n throw new EncodeTicketError();\n }\n\n /**\n * @throws {@link EncodeTicketError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketToken.prim]) {\n return semantic[TicketToken.prim](args, this.val);\n }\n throw new EncodeTicketError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketToken.prim]) {\n return semantics[TicketToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketTokenSchema {\n return {\n __michelsonType: TicketToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { TaquitoError } from '@taquito/core';\nimport { TicketDeprecatedTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketDeprecatedError extends TaquitoError {\n name = 'TicketDeprecatedEncodeError';\n\n constructor() {\n super();\n this.message = 'Ticket_deprecated cannot be sent to the blockchain; they are created on-chain';\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketDeprecatedToken extends Token {\n static prim: 'ticket_deprecated' = 'ticket_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n /**\n * @throws {@link EncodeTicketDeprecatedError}\n */\n public Encode(_args: any[]): any {\n throw new EncodeTicketDeprecatedError();\n }\n\n /**\n * @throws {@link EncodeTicketDeprecatedError}\n */\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketDeprecatedToken.prim]) {\n return semantic[TicketDeprecatedToken.prim](args, this.val);\n }\n throw new EncodeTicketDeprecatedError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketDeprecatedToken.prim]) {\n return semantics[TicketDeprecatedToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketDeprecatedTokenSchema {\n return {\n __michelsonType: TicketDeprecatedToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Never Token\n */\nexport class NeverTokenError extends TokenValidationError {\n name = 'NeverTokenError';\n constructor(public value: any, public token: NeverToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NeverToken extends Token {\n static prim: 'never' = 'never' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(\n val,\n this,\n `Assigning a value to the type never is forbidden. Trying to assign ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[NeverToken.prim]) {\n return semantic[NeverToken.prim](val);\n }\n throw new NeverTokenError(\n val,\n this,\n `Assigning a value to the type never is forbidden. Trying to assign ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @throws {@link NeverTokenError}\n */\n public Execute(val: any) {\n throw new NeverTokenError(\n val,\n this,\n `There is no literal value for the type never. Trying to execute ${JSON.stringify(val)}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NeverToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NeverToken.prim,\n schema: NeverToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NeverToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingStateTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling State\n */\nexport class SaplingStateValidationError extends TokenValidationError {\n name = 'SaplingStateValidationError';\n constructor(public value: any, public token: SaplingStateToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingStateToken extends Token {\n static prim: 'sapling_state' = 'sapling_state' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any) {\n return typeof val === 'object' && Object.keys(val).length === 0;\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n Execute(val: { int: string }, semantic?: Semantic) {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val, this.val);\n }\n if ('int' in val) {\n return val.int;\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n Encode(args: any[]): any {\n const val = args.pop();\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${JSON.stringify(val)} while expecting: {}`\n );\n }\n }\n\n /**\n * @throws {@link SaplingStateValidationError}\n */\n EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val);\n }\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${JSON.stringify(val)} while expecting: {}`\n );\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingStateTokenSchema {\n return {\n __michelsonType: SaplingStateToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingStateToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling Transaction\n */\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name = 'SaplingTransactionValidationError';\n constructor(public value: any, public token: SaplingTransactionToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionToken extends Token {\n static prim: 'sapling_transaction' = 'sapling_transaction' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link SaplingTransactionValidationError}\n */\n Execute(_val: any) {\n throw new SaplingTransactionValidationError(\n _val,\n this,\n `There is no literal value for the sapling_transaction type. Got: ${JSON.stringify(_val)}.`\n );\n }\n\n /**\n * @throws {@link SaplingTransactionValidationError}\n */\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionValidationError(\n val,\n this,\n `Invalid bytes: ${JSON.stringify(val)}`\n );\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionToken.prim]) {\n return semantic[SaplingTransactionToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionTokenSchema {\n return {\n __michelsonType: SaplingTransactionToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionDeprecatedTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Sapling Transaction Deprecated\n */\nexport class SaplingTransactionDeprecatedValidationError extends TokenValidationError {\n name = 'SaplingTransactionDeprecatedValidationError';\n constructor(public value: any, public token: SaplingTransactionDeprecatedToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionDeprecatedToken extends Token {\n static prim: 'sapling_transaction_deprecated' = 'sapling_transaction_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link SaplingTransactionDeprecatedValidationError}\n */\n Execute(_val: any) {\n throw new SaplingTransactionDeprecatedValidationError(\n _val,\n this,\n `There is no literal value for the sapling_transaction_deprecated type. Got: ${JSON.stringify(\n _val\n )}.`\n );\n }\n\n /**\n * @throws {@link SaplingTransactionDeprecatedValidationError}\n */\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionDeprecatedValidationError(\n val,\n this,\n `Invalid bytes: ${JSON.stringify(val)}`\n );\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionDeprecatedToken.prim]) {\n return semantic[SaplingTransactionDeprecatedToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionDeprecatedToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionDeprecatedTokenSchema {\n return {\n __michelsonType: SaplingTransactionDeprecatedToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 scalar field Fr\n */\nexport class Bls12381frValidationError extends TokenValidationError {\n name = 'Bls12381frValidationError';\n constructor(public value: any, public token: Bls12381frToken, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381frToken extends Token {\n // An element of the BLS12-381 scalar field Fr\n // see https://tezos.gitlab.io/michelson-reference/#type-bls12_381_fr\n static prim: 'bls12_381_fr' = 'bls12_381_fr' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381frValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n }\n\n /**\n * @throws {@link Bls12381frValidationError}\n */\n EncodeObject(val: string | Uint8Array | number, semantic?: SemanticEncoding) {\n if (semantic && semantic[Bls12381frToken.prim]) {\n return semantic[Bls12381frToken.prim](val);\n }\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381frToken.prim,\n schema: Bls12381frToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 curve G1\n */\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name = 'Bls12381g1ValidationError';\n constructor(public value: any, public token: Bls12381g1Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g1Token extends Token {\n // A point on the BLS12-381 curve G1\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g1\n static prim: 'bls12_381_g1' = 'bls12_381_g1' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381g1ValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link Bls12381g1ValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n if (semantic && semantic[Bls12381g1Token.prim]) {\n return semantic[Bls12381g1Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g1Token.prim,\n schema: Bls12381g1Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a BLS12-381 curve G2\n */\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name = 'Bls12381g2ValidationError';\n constructor(public value: any, public token: Bls12381g2Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g2Token extends Token {\n // A point on the BLS12-381 curve G2\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g2\n static prim: 'bls12_381_g2' = 'bls12_381_g2' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new Bls12381g2ValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link Bls12381g2ValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n if (semantic && semantic[Bls12381g2Token.prim]) {\n return semantic[Bls12381g2Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g2Token.prim,\n schema: Bls12381g2Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Chest\n */\nexport class ChestValidationError extends TokenValidationError {\n name = 'ChestValidationError';\n constructor(public value: any, public token: ChestToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestToken extends Token {\n static prim: 'chest' = 'chest' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 == 0) {\n return;\n }\n throw new ChestValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n\n if (semantic && semantic[ChestToken.prim]) {\n return semantic[ChestToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestToken.prim,\n schema: ChestToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing a Chest Key\n */\nexport class ChestKeyValidationError extends TokenValidationError {\n name = 'ChestKeyValidationError';\n constructor(public value: any, public token: ChestKeyToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestKeyToken extends Token {\n static prim: 'chest_key' = 'chest_key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n private validate(val: any) {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return;\n }\n throw new ChestKeyValidationError(val, this, `Invalid bytes: ${JSON.stringify(val)}`);\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n return { bytes: val };\n }\n\n /**\n * @throws {@link ChestKeyValidationError}\n */\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n this.validate(val);\n\n if (semantic && semantic[ChestKeyToken.prim]) {\n return semantic[ChestKeyToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestKeyToken.prim,\n schema: ChestKeyToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ConstantTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding a Global Constant\n */\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing executing a Global Constant\n */\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name = 'GlobalConstantDecodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantToken extends Token {\n static prim: 'constant' = 'constant' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n /**\n * @throws {@link GlobalConstantDecodingError}\n */\n public Execute(val: any, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(\n val,\n this,\n `Unable to decode a value represented by a global constants. Please provide an expanded script to the Michelson-Encoder or semantics for the decoding. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n }\n\n /**\n * @throws {@link GlobalConstantEncodingError}\n */\n public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(\n args,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @throws {@link GlobalConstantEncodingError}\n */\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val);\n }\n throw new GlobalConstantEncodingError(\n val,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n generateSchema(): ConstantTokenSchema {\n return {\n __michelsonType: GlobalConstantToken.prim,\n schema: {\n hash: this.val.args[0]['string'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { PairToken } from './pair';\n\nimport { NatToken } from './comparable/nat';\n\nimport { StringToken } from './comparable/string';\n\nimport { BigMapToken } from './bigmap';\n\nimport { AddressToken } from './comparable/address';\n\nimport { MapToken } from './map';\n\nimport { BoolToken } from './comparable/bool';\n\nimport { TxRollupL2AddressToken } from './comparable/tx_rollup_l2_address';\n\nimport { OrToken } from './or';\n\nimport { ContractToken } from './contract';\n\nimport { ListToken } from './list';\nimport { MutezToken } from './comparable/mutez';\nimport { BytesToken } from './comparable/bytes';\nimport { OptionToken } from './option';\nimport { TimestampToken } from './comparable/timestamp';\nimport { IntToken } from './comparable/int';\nimport { UnitToken } from './unit';\nimport { KeyToken } from './key';\nimport { KeyHashToken } from './comparable/key_hash';\nimport { SignatureToken } from './signature';\nimport { LambdaToken } from './lambda';\nimport { OperationToken } from './operation';\nimport { SetToken } from './set';\nimport { ChainIDToken } from './chain-id';\nimport { TicketToken } from './ticket';\nimport { TicketDeprecatedToken } from './ticket-deprecated';\nimport { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\nimport { SaplingTransactionDeprecatedToken } from './sapling-transaction-deprecated';\nimport { Bls12381frToken } from './bls12-381-fr';\nimport { Bls12381g1Token } from './bls12-381-g1';\nimport { Bls12381g2Token } from './bls12-381-g2';\nimport { ChestToken } from './chest';\nimport { ChestKeyToken } from './chest-key';\nimport { GlobalConstantToken } from './constant';\n\nexport const tokens = [\n PairToken,\n NatToken,\n StringToken,\n BigMapToken,\n AddressToken,\n TxRollupL2AddressToken,\n MapToken,\n BoolToken,\n OrToken,\n ContractToken,\n ListToken,\n MutezToken,\n BytesToken,\n OptionToken,\n TimestampToken,\n IntToken,\n UnitToken,\n KeyToken,\n KeyHashToken,\n SignatureToken,\n LambdaToken,\n OperationToken,\n SetToken,\n ChainIDToken,\n TicketToken,\n TicketDeprecatedToken,\n NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\n SaplingTransactionDeprecatedToken,\n Bls12381frToken,\n Bls12381g1Token,\n Bls12381g2Token,\n ChestToken,\n ChestKeyToken,\n GlobalConstantToken,\n];\n","import { tokens } from './tokens';\nimport { Token } from './token';\nimport { PairToken } from './pair';\nimport { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a script having an invalid type or it being unsupported by the Michelson Encoder. Note some protocol changes might affect this, we encourage users to open an issue so we can look into implementing support for said types.\n */\nexport class InvalidTokenError extends TaquitoError {\n name = 'Invalid token error';\n constructor(public message: string, public data: any) {\n super(message);\n }\n}\n\n/**\n *\n * @description Create a token from a value\n * @throws {@link InvalidTokenError} If the value passed is not supported by the Michelson Encoder\n */\nexport function createToken(val: any, idx: number): Token {\n if (Array.isArray(val)) {\n return new PairToken(val, idx, createToken);\n }\n\n const t = tokens.find((x) => x.prim === val.prim);\n if (!t) {\n throw new InvalidTokenError(\n `Malformed data: ${JSON.stringify(val)}. Expected a value with a valid prim property`,\n val\n );\n }\n return new t(val, idx, createToken);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { InvalidViewParameterError, TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding (transforming JS parameter into JSON Michelson) the parameter of the view\n */\nexport class ParameterEncodingError extends InvalidViewParameterError {\n constructor(\n public readonly viewName: string,\n public readonly sigs: any,\n public readonly args: any,\n public readonly cause?: any\n ) {\n super(viewName, sigs, args, cause);\n this.name = 'ParameterEncodingError';\n this.message = `Could not encode parameter ${JSON.stringify(\n args\n )} received for name \"${viewName}\" expecting one of the following signatures ${JSON.stringify(\n sigs\n )}`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid on-chain view found on the script\n */\nexport class InvalidScriptError extends TaquitoError {\n name = 'InvalidScriptError';\n constructor(public readonly script: any, public readonly reason?: string) {\n super();\n let message = `Invalid on-chain view found in the following script.`;\n if (reason) {\n message += ` Reason: ${reason}.`;\n }\n message += `Script: ${JSON.stringify(script)}`;\n this.message = message;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid RPC response being passed or used\n */\nexport class InvalidRpcResponseError extends TaquitoError {\n public name = 'InvalidRpcResponseError';\n constructor(public readonly script: any, public readonly reason?: string) {\n super();\n let message = `Invalid RPC response passed as argument(s).`;\n if (reason) {\n message += ` Reason: ${reason}.`;\n }\n message += ` Received: ${JSON.stringify(script)}`;\n this.message = message;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map schema being passed or used\n */\nexport class InvalidBigMapSchemaError extends TaquitoError {\n public name = 'InvalidBigMapSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map diff being passed or used\n */\nexport class InvalidBigMapDiffError extends TaquitoError {\n public name = 'InvalidBigMapDiffError';\n constructor(public message: string, public readonly value: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode big maps\n */\nexport class BigMapEncodingError extends TaquitoError {\n public name = 'BigMapEncodingError';\n constructor(\n obj: 'key' | 'value',\n public readonly details: any,\n public readonly schema: any,\n public readonly value: any\n ) {\n super();\n this.message = `Unable to encode the big map ${obj}. Schema is: ${JSON.stringify(\n schema\n )}. The ${obj} is: ${JSON.stringify(value)}. Error details: ${details}`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode storage\n */\nexport class StorageEncodingError extends TaquitoError {\n public name = 'StorageEncodingError';\n constructor(\n obj: string,\n public details: any,\n public readonly schema: any,\n public readonly value: any,\n public readonly semantics?: any\n ) {\n super();\n this.message = `Unable to encode ${obj}. The schema is: ${JSON.stringify(\n schema\n )}, the value is: ${JSON.stringify(value)}.${\n semantics ? `And the semantic is: ${JSON.stringify(semantics)}` : ''\n }. Error details: ${details}`;\n }\n}\n\n/**\n * @category Error\n * @description General error that indicates a function not being passed a necessary argument\n */\nexport class MissingArgumentError extends TaquitoError {\n public name = 'MissingArgumentError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionBase,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { MapToken } from '../tokens/map';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { TicketToken } from '../tokens/ticket';\nimport { TicketDeprecatedToken } from '../tokens/ticket-deprecated';\nimport {\n BigMapKeyType,\n Semantic,\n SemanticEncoding,\n Token,\n TokenValidationError,\n} from '../tokens/token';\nimport {\n InvalidRpcResponseError,\n InvalidBigMapSchemaError,\n InvalidBigMapDiffError,\n BigMapEncodingError,\n StorageEncodingError,\n MissingArgumentError,\n} from './errors';\nimport { RpcTransaction } from './model';\nimport { TokenSchema } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(\n val: Token['val'] | MichelsonV1Expression,\n prim: string = PairToken.prim\n): Token['val'] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.prim === prim && extended.args && extended.args.length > 2) {\n return {\n ...extended,\n args: [\n extended.args?.[0],\n {\n prim: prim,\n args: extended.args?.slice(1),\n },\n ],\n };\n }\n return extended;\n}\n\nexport function deepEqual(\n a: MichelsonV1Expression | undefined,\n b: MichelsonV1Expression | undefined\n): boolean {\n if (a === undefined || b === undefined) {\n return a === b;\n }\n const ac = collapse(a);\n const bc = collapse(b);\n return (\n ac.prim === bc.prim &&\n ((ac.args === undefined && bc.args === undefined) ||\n (ac.args !== undefined &&\n bc.args !== undefined &&\n ac.args.length === bc.args.length &&\n ac.args.every((v, i) => deepEqual(v, bc.args?.[i] ?? {})))) &&\n ((ac.annots === undefined && bc.annots === undefined) ||\n (ac.annots !== undefined &&\n bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i])))\n );\n}\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. Its API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: Schema): boolean {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n /**\n * @throws {@link InvalidRpcResponseError}\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n if (!val) {\n throw new InvalidRpcResponseError(val, 'the RPC response is empty');\n }\n if (!val.script) {\n throw new InvalidRpcResponseError(val, 'the RPC response has no script');\n }\n if (!Array.isArray(val.script.code)) {\n throw new InvalidRpcResponseError(val, 'The response.script.code should be an array');\n }\n let code = val.script.code;\n while (code.length === 1 && Array.isArray(code[0])) {\n code = code[0];\n }\n const storage = code.find(\n (x) => 'prim' in x && x.prim === 'storage'\n ) as MichelsonV1ExpressionExtended;\n if (!storage || !Array.isArray(storage.args)) {\n throw new InvalidRpcResponseError(\n val,\n 'The response.script.code has an element of type {prim: \"storage\"}, but its args is not an array'\n );\n }\n return new Schema(storage.args[0]);\n }\n\n private isExpressionExtended(\n val: any\n ): val is Required<Pick<MichelsonV1ExpressionExtended, 'prim' | 'args'>> {\n return 'prim' in val && Array.isArray(val.args);\n }\n\n constructor(readonly val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n\n if (this.root instanceof BigMapToken) {\n this.bigMap = this.root;\n } else if (this.isExpressionExtended(val) && val.prim === 'pair') {\n const exp = val.args[0];\n if (this.isExpressionExtended(exp) && exp.prim === 'big_map') {\n this.bigMap = new BigMapToken(exp, 0, createToken);\n }\n }\n }\n\n private removeTopLevelAnnotation(obj: any) {\n // PairToken and OrToken can have redundant top level annotation in their storage\n if (this.root instanceof PairToken || this.root instanceof OrToken) {\n if (this.root.hasAnnotations() && typeof obj === 'object' && Object.keys(obj).length === 1) {\n return obj[Object.keys(obj)[0]];\n }\n }\n\n return obj;\n }\n\n Execute(val: any, semantics?: Semantic) {\n const storage = this.root.Execute(val, semantics);\n\n return this.removeTopLevelAnnotation(storage);\n }\n\n Typecheck(val: any) {\n if (this.root instanceof BigMapToken && Number.isInteger(Number(val))) {\n return;\n }\n if (this.root instanceof TicketToken && val.ticketer && val.value && val.amount) {\n return;\n }\n if (this.root instanceof TicketDeprecatedToken && val.ticketer && val.value && val.amount) {\n return;\n }\n if (this.root instanceof MapToken && this.root.ValueSchema instanceof BigMapToken) {\n return;\n }\n this.root.EncodeObject(val);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n * @throws {@link InvalidBigMapDiffError}\n */\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n if (!Array.isArray(diff)) {\n throw new InvalidBigMapDiffError(\n `Big map diff must be an array, got: ${JSON.stringify(diff)}`,\n diff\n );\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n */\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n /**\n * @throws {@link InvalidBigMapSchemaError}\n * @throws {@link BigMapEncodingError}\n */\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new BigMapEncodingError('key', ex, this.bigMap.KeySchema, key);\n }\n }\n\n /**\n * @throws {@link TokenValidationError}\n * @throws {@link StorageEncodingError}\n */\n Encode(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new StorageEncodingError('storage object', ex, this.root, value, semantics);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @description Produce a representation of the storage schema.\n * Note: Provide guidance on how to write the storage object for the origination operation with Taquito.\n */\n generateSchema(): TokenSchema {\n return this.removeTopLevelAnnotation(this.root.generateSchema());\n }\n\n /**\n * @deprecated\n * @throws {@link InvalidBigMapSchemaError}\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchemaError('Big map schema is undefined');\n }\n\n const bigMap = tx.reduce((prev, current) => {\n return {\n ...prev,\n ...this.ExecuteOnBigMapDiff(current.contents[0].metadata.operation_result.big_map_diff),\n };\n }, {});\n\n return {\n ...this.Execute(state),\n [this.bigMap.annot()]: bigMap,\n };\n }\n\n /**\n * @description Look up in top-level pairs of the storage to find a value matching the specified type\n *\n * @returns The first value found that match the type or `undefined` if no value is found\n *\n * @param storage storage to parse to find the value\n * @param valueType type of value to look for\n *\n */\n FindFirstInTopLevelPair<T extends MichelsonV1Expression>(storage: any, valueType: any) {\n return this.findValue(this.root['val'], storage, valueType) as T | undefined;\n }\n\n // TODO check these type casts\n /**\n * @throws {@link MissingArgumentError}\n */\n private findValue(\n schema: MichelsonV1Expression,\n storage: any,\n valueToFind: any\n ): MichelsonV1ExpressionBase | undefined {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || (schema as MichelsonV1ExpressionExtended).prim === 'pair') {\n const sch = collapse(schema);\n const strg = collapse(storage, 'Pair');\n if (sch.args === undefined || strg.args === undefined) {\n throw new MissingArgumentError('Tokens have no arguments'); // unlikely\n }\n if (sch.args[0])\n return (\n // unsafe\n this.findValue(sch.args[0] as MichelsonV1ExpressionExtended, strg.args[0], valueToFind) ||\n this.findValue(sch.args[1] as MichelsonV1ExpressionExtended, strg.args[1], valueToFind)\n );\n }\n }\n /**\n * @description Look up the schema to find any occurrence of a particular token.\n *\n * @returns an array of tokens of the specified kind or an empty array if no token was found\n *\n * @param tokenToFind string representing the prim property of the token to find\n *\n * @example\n * ```\n * Useful to find all global constants in a script, an array of GlobalConstantToken is returned:\n *\n * const schema = new Schema(script);\n * const allGlobalConstantTokens = schema.findToken('constant');\n * ```\n *\n */\n findToken(tokenToFind: string): Array<Token> {\n const tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError, SemanticEncoding } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { TokenSchema } from './types';\nimport { InvalidRpcResponseError, ParameterEncodingError } from './errors';\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class ParameterSchema {\n private root: Token;\n\n /**\n *\n * @description Create an instance of ParameterSchema from a contract script\n *\n * @param val contract script obtained from the RPC\n * @returns ParameterSchema\n * @throws {InvalidRpcResponseError} If the RPC response is invalid\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n if (!val) {\n throw new InvalidRpcResponseError(val, 'the RPC response is empty');\n }\n if (!val.script) {\n throw new InvalidRpcResponseError(val, 'the RPC response has no script');\n }\n if (!Array.isArray(val.script.code)) {\n throw new InvalidRpcResponseError(val, 'The response.script.code should be an array');\n }\n const parameter = val.script.code.find(\n (x) => 'prim' in x && x.prim === 'parameter'\n ) as MichelsonV1ExpressionExtended;\n if (!parameter) {\n throw new InvalidRpcResponseError(\n val,\n `The response.script.code should have an element of type {prim: \"parameter\"}`\n );\n }\n if (!Array.isArray(parameter.args)) {\n throw new InvalidRpcResponseError(\n val,\n `The response.script.code has an element of type {prim: \"parameter\"}, but its args is not an array`\n );\n }\n return new ParameterSchema(parameter.args[0]);\n }\n\n /**\n * @description Check if the Contract parameter is multiple entry point or not\n */\n get isMultipleEntryPoint() {\n return (\n this.root instanceof OrToken ||\n (this.root instanceof OptionToken && this.root.subToken() instanceof OrToken)\n );\n }\n\n /**\n * @description Check if the Contract parameter has an annotation or not\n */\n get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n /**\n * @description Return the schema of the parameter of a specific entry point\n * @throws {@link InvalidTokenError}\n */\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n /**\n * @description Returns the javascript object equivalent of the Micheline value provided\n */\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\n\n /**\n * @description Returns a micheline formatted object for the values provided\n * @throws {@link TokenValidationError}\n * @throws {@link ParameterEncodingError}\n */\n Encode(...args: any[]) {\n try {\n return this.root.Encode(args.reverse());\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new ParameterEncodingError('Unable to encode parameter', this.root, args, ex);\n }\n }\n\n /**\n * @description Returns a micheline formatted object for the javascript object provided\n * @throws {@link TokenValidationError}\n * @throws {@link ParameterEncodingError}\n */\n EncodeObject(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n throw new ParameterEncodingError('Unable to encode parameter object', this.root, value, ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n /**\n * @description Produce a schema grouping together all the entry points of a contract.\n */\n generateSchema(): TokenSchema {\n return this.root.generateSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { createToken } from '../tokens/createToken';\nimport { Semantic, Token } from '../tokens/token';\nimport { InvalidScriptError, ParameterEncodingError } from './errors';\n\nexport class ViewSchema {\n readonly viewName: string;\n readonly viewArgsType: MichelsonV1ExpressionExtended;\n readonly viewReturnType: MichelsonV1ExpressionExtended;\n readonly instructions: MichelsonV1ExpressionExtended[];\n private rootArgsType: Token;\n private rootReturnType: Token;\n\n /**\n *\n * @description Create an instance of ViewSchema for each view in a script\n *\n * @param val contract script obtained from the RPC\n * @returns array of ViewSchema or empty array if there is no view in the contract\n * @throws {@link InvalidScriptError}\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const allViewSchema: ViewSchema[] = [];\n\n const views =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.filter((x: any) => x.prim === 'view') as MichelsonV1ExpressionExtended[]);\n\n if (views) {\n views.forEach((view) => {\n allViewSchema.push(new ViewSchema(view.args));\n });\n }\n return allViewSchema;\n }\n\n /**\n * @throws {@link InvalidScriptError}\n */\n constructor(viewArgs: MichelsonV1Expression[] | undefined) {\n if (!viewArgs) {\n throw new InvalidScriptError(viewArgs, 'the args are not defined');\n }\n if (viewArgs.length !== 4) {\n throw new InvalidScriptError(viewArgs, `there should be exactly 4 arguments`);\n }\n if (!('string' in viewArgs[0]) || !viewArgs[0]['string']) {\n throw new InvalidScriptError(\n viewArgs,\n `The first argument should be a string, representing the view name. It should be in the form: { string: 'viewName' }`\n );\n }\n\n this.viewName = viewArgs[0]['string'];\n this.viewArgsType = viewArgs[1] as MichelsonV1ExpressionExtended;\n this.viewReturnType = viewArgs[2] as MichelsonV1ExpressionExtended;\n this.instructions = viewArgs[3] as MichelsonV1ExpressionExtended[];\n\n this.rootArgsType = createToken(this.viewArgsType, 0);\n this.rootReturnType = createToken(this.viewReturnType, 0);\n }\n\n /**\n *\n * @description Transform the view parameter into Michelson\n *\n * @param args parameter of the view in js format\n * @returns parameter of the view in Michelson\n * @throws {@link ParameterEncodingError}\n */\n encodeViewArgs(args: any) {\n try {\n return this.rootArgsType.EncodeObject(args);\n } catch (ex) {\n throw new ParameterEncodingError(this.viewName, undefined, args, ex);\n }\n }\n\n /**\n *\n * @description Transform the view result from Michelson to readable data\n *\n * @param val result of the view in JSON Michelson\n * @param semantics optional semantics to override the default decoding behavior\n * @returns result of the view in a readable format\n */\n decodeViewResult(val: any, semantics?: Semantic) {\n return this.rootReturnType.Execute(val, semantics);\n }\n\n /**\n *\n * @description Return the signature of the view parameter\n */\n extractArgsSchema() {\n return this.rootArgsType.ExtractSchema();\n }\n\n /**\n *\n * @description Return the format of the view result\n */\n extractResultSchema() {\n return this.rootReturnType.ExtractSchema();\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { deepEqual } from './storage';\n\nexport class EventSchema {\n constructor(\n public readonly tag?: string,\n public readonly type?: MichelsonV1ExpressionExtended\n ) {}\n\n static fromMichelineValue(val: MichelsonV1ExpressionExtended) {\n return new EventSchema(\n val.annots?.[0],\n val.args?.[0] as MichelsonV1ExpressionExtended\n );\n }\n\n static fromRPCResponse(val: { script: ScriptResponse }): EventSchema[] {\n const allEventSchema: EventSchema[] = [];\n val.script.code.forEach((code) => {\n if (\n !('prim' in code) ||\n code.prim !== 'code' ||\n !('args' in code) ||\n !code.args\n ) {\n return;\n }\n allEventSchema.push(...EventSchema.extractEventsRecursively(code.args));\n });\n return EventSchema.removeDuplicates(allEventSchema);\n }\n\n static removeDuplicates(events: EventSchema[]): EventSchema[] {\n const uniqueEvents: EventSchema[] = [];\n events.forEach((event) => {\n const idx = uniqueEvents.findIndex(\n (e) => e.tag === event.tag && deepEqual(e.type, event.type)\n );\n if (idx === -1) {\n uniqueEvents.push(event);\n }\n });\n return uniqueEvents;\n }\n\n static extractEventsRecursively(code: MichelsonV1Expression): EventSchema[] {\n if (Array.isArray(code)) {\n return code.flatMap((c) => EventSchema.extractEventsRecursively(c));\n }\n if (!('prim' in code)) {\n return [];\n }\n if (code.prim === 'EMIT') {\n return [EventSchema.fromMichelineValue(code)];\n }\n if (!('args' in code) || !code.args) {\n return [];\n }\n return code.args.flatMap((c) => EventSchema.extractEventsRecursively(c));\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"a97e506efd61b86e39ae30db588401b8fda46553\",\n \"version\": \"17.3.2\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport * from './schema/view-schema';\nexport * from './schema/event-schema';\nexport * from './schema/errors';\nexport * from './schema/types';\nexport { Semantic, SemanticEncoding, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\nexport { Token } from './tokens/token';\n"],"names":["_a","collapse","ticketerType","amountType"],"mappings":"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"}