UNPKG

@taquito/michelson-encoder

Version:

converts michelson data and types into convenient JS/TS objects

104 lines (103 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TicketDeprecatedToken = exports.EncodeTicketDeprecatedError = void 0; const core_1 = require("@taquito/core"); const int_1 = require("./comparable/int"); const contract_1 = require("./contract"); const token_1 = require("./token"); /** * @category Error * @description Error that indicates a failure when encoding and sending a ticket to the blockchain */ class EncodeTicketDeprecatedError extends core_1.TaquitoError { constructor() { super(); this.name = 'TicketDeprecatedEncodeError'; this.message = 'Ticket_deprecated cannot be sent to the blockchain; they are created on-chain'; } } exports.EncodeTicketDeprecatedError = EncodeTicketDeprecatedError; const ticketerType = { prim: 'contract' }; const amountType = { prim: 'int' }; class TicketDeprecatedToken extends token_1.Token { constructor(val, idx, fac) { super(val, idx, fac); this.val = val; this.idx = idx; this.fac = fac; } get valueToken() { return this.createToken(this.val.args[0], this.idx); } /** * @throws {@link EncodeTicketDeprecatedError} */ Encode(_args) { throw new EncodeTicketDeprecatedError(); } /** * @throws {@link EncodeTicketDeprecatedError} */ EncodeObject(args, semantic) { if (semantic && semantic[TicketDeprecatedToken.prim]) { return semantic[TicketDeprecatedToken.prim](args, this.val); } throw new EncodeTicketDeprecatedError(); } Execute(val, semantics) { if (semantics && semantics[TicketDeprecatedToken.prim]) { return semantics[TicketDeprecatedToken.prim](val, this.val); } const ticketer = this.createToken(ticketerType, this.idx); const value = this.valueToken; const amount = this.createToken(amountType, this.idx); if (undefined === val.args[2] && undefined !== val.args[1].args) { return { ticketer: ticketer.Execute(val.args[0], semantics), value: value.Execute(val.args[1].args[0], semantics), amount: amount.Execute(val.args[1].args[1], semantics), }; } return { ticketer: ticketer.Execute(val.args[0], semantics), value: value.Execute(val.args[1], semantics), amount: amount.Execute(val.args[2], semantics), }; } /** * @deprecated ExtractSchema has been deprecated in favor of generateSchema * */ ExtractSchema() { return { ticketer: contract_1.ContractToken.prim, value: this.valueToken.ExtractSchema(), amount: int_1.IntToken.prim, }; } generateSchema() { return { __michelsonType: TicketDeprecatedToken.prim, schema: { value: this.valueToken.generateSchema(), ticketer: { __michelsonType: contract_1.ContractToken.prim, schema: contract_1.ContractToken.prim, }, amount: { __michelsonType: int_1.IntToken.prim, schema: int_1.IntToken.prim, }, }, }; } findAndReturnTokens(tokenToFind, tokens) { if (TicketDeprecatedToken.prim === tokenToFind) { tokens.push(this); } this.valueToken.findAndReturnTokens(tokenToFind, tokens); return tokens; } } exports.TicketDeprecatedToken = TicketDeprecatedToken; TicketDeprecatedToken.prim = 'ticket_deprecated';