@taquito/tzip12 11.1.0 → 11.2.0-beta-RC.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,43 +1,48 @@
1
- # Taquito Tzip-12 package
1
+ # Taquito TZIP-012 package
2
+ *Documentation can be found [here](https://tezostaquito.io/docs/tzip12)*
3
+ *TypeDoc style documentation is available on-line [here](https://tezostaquito.io/typedoc/modules/_taquito_tzip12.html)*
2
4
 
3
- `@taquito/tzip12` is an npm package that provides developers with Tzip-12 functionality for Taquito. The package allows retrieving metadata associated with tokens of FA2 contracts. You can find more information about the TZIP-12 standard [here](https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-12/tzip-12.md).
4
- ## How to use the tzip12 package
5
+ `@taquito/tzip12` is an npm package that provides developers with TZIP-12 functionality for Taquito. The package allows retrieving metadata associated with tokens of FA2 contracts.
5
6
 
6
- The package can act as an extension to the well-known Taquito contract abstraction.
7
+ ## General Information
7
8
 
8
- 1. **We first need to create an instance of `Tzip12Module` and add it as an extension to our `TezosToolkit`**
9
+ There are two scenarios to obtain the metadata of a token:
10
+ 1. The metadata can be obtained from executing an off-chain view named `token_metadata` present in the contract metadata
11
+ 2. or from a big map named `token_metadata` in the contract storage.
12
+
13
+ The `getTokenMetadata` method of the `Tzip12ContractAbstraction` class will find the token metadata with precedence for the off-chain view, if there is one, as specified in the standard. Please refer to the following link for complete documentation on [TZIP-012#Token Metadata](https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-12/tzip-12.md#token-metadata).
14
+
15
+ ## Install
16
+
17
+ The package can be used to extend the well-known Taquito contract abstraction. The `@taquito/tzip12` and the `@taquito/taquito` packages need to be installed as follows:
18
+ ```
19
+ npm i --save @taquito/tzip12
20
+ npm i --save @taquito/taquito
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ **Create an instance of the `Tzip12Module` and add it as an extension to the `TezosToolkit`**
9
26
 
10
- The constructor of the `Tzip12Module` takes an optional `MetadataProvider` as a parameter. When none is passed, the default `MetadataProvider` of Taquito is instantiated, and the default handlers (`HttpHandler,` `IpfsHandler,` and `TezosStorageHandler`) are used.
27
+ The constructor of the `Tzip12Module` takes an optional `MetadataProvider` as a parameter. When none is passed, the default `MetadataProvider` of Taquito is instantiated, and the default handlers (`HttpHandler,` `IpfsHandler,` and `TezosStorageHandler`) are used. The `MetadataProvider` can be customized by the user if needed.
28
+
29
+ **Use the `tzip12` function to extend a contract abstraction**
11
30
 
12
31
  ```ts
13
32
  import { TezosToolkit } from '@taquito/taquito';
14
33
  import { Tzip12Module } from '@taquito/tzip12';
34
+ import { tzip12 } from '@taquito/tzip12';
15
35
 
16
36
  const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL');
17
37
  Tezos.addExtension(new Tzip12Module());
18
- ```
19
-
20
- 2. **Use the `tzip12` function to extend a contract abstraction**
21
-
22
- ```js
23
- import { tzip12 } from '@taquito/tzip12';
24
38
 
25
39
  const contract = await Tezos.contract.at("contractAddress", tzip12)
26
- ```
27
-
28
- 3. **Get the token metadata**
29
40
 
30
- ```ts
41
+ // get the token metadata
31
42
  await contract.tzip12().getTokenMetadata(1);
32
43
  ```
33
44
 
34
- There are two scenarios to obtain the metadata of a token:
35
- 1. They can be obtained from executing an off-chain view named `token_metadata` present in the contract metadata
36
- 2. or from a big map named `token_metadata` in the contract storage.
37
-
38
- The `getTokenMetadata` method of the `Tzip12ContractAbstraction` class will find the token metadata with precedence for the off-chain view, if there is one, as specified in the standard.
39
-
40
- The `getTokenMetadata` method returns an object matching this interface :
45
+ The `getTokenMetadata` method takes a number as a parameter that represents the token_id and returns an object matching this interface:
41
46
  ```
42
47
  interface TokenMetadata {
43
48
  token_id: number,
@@ -47,13 +52,10 @@ interface TokenMetadata {
47
52
  }
48
53
  ```
49
54
 
55
+ ## Additional info
50
56
 
51
57
  See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.
52
58
 
53
- ## API Documentation
54
-
55
- TypeDoc style documentation is available on-line [here](https://tezostaquito.io/typedoc/modules/_taquito_tzip12.html)
56
-
57
59
  ## Disclaimer
58
60
 
59
61
  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tzip12 = void 0;
4
- var tzip12_contract_abstraction_1 = require("./tzip12-contract-abstraction");
5
- var ABSTRACTION_KEY = Symbol("Tzip12ContractAbstractionObjectKey");
4
+ const tzip12_contract_abstraction_1 = require("./tzip12-contract-abstraction");
5
+ const ABSTRACTION_KEY = Symbol('Tzip12ContractAbstractionObjectKey');
6
6
  function tzip12(abs, context) {
7
7
  return Object.assign(abs, {
8
8
  // namespace tzip12
9
- tzip12: function () {
9
+ tzip12() {
10
10
  if (!this[ABSTRACTION_KEY]) {
11
11
  this[ABSTRACTION_KEY] = new tzip12_contract_abstraction_1.Tzip12ContractAbstraction(this, context);
12
12
  }
13
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
13
14
  return this[ABSTRACTION_KEY];
14
- }
15
+ },
15
16
  });
16
17
  }
17
18
  exports.tzip12 = tzip12;
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/composer.ts"],"names":[],"mappings":";;;AACA,6EAAyE;AAGzE,IAAM,eAAe,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAErE,SAAgB,MAAM,CAA2D,GAAM,EAAE,OAAgB;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACtB,mBAAmB;QACnB,MAAM,EAAN;YACI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,uDAAyB,CAAC,IAAI,EAAE,OAA0B,CAAC,CAAC;aAC3F;YAED,OAAO,IAAI,CAAC,eAAe,CAAE,CAAA;QACjC,CAAC;KACJ,CAAC,CAAA;AACN,CAAC;AAXD,wBAWC"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/composer.ts"],"names":[],"mappings":";;;AACA,+EAA0E;AAG1E,MAAM,eAAe,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAErE,SAAgB,MAAM,CACpB,GAAM,EACN,OAAgB;IAEhB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACxB,mBAAmB;QACnB,MAAM;YAKJ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,uDAAyB,CAAC,IAAI,EAAE,OAA0B,CAAC,CAAC;aACzF;YAED,oEAAoE;YACpE,OAAO,IAAI,CAAC,eAAe,CAAE,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAnBD,wBAmBC"}
@@ -8,62 +8,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
45
- }
46
- };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
11
  Object.defineProperty(exports, "__esModule", { value: true });
50
12
  exports.Tzip12ContractAbstraction = void 0;
51
- var michelson_encoder_1 = require("@taquito/michelson-encoder");
52
- var tzip16_1 = require("@taquito/tzip16");
53
- var tzip12_errors_1 = require("./tzip12-errors");
54
- var tokenMetadataBigMapType = {
13
+ const michelson_encoder_1 = require("@taquito/michelson-encoder");
14
+ const tzip16_1 = require("@taquito/tzip16");
15
+ const tzip12_errors_1 = require("./tzip12-errors");
16
+ const tokenMetadataBigMapType = {
55
17
  prim: 'big_map',
56
18
  args: [
57
19
  { prim: 'nat' },
58
- { prim: 'pair', args: [
20
+ {
21
+ prim: 'pair',
22
+ args: [
59
23
  { prim: 'nat', annots: ['%token_id'] },
60
- { prim: "map", args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] }
61
- ] }
24
+ { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] },
25
+ ],
26
+ },
62
27
  ],
63
- annots: ['%token_metadata']
28
+ annots: ['%token_metadata'],
64
29
  };
65
- var Tzip12ContractAbstraction = /** @class */ (function () {
66
- function Tzip12ContractAbstraction(contractAbstraction, context) {
30
+ class Tzip12ContractAbstraction {
31
+ constructor(contractAbstraction, context) {
67
32
  this.contractAbstraction = contractAbstraction;
68
33
  this.context = context;
69
34
  this._tzip16ContractAbstraction = new tzip16_1.Tzip16ContractAbstraction(this.contractAbstraction, this.context);
@@ -73,51 +38,35 @@ var Tzip12ContractAbstraction = /** @class */ (function () {
73
38
  * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash
74
39
  * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016)
75
40
  */
76
- Tzip12ContractAbstraction.prototype.getContractMetadata = function () {
77
- return __awaiter(this, void 0, void 0, function () {
78
- var contractMetadata, err_1;
79
- return __generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- _a.trys.push([0, 2, , 3]);
83
- return [4 /*yield*/, this._tzip16ContractAbstraction.getMetadata()];
84
- case 1:
85
- contractMetadata = _a.sent();
86
- return [2 /*return*/, contractMetadata.metadata];
87
- case 2:
88
- err_1 = _a.sent();
89
- return [3 /*break*/, 3];
90
- case 3: return [2 /*return*/];
91
- }
92
- });
41
+ getContractMetadata() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ const contractMetadata = yield this._tzip16ContractAbstraction.getMetadata();
45
+ return contractMetadata.metadata;
46
+ }
47
+ catch (err) {
48
+ // The contract is not compliant with Tzip-016. There is no contract metadata.
49
+ }
93
50
  });
94
- };
51
+ }
95
52
  /**
96
53
  * @description The Tzip-016 "interfaces" field MUST be present in the contract metadata. It should contain "TZIP-012[version-info]"
97
54
  * @returns True if "interfaces" field is present and contains "TZIP-012", false otherwise
98
55
  */
99
- Tzip12ContractAbstraction.prototype.isTzip12Compliant = function () {
56
+ isTzip12Compliant() {
100
57
  var _a;
101
- return __awaiter(this, void 0, void 0, function () {
102
- var isCompliant, metadata, tzip12Interface;
103
- return __generator(this, function (_b) {
104
- switch (_b.label) {
105
- case 0:
106
- isCompliant = false;
107
- return [4 /*yield*/, this.getContractMetadata()];
108
- case 1:
109
- metadata = _b.sent();
110
- if (metadata) {
111
- tzip12Interface = (_a = metadata.interfaces) === null || _a === void 0 ? void 0 : _a.filter(function (x) {
112
- return x.substring(0, 8) === "TZIP-012";
113
- });
114
- isCompliant = (tzip12Interface && tzip12Interface.length !== 0) ? true : false;
115
- }
116
- return [2 /*return*/, isCompliant];
117
- }
118
- });
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ let isCompliant = false;
60
+ const metadata = yield this.getContractMetadata();
61
+ if (metadata) {
62
+ const tzip12Interface = (_a = metadata.interfaces) === null || _a === void 0 ? void 0 : _a.filter((x) => {
63
+ return x.substring(0, 8) === 'TZIP-012';
64
+ });
65
+ isCompliant = tzip12Interface && tzip12Interface.length !== 0 ? true : false;
66
+ }
67
+ return isCompliant;
119
68
  });
120
- };
69
+ }
121
70
  /**
122
71
  * @description Fetches the token metadata for a specified token ID.
123
72
  * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID.
@@ -125,187 +74,115 @@ var Tzip12ContractAbstraction = /** @class */ (function () {
125
74
  * @param tokenId The ID of the token for which we want to retrieve token metadata
126
75
  * @returns An object of type `TokenMetadata`
127
76
  */
128
- Tzip12ContractAbstraction.prototype.getTokenMetadata = function (tokenId) {
129
- return __awaiter(this, void 0, void 0, function () {
130
- var tokenMetadata;
131
- return __generator(this, function (_a) {
132
- switch (_a.label) {
133
- case 0: return [4 /*yield*/, this.retrieveTokenMetadataFromView(tokenId)];
134
- case 1:
135
- tokenMetadata = _a.sent();
136
- return [2 /*return*/, (!tokenMetadata) ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata];
137
- }
138
- });
139
- });
140
- };
141
- Tzip12ContractAbstraction.prototype.retrieveTokenMetadataFromView = function (tokenId) {
142
- return __awaiter(this, void 0, void 0, function () {
143
- var views;
144
- return __generator(this, function (_a) {
145
- switch (_a.label) {
146
- case 0: return [4 /*yield*/, this.getContractMetadata()];
147
- case 1:
148
- if (!_a.sent()) return [3 /*break*/, 3];
149
- return [4 /*yield*/, this._tzip16ContractAbstraction.metadataViews()];
150
- case 2:
151
- views = _a.sent();
152
- if (views && this.hasTokenMetadataView(views)) {
153
- return [2 /*return*/, this.executeTokenMetadataView(views['token_metadata'](), tokenId)];
154
- }
155
- _a.label = 3;
156
- case 3: return [2 /*return*/];
157
- }
158
- });
77
+ getTokenMetadata(tokenId) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const tokenMetadata = yield this.retrieveTokenMetadataFromView(tokenId);
80
+ return !tokenMetadata ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata;
159
81
  });
160
- };
161
- Tzip12ContractAbstraction.prototype.hasTokenMetadataView = function (views) {
162
- var e_1, _a;
163
- try {
164
- for (var _b = __values(Object.keys(views)), _c = _b.next(); !_c.done; _c = _b.next()) {
165
- var view = _c.value;
166
- if (view === 'token_metadata') {
167
- return true;
82
+ }
83
+ retrieveTokenMetadataFromView(tokenId) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ if (yield this.getContractMetadata()) {
86
+ const views = yield this._tzip16ContractAbstraction.metadataViews();
87
+ if (views && this.hasTokenMetadataView(views)) {
88
+ return this.executeTokenMetadataView(views['token_metadata'](), tokenId);
168
89
  }
169
90
  }
170
- }
171
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
172
- finally {
173
- try {
174
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
91
+ });
92
+ }
93
+ hasTokenMetadataView(views) {
94
+ for (const view of Object.keys(views)) {
95
+ if (view === 'token_metadata') {
96
+ return true;
175
97
  }
176
- finally { if (e_1) throw e_1.error; }
177
98
  }
178
99
  return false;
179
- };
180
- Tzip12ContractAbstraction.prototype.executeTokenMetadataView = function (tokenMetadataView, tokenId) {
181
- return __awaiter(this, void 0, void 0, function () {
182
- var tokenMetadata, err_2, tokenMap, metadataFromUri;
183
- return __generator(this, function (_a) {
184
- switch (_a.label) {
185
- case 0:
186
- _a.trys.push([0, 2, , 3]);
187
- return [4 /*yield*/, tokenMetadataView.executeView(tokenId)];
188
- case 1:
189
- tokenMetadata = _a.sent();
190
- return [3 /*break*/, 3];
191
- case 2:
192
- err_2 = _a.sent();
193
- throw new tzip12_errors_1.TokenIdNotFound(tokenId);
194
- case 3:
195
- tokenMap = Object.values(tokenMetadata)[1];
196
- if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(tokenMap)) {
197
- throw new tzip12_errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
198
- }
199
- return [4 /*yield*/, this.fetchTokenMetadataFromUri(tokenMap)];
200
- case 4:
201
- metadataFromUri = _a.sent();
202
- return [2 /*return*/, this.formatMetadataToken(tokenId, tokenMap, metadataFromUri)];
203
- }
204
- });
100
+ }
101
+ executeTokenMetadataView(tokenMetadataView, tokenId) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const tokenMetadata = yield tokenMetadataView.executeView(tokenId);
104
+ const tokenMap = Object.values(tokenMetadata)[1];
105
+ if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(tokenMap)) {
106
+ throw new tzip12_errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
107
+ }
108
+ const metadataFromUri = yield this.fetchTokenMetadataFromUri(tokenMap);
109
+ return this.formatMetadataToken(tokenId, tokenMap, metadataFromUri);
205
110
  });
206
- };
207
- Tzip12ContractAbstraction.prototype.fetchTokenMetadataFromUri = function (tokenMetadata) {
208
- return __awaiter(this, void 0, void 0, function () {
209
- var uri, metadataFromUri, e_2;
210
- return __generator(this, function (_a) {
211
- switch (_a.label) {
212
- case 0:
213
- uri = tokenMetadata.get("");
214
- if (!uri) return [3 /*break*/, 4];
215
- _a.label = 1;
216
- case 1:
217
- _a.trys.push([1, 3, , 4]);
218
- return [4 /*yield*/, this.context.metadataProvider.provideMetadata(this.contractAbstraction, tzip16_1.bytes2Char(uri), this.context)];
219
- case 2:
220
- metadataFromUri = _a.sent();
221
- return [2 /*return*/, metadataFromUri.metadata];
222
- case 3:
223
- e_2 = _a.sent();
224
- if (e_2.name === 'InvalidUri') {
225
- console.warn("The URI " + tzip16_1.bytes2Char(uri) + " is present in the token metadata, but is invalid.");
226
- }
227
- else {
228
- throw e_2;
229
- }
230
- return [3 /*break*/, 4];
231
- case 4: return [2 /*return*/];
111
+ }
112
+ fetchTokenMetadataFromUri(tokenMetadata) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ const uri = tokenMetadata.get('');
115
+ if (uri) {
116
+ try {
117
+ const metadataFromUri = yield this.context.metadataProvider.provideMetadata(this.contractAbstraction, tzip16_1.bytes2Char(uri), this.context);
118
+ return metadataFromUri.metadata;
232
119
  }
233
- });
120
+ catch (e) {
121
+ if (e.name === 'InvalidUri') {
122
+ console.warn(`The URI ${tzip16_1.bytes2Char(uri)} is present in the token metadata, but is invalid.`);
123
+ }
124
+ else {
125
+ throw e;
126
+ }
127
+ }
128
+ }
234
129
  });
235
- };
236
- Tzip12ContractAbstraction.prototype.formatMetadataToken = function (tokenId, metadataTokenMap, metadataFromUri) {
237
- var e_3, _a, _b, _c, _d;
238
- var tokenMetadataDecoded = {
239
- 'token_id': tokenId
130
+ }
131
+ formatMetadataToken(tokenId, metadataTokenMap, metadataFromUri) {
132
+ const tokenMetadataDecoded = {
133
+ token_id: tokenId,
240
134
  };
241
- try {
242
- for (var _e = __values(metadataTokenMap.keys()), _f = _e.next(); !_f.done; _f = _e.next()) {
243
- var keyTokenMetadata = _f.value;
244
- if (keyTokenMetadata === 'decimals') {
245
- Object.assign(tokenMetadataDecoded, (_b = {}, _b[keyTokenMetadata] = Number(tzip16_1.bytes2Char(metadataTokenMap.get(keyTokenMetadata))), _b));
246
- }
247
- else if (!(keyTokenMetadata === '')) {
248
- Object.assign(tokenMetadataDecoded, (_c = {}, _c[keyTokenMetadata] = tzip16_1.bytes2Char(metadataTokenMap.get(keyTokenMetadata)), _c));
249
- }
135
+ for (const keyTokenMetadata of metadataTokenMap.keys()) {
136
+ if (keyTokenMetadata === 'decimals') {
137
+ Object.assign(tokenMetadataDecoded, {
138
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
139
+ [keyTokenMetadata]: Number(tzip16_1.bytes2Char(metadataTokenMap.get(keyTokenMetadata))),
140
+ });
250
141
  }
251
- }
252
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
253
- finally {
254
- try {
255
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
142
+ else if (!(keyTokenMetadata === '')) {
143
+ Object.assign(tokenMetadataDecoded, {
144
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
145
+ [keyTokenMetadata]: tzip16_1.bytes2Char(metadataTokenMap.get(keyTokenMetadata)),
146
+ });
256
147
  }
257
- finally { if (e_3) throw e_3.error; }
258
148
  }
259
149
  // if an URI is present, add the fetched properties to the object
260
150
  // if a property is in the URI and the map, prevalence is accorded to value from the URI
261
151
  if (metadataFromUri) {
262
- for (var property in metadataFromUri) {
263
- Object.assign(tokenMetadataDecoded, (_d = {}, _d[property] = metadataFromUri[property], _d));
152
+ for (const property in metadataFromUri) {
153
+ Object.assign(tokenMetadataDecoded, { [property]: metadataFromUri[property] });
264
154
  }
265
155
  }
266
156
  if (!('decimals' in tokenMetadataDecoded)) {
267
157
  throw new tzip12_errors_1.InvalidTokenMetadata();
268
158
  }
269
159
  return tokenMetadataDecoded;
270
- };
271
- Tzip12ContractAbstraction.prototype.retrieveTokenMetadataFromBigMap = function (tokenId) {
272
- return __awaiter(this, void 0, void 0, function () {
273
- var bigmapTokenMetadataId, pairNatMap, err_3, michelsonMap, metadataFromUri;
274
- return __generator(this, function (_a) {
275
- switch (_a.label) {
276
- case 0:
277
- bigmapTokenMetadataId = this.findTokenMetadataBigMap();
278
- _a.label = 1;
279
- case 1:
280
- _a.trys.push([1, 3, , 4]);
281
- return [4 /*yield*/, this.context.contract.getBigMapKeyByID(bigmapTokenMetadataId['int'].toString(), tokenId.toString(), new michelson_encoder_1.Schema(tokenMetadataBigMapType))];
282
- case 2:
283
- pairNatMap = _a.sent();
284
- return [3 /*break*/, 4];
285
- case 3:
286
- err_3 = _a.sent();
287
- throw new tzip12_errors_1.TokenIdNotFound(tokenId);
288
- case 4:
289
- michelsonMap = pairNatMap['token_info'];
290
- if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(michelsonMap)) {
291
- throw new tzip12_errors_1.TokenIdNotFound(tokenId);
292
- }
293
- return [4 /*yield*/, this.fetchTokenMetadataFromUri(michelsonMap)];
294
- case 5:
295
- metadataFromUri = _a.sent();
296
- return [2 /*return*/, this.formatMetadataToken(tokenId, michelsonMap, metadataFromUri)];
297
- }
298
- });
160
+ }
161
+ retrieveTokenMetadataFromBigMap(tokenId) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ const bigmapTokenMetadataId = this.findTokenMetadataBigMap();
164
+ let pairNatMap;
165
+ try {
166
+ pairNatMap = yield this.context.contract.getBigMapKeyByID(bigmapTokenMetadataId['int'].toString(), tokenId.toString(), new michelson_encoder_1.Schema(tokenMetadataBigMapType));
167
+ }
168
+ catch (err) {
169
+ throw new tzip12_errors_1.TokenIdNotFound(tokenId);
170
+ }
171
+ const michelsonMap = pairNatMap['token_info'];
172
+ if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(michelsonMap)) {
173
+ throw new tzip12_errors_1.TokenIdNotFound(tokenId);
174
+ }
175
+ const metadataFromUri = yield this.fetchTokenMetadataFromUri(michelsonMap);
176
+ return this.formatMetadataToken(tokenId, michelsonMap, metadataFromUri);
299
177
  });
300
- };
301
- Tzip12ContractAbstraction.prototype.findTokenMetadataBigMap = function () {
302
- var tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair(this.contractAbstraction.script.storage, tokenMetadataBigMapType);
178
+ }
179
+ findTokenMetadataBigMap() {
180
+ const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair(this.contractAbstraction.script.storage, tokenMetadataBigMapType);
303
181
  if (!tokenMetadataBigMapId) {
304
182
  throw new tzip12_errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
305
183
  }
306
184
  return tokenMetadataBigMapId;
307
- };
308
- return Tzip12ContractAbstraction;
309
- }());
185
+ }
186
+ }
310
187
  exports.Tzip12ContractAbstraction = Tzip12ContractAbstraction;
311
188
  //# sourceMappingURL=tzip12-contract-abstraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tzip12-contract-abstraction.js","sourceRoot":"","sources":["../../src/tzip12-contract-abstraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tzip12-contract-abstraction.js","sourceRoot":"","sources":["../../src/tzip12-contract-abstraction.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InvalidTokenMetadata = exports.TokenIdNotFound = exports.TokenMetadataNotFound = void 0;
4
- var TokenMetadataNotFound = /** @class */ (function () {
5
- function TokenMetadataNotFound(address) {
4
+ class TokenMetadataNotFound extends Error {
5
+ constructor(address) {
6
+ super(`No token metadata was found for the contract: ${address}`);
6
7
  this.address = address;
7
8
  this.name = 'TokenMetadataNotFound';
8
- this.message = "No token metadata was found for the contract: " + address;
9
9
  }
10
- return TokenMetadataNotFound;
11
- }());
10
+ }
12
11
  exports.TokenMetadataNotFound = TokenMetadataNotFound;
13
- var TokenIdNotFound = /** @class */ (function () {
14
- function TokenIdNotFound(tokenId) {
12
+ class TokenIdNotFound extends Error {
13
+ constructor(tokenId) {
14
+ super(`Could not find token metadata for the token ID: ${tokenId}`);
15
15
  this.tokenId = tokenId;
16
16
  this.name = 'TokenIdNotFound';
17
- this.message = "Could not find token metadata for the token ID: " + tokenId;
18
17
  }
19
- return TokenIdNotFound;
20
- }());
18
+ }
21
19
  exports.TokenIdNotFound = TokenIdNotFound;
22
- var InvalidTokenMetadata = /** @class */ (function () {
23
- function InvalidTokenMetadata() {
20
+ class InvalidTokenMetadata extends Error {
21
+ constructor() {
22
+ super('Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.');
24
23
  this.name = 'InvalidTokenMetadata';
25
- this.message = 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';
26
24
  }
27
- return InvalidTokenMetadata;
28
- }());
25
+ }
29
26
  exports.InvalidTokenMetadata = InvalidTokenMetadata;
30
27
  //# sourceMappingURL=tzip12-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tzip12-errors.js","sourceRoot":"","sources":["../../src/tzip12-errors.ts"],"names":[],"mappings":";;;AAAA;IAII,+BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAHlC,SAAI,GAAW,uBAAuB,CAAC;QAInC,IAAI,CAAC,OAAO,GAAG,mDAAiD,OAAS,CAAC;IAC9E,CAAC;IACL,4BAAC;AAAD,CAAC,AAPD,IAOC;AAPY,sDAAqB;AASlC;IAII,yBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAHlC,SAAI,GAAW,iBAAiB,CAAC;QAI7B,IAAI,CAAC,OAAO,GAAG,qDAAmD,OAAS,CAAC;IAChF,CAAC;IACL,sBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,0CAAe;AAS5B;IAAA;QACI,SAAI,GAAG,sBAAsB,CAAC;QAC9B,YAAO,GAAG,yFAAyF,CAAC;IACxG,CAAC;IAAD,2BAAC;AAAD,CAAC,AAHD,IAGC;AAHY,oDAAoB"}
1
+ {"version":3,"file":"tzip12-errors.js","sourceRoot":"","sources":["../../src/tzip12-errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,qBAAsB,SAAQ,KAAK;IAG9C,YAAmB,OAAe;QAChC,KAAK,CAAC,iDAAiD,OAAO,EAAE,CAAC,CAAC;QADjD,YAAO,GAAP,OAAO,CAAQ;QAFlC,SAAI,GAAG,uBAAuB,CAAC;IAI/B,CAAC;CACF;AAND,sDAMC;AAED,MAAa,eAAgB,SAAQ,KAAK;IAGxC,YAAmB,OAAe;QAChC,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QADnD,YAAO,GAAP,OAAO,CAAQ;QAFlC,SAAI,GAAG,iBAAiB,CAAC;IAIzB,CAAC;CACF;AAND,0CAMC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAG7C;QACE,KAAK,CACH,yFAAyF,CAC1F,CAAC;QALJ,SAAI,GAAG,sBAAsB,CAAC;IAM9B,CAAC;CACF;AARD,oDAQC"}