UNPKG

@kippurocks/libticketto-papi

Version:

A Kippu implementation of The Ticketto Protocol with Polkadot-API

87 lines (86 loc) 4.1 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var KippuAttendanceStorage_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.KippuAttendanceStorage = exports.KippuAttendanceCalls = void 0; const inversify_1 = require("inversify"); const types_ts_1 = require("./types.js"); const polkadot_api_1 = require("polkadot-api"); const scale_ts_1 = require("scale-ts"); let KippuAttendanceCalls = class KippuAttendanceCalls { settings; kreivo; constructor(settings, kreivo) { this.settings = settings; this.kreivo = kreivo; } async submit(xt) { // Optimistic attempt. It tries to execute the attendance extrinsic. Within that, // it'll attempt executing the contract. const extrinsic = polkadot_api_1.Binary.fromBytes(xt); const { success } = await this.kreivo.apis.BlockBuilder.apply_extrinsic(extrinsic); if (!success) { throw new Error("Invalid submission"); } await new Promise((resolve, reject) => { let sent = false; this.settings.client.submitAndWatch(extrinsic.asHex()).subscribe({ next(value) { switch (value.type) { case "broadcasted": sent = true; return resolve(); } }, complete() { if (!sent) { resolve(); } }, error(err) { reject(err); }, }); }); } }; exports.KippuAttendanceCalls = KippuAttendanceCalls; exports.KippuAttendanceCalls = KippuAttendanceCalls = __decorate([ (0, inversify_1.injectable)(), __param(0, (0, inversify_1.inject)(types_ts_1.TOKEN.SETTINGS)), __param(1, (0, inversify_1.inject)(types_ts_1.TOKEN.KREIVO_API)), __metadata("design:paramtypes", [Object, Object]) ], KippuAttendanceCalls); let KippuAttendanceStorage = class KippuAttendanceStorage { static { KippuAttendanceStorage_1 = this; } settings; kreivo; static attendancesCodec = (0, scale_ts_1.Tuple)(scale_ts_1.compact, (0, scale_ts_1.Vector)(scale_ts_1.u64)); constructor(settings, kreivo) { this.settings = settings; this.kreivo = kreivo; } async attendances(id, ticketId) { const [attendancesForTicket] = (await this.kreivo.query.ListingsCatalog.Attribute.getValue([this.settings.storeId ?? 2, id], BigInt(ticketId), { type: "Pallet", value: undefined }, types_ts_1.ATTRIBUTE_KEYS.TICKETS.ATTENDANCES)) ?? [polkadot_api_1.Binary.fromHex("0x00")]; const [, attendances] = KippuAttendanceStorage_1.attendancesCodec.dec(attendancesForTicket.asBytes()); return attendances; } }; exports.KippuAttendanceStorage = KippuAttendanceStorage; exports.KippuAttendanceStorage = KippuAttendanceStorage = KippuAttendanceStorage_1 = __decorate([ (0, inversify_1.injectable)(), __param(0, (0, inversify_1.inject)(types_ts_1.TOKEN.SETTINGS)), __param(1, (0, inversify_1.inject)(types_ts_1.TOKEN.KREIVO_API)), __metadata("design:paramtypes", [Object, Object]) ], KippuAttendanceStorage);