@taquito/michelson-encoder 11.0.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-michelson-encoder.es5.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/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/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.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/storage.ts","../src/schema/parameter.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';\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;\n\nconst isMapType = (\n value: MichelsonV1Expression\n): value is { prim: 'map' | 'big_map'; args: [MichelsonV1Expression, MichelsonV1Expression] } => {\n return 'args' in value && Array.isArray(value.args) && value.args.length === 2;\n};\n\nexport class MapTypecheckError implements Error {\n name: string = 'MapTypecheckError';\n message: string;\n\n constructor(public readonly value: any, public readonly type: any, errorType: 'key' | 'value') {\n this.message = `${errorType} not compliant with underlying michelson type`;\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 extends any> {\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 if (!isMapType(mapType)) {\n throw new Error('mapType is not a valid michelson map type');\n }\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 this.keySchema.Typecheck(key);\n }\n\n return true;\n }\n\n private typecheckValue(value: T) {\n if (this.valueSchema) {\n return this.valueSchema.Typecheck(value);\n }\n\n return true;\n }\n\n private assertTypecheckValue(value: T) {\n if (!this.typecheckValue(value)) {\n throw new MapTypecheckError(value, this.valueSchema, 'value');\n }\n }\n\n private assertTypecheckKey(key: K) {\n if (!this.typecheckKey(key)) {\n throw new MapTypecheckError(key, this.keySchema, 'key');\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 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 } from '@taquito/rpc';\n\nexport abstract class TokenValidationError implements Error {\n name: string = 'ValidationError';\n public message: string;\n\n constructor(public value: any, public token: Token, baseMessage: string) {\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 abstract class Token {\n constructor(\n protected val: { prim: string; args?: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) { }\n\n protected typeWithoutAnnotations() {\n const removeArgsRec = (val: Token['val']): { prim: string; args?: any[] } => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map(x => removeArgsRec(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return removeArgsRec(this.val);\n }\n\n annot() {\n return (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 public abstract ExtractSchema(): any;\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): 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(\n val: BigMapKeyType\n ): {\n key: { [key: string]: string | object[] };\n type: { prim: string, args?: object[] };\n };\n\n abstract ToKey(val: string): 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 { ComparableToken, Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class BigMapValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n private isValid(value: any): BigMapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new BigMapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public EncodeObject(args: any): any {\n const val: MichelsonMap<any, any> = args;\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 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 // Unknown case\n throw new Error(\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\n\nexport class OrToken extends ComparableToken {\n static prim = 'or';\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 let val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n let 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 public EncodeObject(args: any): any {\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])] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label])] };\n } else {\n if (leftToken instanceof OrToken) {\n let val = leftToken.EncodeObject(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n let val = rightToken.EncodeObject(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\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 Error(`Was expecting Left or Right prim but got: ${val.prim}`);\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 && !leftToken.hasAnnotations()) {\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 && !rightToken.hasAnnotations()) {\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 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 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 (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken) && leftToken instanceof ComparableToken) {\n return leftToken\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken) && rightToken instanceof ComparableToken) {\n return rightToken\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) { return tok }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label)\n if (tok) { return tok }\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\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\nimport { OrToken } from './or';\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse({\n prim: prim,\n args: val,\n }, prim);\n }\n if (val.args === undefined) {\n throw new Error('Token has no arguments');\n }\n if (val.args.length > 2) {\n return [val.args[0], {\n prim: prim,\n args: val.args.slice(1),\n }];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim = 'pair';\n\n constructor(\n val: { prim: string; args: any[]; annots: any[] } | any[],\n idx: number,\n fac: TokenFactory\n ) {\n super(Array.isArray(val) ? {\n prim: PairToken.prim,\n args: val,\n } : val, idx, fac);\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): 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: [leftToken.EncodeObject(leftValue), rightToken.EncodeObject(rightValue)],\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 keyCount = Object.keys(leftToken.ExtractSchema()).length;\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 public ExtractSchema(): any {\n return this.traversal(\n leftToken => leftToken.ExtractSchema(),\n rightToken => rightToken.ExtractSchema()\n );\n }\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 Error('Not a comparable pair');\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class NatValidationError extends TokenValidationError {\n name: string = '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';\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 public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n private isValid(val: any): NatValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new NatValidationError(val, this, `Value is not a number: ${val}`);\n } else if (bigNumber.isNegative()) {\n return new NatValidationError(val, this, `Value cannot be negative: ${val}`);\n } else {\n return null;\n }\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ExtractSchema() {\n return NatToken.prim;\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 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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim = 'string';\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 public ExtractSchema() {\n return StringToken.prim;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\n\nexport class AddressValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): AddressValidationError | null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new AddressValidationError(value, this, `Address is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodePubKey(val.bytes);\n }\n\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return encodePubKey(bytes);\n }\n\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n\n if (isImplicit(address1) && isImplicit(address2)) {\n return super.compare(address1, address2);\n } else if (isImplicit(address1)) {\n return -1;\n } else if (isImplicit(address2)) {\n return 1;\n } else {\n return super.compare(address1, address2);\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { ComparableToken, Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class MapValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): MapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new MapValidationError(value, this, 'Value must be a MichelsonMap');\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 public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public EncodeObject(args: any): any {\n const val: MichelsonMap<any, any> = args;\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim = 'bool';\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) {\n return { prim: val ? 'True' : 'False' };\n }\n\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val),\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}\n","import { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ContractValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ContractValidationError | null {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new ContractValidationError(value, this, 'Contract address is not valid');\n }\n\n return null;\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodePubKey(val.bytes);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, Semantic, TokenValidationError } from './token';\n\nexport class ListValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ListValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new ListValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\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 public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n public ExtractSchema() {\n const valueSchema = this.createToken(this.val.args[0], this.idx);\n return {\n [ListToken.prim] : valueSchema.ExtractSchema()\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class MutezValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return MutezToken.prim;\n }\n\n private isValid(val: any): MutezValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new MutezValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: String(val).toString() };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\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}\n","import { TokenFactory, ComparableToken, TokenValidationError, Token } from '../token';\n\nexport class BytesValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(val: any): BytesValidationError | null {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n public Encode(args: any[]): any {\n let val = args.pop();\n\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim = 'option';\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 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 (\n value === undefined ||\n value === null\n ) {\n return { prim: 'None' };\n }\n else if ((Array.isArray(value) && (value[value.length - 1] === undefined || value[value.length - 1] === null))) {\n value.pop();\n return { prim: 'None' };\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return { prim: 'Some', args: [schema.Encode(args)] };\n }\n\n public EncodeObject(args: any): any {\n const schema = this.createToken(this.val.args[0], 0);\n const value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [schema.EncodeObject(value)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return schema.Execute(val.args[0], semantics);\n }\n\n public ExtractSchema() {\n const schema = this.createToken(this.val.args[0], 0);\n return schema.ExtractSchema();\n }\n\n public ExtractSignature() {\n const schema = this.createToken(this.val.args[0], 0);\n return [...schema.ExtractSignature(), []];\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) 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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim = 'timestamp';\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) {\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 return { string: val };\n }\n\n public EncodeObject(val: any): any {\n return { string: val };\n }\n\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class IntValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return IntToken.prim;\n }\n\n private isValid(val: any): IntValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new IntValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\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}\n","import { ComparableToken, Token, TokenFactory } from './token';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim = 'unit';\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): any {\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n public ExtractSchema() {\n return UnitToken.prim;\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}\n","import { ComparableToken, Token, TokenFactory, TokenValidationError } from './token';\nimport { encodeKey, validatePublicKey, ValidationResult, Prefix, b58cdecode, prefix } from '@taquito/utils';\n\nconst publicKeyPrefixLength = 4;\n\nexport class KeyValidationError extends TokenValidationError {\n name: string = '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';\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 }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n private isValid(value: any): KeyValidationError | null {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n return new KeyValidationError(value, this, 'Key is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return KeyToken.prim;\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 }\n else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n }\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\n\nexport class KeyHashValidationError extends TokenValidationError {\n name: string = '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';\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 }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n private isValid(value: any): KeyHashValidationError | null {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n return new KeyHashValidationError(value, this, `KeyHash is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { ComparableToken, Token, TokenFactory, TokenValidationError } from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\n\nexport class SignatureValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): SignatureValidationError | null {\n if (validateSignature(value) !== ValidationResult.VALID) {\n return new SignatureValidationError(value, this, 'Signature is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return SignatureToken.prim;\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}\n","import { Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim = 'lambda';\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 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): any {\n return val;\n }\n\n public ExtractSchema() {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n const rightToken = this.createToken(this.val.args[1], this.idx + 1);\n return {\n [LambdaToken.prim]: {\n parameters: leftToken.ExtractSchema(),\n returns: rightToken.ExtractSchema(),\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}\n","import { Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim = 'operation';\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): any {\n return { string: val };\n }\n\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, Semantic, TokenValidationError, ComparableToken } from './token';\n\nexport class SetValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): SetValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new SetValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\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 public EncodeObject(args: any): any {\n const err = this.isValid(args);\n if (err) {\n throw err;\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 public ExtractSchema() {\n return SetToken.prim;\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\n\nexport class ChainIDValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ChainIDValidationError | null {\n if (validateChain(value) !== ValidationResult.VALID) {\n return new ChainIDValidationError(value, this, 'ChainID is not valid');\n }\n\n return null;\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic } from './token';\n\nexport class EncodeTicketError implements Error {\n name = 'TicketEncodeError';\n message = 'Tickets cannot be sent to the blockchain; they are created on-chain';\n}\n\nconst ticketerType = { \"prim\": \"contract\" };\nconst amountType = { \"prim\": \"int\" };\n\nexport class TicketToken extends Token {\n static prim = 'ticket';\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 public Encode(_args: any[]): any {\n throw new EncodeTicketError()\n }\n\n public EncodeObject(_args: any): any {\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] &&\n 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 public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim\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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class NeverTokenError extends TokenValidationError {\n name: string = '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';\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 public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public EncodeObject(val: any): any {\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public Execute(val: any) {\n throw new NeverTokenError(val, this, 'There is no literal value for the type never.');\n }\n public ExtractSchema() {\n return NeverToken.prim;\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 { Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingStateValidationError extends TokenValidationError {\n name: string = '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';\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 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 // Unknown case\n throw new Error(\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\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: ${val} while expecting: {}`\n );\n }\n }\n\n EncodeObject(val: any): any {\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name: string = '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';\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 Execute(_val: any) {\n throw new Error('There is no literal value for the sapling_transaction type.');\n }\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(val, this, `Invalid bytes: ${val}`);\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) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381frValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381frValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381frValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\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 const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n EncodeObject(val: string | Uint8Array | number) {\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381g1ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g1ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381g2ValidationError | null {\n if ( /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g2ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestValidationError extends TokenValidationError {\n name: string = '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';\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): ChestValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestKeyValidationError extends TokenValidationError {\n name: string = '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';\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): ChestKeyValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestKeyValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name: string = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name: string = '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';\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, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(val, this, `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 public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(args, this, `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 public EncodeObject(val: any): any {\n throw new GlobalConstantEncodingError(val, this, `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 public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\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 { 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 { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\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 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 NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\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';\n\nexport class InvalidTokenError implements Error {\n name: string = 'Invalid token error';\n constructor(public message: string, public data: any) { }\n}\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('Malformed data expected a value with a valid prim property', val);\n }\n return new t(val, idx, createToken);\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { BigMapKeyType, Semantic, Token, TokenValidationError } from '../tokens/token';\nimport { RpcTransaction } from './model';\nimport { Falsy } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): Token['val'] {\n if (Array.isArray(val)) {\n return collapse({\n prim: prim,\n args: val,\n }, prim);\n }\n if (val.prim === prim && val.args?.length! > 2) {\n return {\n ...val,\n args: [val.args![0], {\n prim: prim,\n args: val.args?.slice(1),\n }],\n };\n }\n return val;\n}\n\nfunction deepEqual(a: Token['val'] | any[], b: Token['val'] | any[]): boolean {\n const ac = collapse(a);\n const bc = collapse(b);\n return ac.prim === bc.prim &&\n (ac.args === undefined && bc.args === undefined ||\n ac.args !== undefined && 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 && bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i]));\n}\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 Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: any): obj is Schema {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const storage: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'storage') as MichelsonV1ExpressionExtended);\n\n if (!storage || !Array.isArray(storage.args)) {\n throw new Error('Invalid rpc response passed as arguments');\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(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 true;\n }\n try {\n this.root.EncodeObject(val);\n return true;\n } catch (ex) {\n return false;\n }\n }\n\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n if (!Array.isArray(diff)) {\n throw new Error('Invalid big map diff. It must be an array');\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new Error('Unable to encode big map key: ' + ex);\n }\n }\n\n Encode(_value?: any) {\n try {\n return this.root.EncodeObject(_value);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new Error(`Unable to encode storage object. ${ex}`);\n }\n }\n\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @deprecated\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\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 private findValue(schema: Token['val'] | any[], storage: any, valueToFind: any): any {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || schema['prim'] === 'pair') {\n const sch = collapse(schema);\n const str = collapse(storage, 'Pair');\n if (sch.args === undefined || str.args === undefined) {\n throw new Error('Tokens have no arguments'); // unlikely\n }\n return this.findValue(sch.args[0], str.args[0], valueToFind) ||\n this.findValue(sch.args[1], str.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 let tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { Falsy } from './types';\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 static fromRPCResponse(val: { script: ScriptResponse }) {\n const parameter: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'parameter') as MichelsonV1ExpressionExtended);\n if (!parameter || !Array.isArray(parameter.args)) {\n throw new Error('Invalid rpc response passed as arguments');\n }\n\n return new ParameterSchema(parameter.args[0]);\n }\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 get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\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\n throw new Error(`Unable to encode parameter. ${ex}`);\n }\n }\n\n EncodeObject(_value?: any) {\n try {\n return this.root.EncodeObject(_value);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new Error(`Unable to encode parameter object. ${ex}`);\n }\n }\n\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"f7dbf5647ce1a35266ad921e6dd2aeef0b4aff93\",\n \"version\": \"11.0.0\"\n};\n/* tslint:enable */\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport { Semantic, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\n"],"names":["collapse"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-michelson-encoder.es5.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/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/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.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/storage.ts","../src/schema/parameter.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';\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;\n\nconst isMapType = (\n value: MichelsonV1Expression\n): value is { prim: 'map' | 'big_map'; args: [MichelsonV1Expression, MichelsonV1Expression] } => {\n return 'args' in value && Array.isArray(value.args) && value.args.length === 2;\n};\n\nexport class MapTypecheckError implements Error {\n name: string = 'MapTypecheckError';\n message: string;\n\n constructor(public readonly value: any, public readonly type: any, errorType: 'key' | 'value') {\n this.message = `${errorType} not compliant with underlying michelson type`;\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 extends any> {\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 if (!isMapType(mapType)) {\n throw new Error('mapType is not a valid michelson map type');\n }\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 this.keySchema.Typecheck(key);\n }\n\n return true;\n }\n\n private typecheckValue(value: T) {\n if (this.valueSchema) {\n return this.valueSchema.Typecheck(value);\n }\n\n return true;\n }\n\n private assertTypecheckValue(value: T) {\n if (!this.typecheckValue(value)) {\n throw new MapTypecheckError(value, this.valueSchema, 'value');\n }\n }\n\n private assertTypecheckKey(key: K) {\n if (!this.typecheckKey(key)) {\n throw new MapTypecheckError(key, this.keySchema, 'key');\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 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 } from '@taquito/rpc';\n\nexport abstract class TokenValidationError implements Error {\n name: string = 'ValidationError';\n public message: string;\n\n constructor(public value: any, public token: Token, baseMessage: string) {\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 abstract class Token {\n constructor(\n protected val: { prim: string; args?: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) { }\n\n protected typeWithoutAnnotations() {\n const removeArgsRec = (val: Token['val']): { prim: string; args?: any[] } => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map(x => removeArgsRec(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return removeArgsRec(this.val);\n }\n\n annot() {\n return (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 public abstract ExtractSchema(): any;\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): 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(\n val: BigMapKeyType\n ): {\n key: { [key: string]: string | object[] };\n type: { prim: string, args?: object[] };\n };\n\n abstract ToKey(val: string): 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 { ComparableToken, Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class BigMapValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n private isValid(value: any): BigMapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new BigMapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public EncodeObject(args: any): any {\n const val: MichelsonMap<any, any> = args;\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 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 // Unknown case\n throw new Error(\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\n\nexport class OrToken extends ComparableToken {\n static prim = 'or';\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 let val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n let 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 public EncodeObject(args: any): any {\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])] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label])] };\n } else {\n if (leftToken instanceof OrToken) {\n let val = leftToken.EncodeObject(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n let val = rightToken.EncodeObject(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\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 Error(`Was expecting Left or Right prim but got: ${val.prim}`);\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 && !leftToken.hasAnnotations()) {\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 && !rightToken.hasAnnotations()) {\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 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 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 (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken) && leftToken instanceof ComparableToken) {\n return leftToken\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken) && rightToken instanceof ComparableToken) {\n return rightToken\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) { return tok }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label)\n if (tok) { return tok }\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\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\nimport { OrToken } from './or';\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse({\n prim: prim,\n args: val,\n }, prim);\n }\n if (val.args === undefined) {\n throw new Error('Token has no arguments');\n }\n if (val.args.length > 2) {\n return [val.args[0], {\n prim: prim,\n args: val.args.slice(1),\n }];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim = 'pair';\n\n constructor(\n val: { prim: string; args: any[]; annots: any[] } | any[],\n idx: number,\n fac: TokenFactory\n ) {\n super(Array.isArray(val) ? {\n prim: PairToken.prim,\n args: val,\n } : val, idx, fac);\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): 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: [leftToken.EncodeObject(leftValue), rightToken.EncodeObject(rightValue)],\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 keyCount = Object.keys(leftToken.ExtractSchema()).length;\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 public ExtractSchema(): any {\n return this.traversal(\n leftToken => leftToken.ExtractSchema(),\n rightToken => rightToken.ExtractSchema()\n );\n }\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 Error('Not a comparable pair');\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class NatValidationError extends TokenValidationError {\n name: string = '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';\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 public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n private isValid(val: any): NatValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new NatValidationError(val, this, `Value is not a number: ${val}`);\n } else if (bigNumber.isNegative()) {\n return new NatValidationError(val, this, `Value cannot be negative: ${val}`);\n } else {\n return null;\n }\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ExtractSchema() {\n return NatToken.prim;\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 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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim = 'string';\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 public ExtractSchema() {\n return StringToken.prim;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\n\nexport class AddressValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): AddressValidationError | null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new AddressValidationError(value, this, `Address is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodePubKey(val.bytes);\n }\n\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return encodePubKey(bytes);\n }\n\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n\n if (isImplicit(address1) && isImplicit(address2)) {\n return super.compare(address1, address2);\n } else if (isImplicit(address1)) {\n return -1;\n } else if (isImplicit(address2)) {\n return 1;\n } else {\n return super.compare(address1, address2);\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { ComparableToken, Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class MapValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): MapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new MapValidationError(value, this, 'Value must be a MichelsonMap');\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 public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public EncodeObject(args: any): any {\n const val: MichelsonMap<any, any> = args;\n\n const err = this.isValid(val);\n if (err) {\n throw err;\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 public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim = 'bool';\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) {\n return { prim: val ? 'True' : 'False' };\n }\n\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val),\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}\n","import { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ContractValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ContractValidationError | null {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new ContractValidationError(value, this, 'Contract address is not valid');\n }\n\n return null;\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodePubKey(val.bytes);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, Semantic, TokenValidationError } from './token';\n\nexport class ListValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ListValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new ListValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\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 public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n public ExtractSchema() {\n const valueSchema = this.createToken(this.val.args[0], this.idx);\n return {\n [ListToken.prim] : valueSchema.ExtractSchema()\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class MutezValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return MutezToken.prim;\n }\n\n private isValid(val: any): MutezValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new MutezValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: String(val).toString() };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\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}\n","import { TokenFactory, ComparableToken, TokenValidationError, Token } from '../token';\n\nexport class BytesValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(val: any): BytesValidationError | null {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n public Encode(args: any[]): any {\n let val = args.pop();\n\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, Semantic, ComparableToken } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim = 'option';\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 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 (\n value === undefined ||\n value === null\n ) {\n return { prim: 'None' };\n }\n else if ((Array.isArray(value) && (value[value.length - 1] === undefined || value[value.length - 1] === null))) {\n value.pop();\n return { prim: 'None' };\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return { prim: 'Some', args: [schema.Encode(args)] };\n }\n\n public EncodeObject(args: any): any {\n const schema = this.createToken(this.val.args[0], 0);\n const value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [schema.EncodeObject(value)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return schema.Execute(val.args[0], semantics);\n }\n\n public ExtractSchema() {\n const schema = this.createToken(this.val.args[0], 0);\n return schema.ExtractSchema();\n }\n\n public ExtractSignature() {\n const schema = this.createToken(this.val.args[0], 0);\n return [...schema.ExtractSignature(), []];\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) 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}\n","import { Token, TokenFactory, ComparableToken } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim = 'timestamp';\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) {\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 return { string: val };\n }\n\n public EncodeObject(val: any): any {\n return { string: val };\n }\n\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport BigNumber from 'bignumber.js';\n\nexport class IntValidationError extends TokenValidationError {\n name: string = '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';\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 public ExtractSchema() {\n return IntToken.prim;\n }\n\n private isValid(val: any): IntValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new IntValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\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}\n","import { ComparableToken, Token, TokenFactory } from './token';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim = 'unit';\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): any {\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n public ExtractSchema() {\n return UnitToken.prim;\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}\n","import { ComparableToken, Token, TokenFactory, TokenValidationError } from './token';\nimport { encodeKey, validatePublicKey, ValidationResult, Prefix, b58cdecode, prefix } from '@taquito/utils';\n\nconst publicKeyPrefixLength = 4;\n\nexport class KeyValidationError extends TokenValidationError {\n name: string = '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';\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 }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n private isValid(value: any): KeyValidationError | null {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n return new KeyValidationError(value, this, 'Key is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return KeyToken.prim;\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 }\n else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n }\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\n\nexport class KeyHashValidationError extends TokenValidationError {\n name: string = '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';\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 }): string {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n private isValid(value: any): KeyHashValidationError | null {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n return new KeyHashValidationError(value, this, `KeyHash is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { ComparableToken, Token, TokenFactory, TokenValidationError } from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\n\nexport class SignatureValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): SignatureValidationError | null {\n if (validateSignature(value) !== ValidationResult.VALID) {\n return new SignatureValidationError(value, this, 'Signature is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public ExtractSchema() {\n return SignatureToken.prim;\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}\n","import { Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim = 'lambda';\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 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): any {\n return val;\n }\n\n public ExtractSchema() {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n const rightToken = this.createToken(this.val.args[1], this.idx + 1);\n return {\n [LambdaToken.prim]: {\n parameters: leftToken.ExtractSchema(),\n returns: rightToken.ExtractSchema(),\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}\n","import { Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim = 'operation';\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): any {\n return { string: val };\n }\n\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, Semantic, TokenValidationError, ComparableToken } from './token';\n\nexport class SetValidationError extends TokenValidationError {\n name: string = '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';\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 private isValid(value: any): SetValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new SetValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\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 public EncodeObject(args: any): any {\n const err = this.isValid(args);\n if (err) {\n throw err;\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 public ExtractSchema() {\n return SetToken.prim;\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}\n","import { Token, TokenFactory, ComparableToken, TokenValidationError } from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\n\nexport class ChainIDValidationError extends TokenValidationError {\n name: string = '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';\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(value: any): ChainIDValidationError | null {\n if (validateChain(value) !== ValidationResult.VALID) {\n return new ChainIDValidationError(value, this, 'ChainID is not valid');\n }\n\n return null;\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n // tslint:disable-next-line: variable-name\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}\n","import { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic } from './token';\n\nexport class EncodeTicketError implements Error {\n name = 'TicketEncodeError';\n message = 'Tickets cannot be sent to the blockchain; they are created on-chain';\n}\n\nconst ticketerType = { \"prim\": \"contract\" };\nconst amountType = { \"prim\": \"int\" };\n\nexport class TicketToken extends Token {\n static prim = 'ticket';\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 public Encode(_args: any[]): any {\n throw new EncodeTicketError()\n }\n\n public EncodeObject(_args: any): any {\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] &&\n 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 public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim\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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class NeverTokenError extends TokenValidationError {\n name: string = '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';\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 public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public EncodeObject(val: any): any {\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public Execute(val: any) {\n throw new NeverTokenError(val, this, 'There is no literal value for the type never.');\n }\n public ExtractSchema() {\n return NeverToken.prim;\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 { Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingStateValidationError extends TokenValidationError {\n name: string = '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';\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 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 // Unknown case\n throw new Error(\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\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: ${val} while expecting: {}`\n );\n }\n }\n\n EncodeObject(val: any): any {\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name: string = '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';\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 Execute(_val: any) {\n throw new Error('There is no literal value for the sapling_transaction type.');\n }\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(val, this, `Invalid bytes: ${val}`);\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) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(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}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381frValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381frValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381frValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\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 const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n EncodeObject(val: string | Uint8Array | number) {\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381g1ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g1ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name: string = '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';\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): Bls12381g2ValidationError | null {\n if ( /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g2ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestValidationError extends TokenValidationError {\n name: string = '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';\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): ChestValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestKeyValidationError extends TokenValidationError {\n name: string = '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';\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): ChestKeyValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestKeyValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\n\n}\n","import { Semantic, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name: string = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name: string = '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';\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, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(val, this, `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 public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(args, this, `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 public EncodeObject(val: any): any {\n throw new GlobalConstantEncodingError(val, this, `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 public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n };\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 { 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 { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\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 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 NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\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';\n\nexport class InvalidTokenError implements Error {\n name: string = 'Invalid token error';\n constructor(public message: string, public data: any) { }\n}\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('Malformed data expected a value with a valid prim property', val);\n }\n return new t(val, idx, createToken);\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { BigMapKeyType, Semantic, Token, TokenValidationError } from '../tokens/token';\nimport { RpcTransaction } from './model';\nimport { Falsy } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): Token['val'] {\n if (Array.isArray(val)) {\n return collapse({\n prim: prim,\n args: val,\n }, prim);\n }\n if (val.prim === prim && val.args?.length! > 2) {\n return {\n ...val,\n args: [val.args![0], {\n prim: prim,\n args: val.args?.slice(1),\n }],\n };\n }\n return val;\n}\n\nfunction deepEqual(a: Token['val'] | any[], b: Token['val'] | any[]): boolean {\n const ac = collapse(a);\n const bc = collapse(b);\n return ac.prim === bc.prim &&\n (ac.args === undefined && bc.args === undefined ||\n ac.args !== undefined && 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 && bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i]));\n}\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 Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: any): obj is Schema {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const storage: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'storage') as MichelsonV1ExpressionExtended);\n\n if (!storage || !Array.isArray(storage.args)) {\n throw new Error('Invalid rpc response passed as arguments');\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(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 true;\n }\n try {\n this.root.EncodeObject(val);\n return true;\n } catch (ex) {\n return false;\n }\n }\n\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n if (!Array.isArray(diff)) {\n throw new Error('Invalid big map diff. It must be an array');\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new Error('Unable to encode big map key: ' + ex);\n }\n }\n\n Encode(_value?: any) {\n try {\n return this.root.EncodeObject(_value);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new Error(`Unable to encode storage object. ${ex}`);\n }\n }\n\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @deprecated\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new Error('No big map schema');\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 private findValue(schema: Token['val'] | any[], storage: any, valueToFind: any): any {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || schema['prim'] === 'pair') {\n const sch = collapse(schema);\n const str = collapse(storage, 'Pair');\n if (sch.args === undefined || str.args === undefined) {\n throw new Error('Tokens have no arguments'); // unlikely\n }\n return this.findValue(sch.args[0], str.args[0], valueToFind) ||\n this.findValue(sch.args[1], str.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 let tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { Falsy } from './types';\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 static fromRPCResponse(val: { script: ScriptResponse }) {\n const parameter: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'parameter') as MichelsonV1ExpressionExtended);\n if (!parameter || !Array.isArray(parameter.args)) {\n throw new Error('Invalid rpc response passed as arguments');\n }\n\n return new ParameterSchema(parameter.args[0]);\n }\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 get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\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\n throw new Error(`Unable to encode parameter. ${ex}`);\n }\n }\n\n EncodeObject(_value?: any) {\n try {\n return this.root.EncodeObject(_value);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new Error(`Unable to encode parameter object. ${ex}`);\n }\n }\n\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda\",\n \"version\": \"11.0.1\"\n};\n/* tslint:enable */\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport { Semantic, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\n"],"names":["collapse"],"mappings":"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"}
|