@taquito/tzip12 17.1.0-beta-RC.0 → 17.1.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.
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidTokenMetadata = exports.TokenIdNotFound = exports.TokenMetadataNotFound = void 0;
4
+ const core_1 = require("@taquito/core");
5
+ /**
6
+ * @category Error
7
+ * @description Error indicates the metadata not being found on the contract
8
+ */
9
+ class TokenMetadataNotFound extends core_1.TaquitoError {
10
+ constructor(address) {
11
+ super();
12
+ this.address = address;
13
+ this.name = 'TokenMetadataNotFound';
14
+ this.message = `No token metadata was found for the contract: ${address}`;
15
+ }
16
+ }
17
+ exports.TokenMetadataNotFound = TokenMetadataNotFound;
18
+ /**
19
+ * @category Error
20
+ * @description Error indicates the token ID not being found
21
+ */
22
+ class TokenIdNotFound extends core_1.TaquitoError {
23
+ constructor(tokenId) {
24
+ super(`Could not find token metadata for the token ID: ${tokenId}`);
25
+ this.tokenId = tokenId;
26
+ this.name = 'TokenIdNotFound';
27
+ }
28
+ }
29
+ exports.TokenIdNotFound = TokenIdNotFound;
30
+ /**
31
+ * @category Error
32
+ * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
33
+ */
34
+ class InvalidTokenMetadata extends core_1.TaquitoError {
35
+ constructor(invalidMetadata) {
36
+ super();
37
+ this.invalidMetadata = invalidMetadata;
38
+ this.name = 'InvalidTokenMetadata';
39
+ this.message =
40
+ 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';
41
+ }
42
+ }
43
+ exports.InvalidTokenMetadata = InvalidTokenMetadata;
44
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAE7C;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,mBAAY;IACrD,YAA4B,OAAe;QACzC,KAAK,EAAE,CAAC;QADkB,YAAO,GAAP,OAAO,CAAQ;QAEzC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,iDAAiD,OAAO,EAAE,CAAC;IAC5E,CAAC;CACF;AAND,sDAMC;AAED;;;GAGG;AACH,MAAa,eAAgB,SAAQ,mBAAY;IAC/C,YAA4B,OAAe;QACzC,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAD1C,YAAO,GAAP,OAAO,CAAQ;QAEzC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,mBAAY;IACpD,YAA4B,eAAoB;QAC9C,KAAK,EAAE,CAAC;QADkB,oBAAe,GAAf,eAAe,CAAK;QAE9C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO;YACV,yFAAyF,CAAC;IAC9F,CAAC;CACF;AAPD,oDAOC"}
@@ -17,7 +17,7 @@ exports.VERSION = void 0;
17
17
  */
18
18
  __exportStar(require("./tzip12-contract-abstraction"), exports);
19
19
  __exportStar(require("./composer"), exports);
20
- __exportStar(require("./tzip12-errors"), exports);
20
+ __exportStar(require("./errors"), exports);
21
21
  __exportStar(require("./tzip12-extension"), exports);
22
22
  var version_1 = require("./version");
23
23
  Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-tzip12.js","sourceRoot":"","sources":["../../src/taquito-tzip12.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;GAGG;AACH,gEAA8C;AAC9C,6CAA2B;AAC3B,kDAAgC;AAChC,qDAAmC;AACnC,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"taquito-tzip12.js","sourceRoot":"","sources":["../../src/taquito-tzip12.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;GAGG;AACH,gEAA8C;AAC9C,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AACnC,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Tzip12ContractAbstraction = void 0;
13
13
  const michelson_encoder_1 = require("@taquito/michelson-encoder");
14
14
  const tzip16_1 = require("@taquito/tzip16");
15
- const tzip12_errors_1 = require("./tzip12-errors");
15
+ const errors_1 = require("./errors");
16
16
  const tokenMetadataBigMapType = {
17
17
  prim: 'big_map',
18
18
  args: [
@@ -73,6 +73,7 @@ class Tzip12ContractAbstraction {
73
73
  * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.
74
74
  * @param tokenId The ID of the token for which we want to retrieve token metadata
75
75
  * @returns An object of type `TokenMetadata`
76
+ * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}
76
77
  */
77
78
  getTokenMetadata(tokenId) {
78
79
  return __awaiter(this, void 0, void 0, function* () {
@@ -103,7 +104,7 @@ class Tzip12ContractAbstraction {
103
104
  const tokenMetadata = yield tokenMetadataView.executeView(tokenId);
104
105
  const tokenMap = Object.values(tokenMetadata)[1];
105
106
  if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(tokenMap)) {
106
- throw new tzip12_errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
107
+ throw new errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
107
108
  }
108
109
  const metadataFromUri = yield this.fetchTokenMetadataFromUri(tokenMap);
109
110
  return this.formatMetadataToken(tokenId, tokenMap, metadataFromUri);
@@ -118,7 +119,7 @@ class Tzip12ContractAbstraction {
118
119
  return metadataFromUri.metadata;
119
120
  }
120
121
  catch (e) {
121
- if (e.name === 'InvalidUri') {
122
+ if (e.name === 'InvalidUriError') {
122
123
  console.warn(`The URI ${tzip16_1.bytes2Char(uri)} is present in the token metadata, but is invalid.`);
123
124
  }
124
125
  else {
@@ -154,7 +155,7 @@ class Tzip12ContractAbstraction {
154
155
  }
155
156
  }
156
157
  if (!('decimals' in tokenMetadataDecoded)) {
157
- throw new tzip12_errors_1.InvalidTokenMetadata();
158
+ throw new errors_1.InvalidTokenMetadata(tokenMetadataDecoded);
158
159
  }
159
160
  return tokenMetadataDecoded;
160
161
  }
@@ -166,11 +167,11 @@ class Tzip12ContractAbstraction {
166
167
  pairNatMap = yield this.context.contract.getBigMapKeyByID(bigmapTokenMetadataId['int'].toString(), tokenId.toString(), new michelson_encoder_1.Schema(tokenMetadataBigMapType));
167
168
  }
168
169
  catch (err) {
169
- throw new tzip12_errors_1.TokenIdNotFound(tokenId);
170
+ throw new errors_1.TokenIdNotFound(tokenId);
170
171
  }
171
172
  const michelsonMap = pairNatMap['token_info'];
172
173
  if (!michelson_encoder_1.MichelsonMap.isMichelsonMap(michelsonMap)) {
173
- throw new tzip12_errors_1.TokenIdNotFound(tokenId);
174
+ throw new errors_1.TokenIdNotFound(tokenId);
174
175
  }
175
176
  const metadataFromUri = yield this.fetchTokenMetadataFromUri(michelsonMap);
176
177
  return this.formatMetadataToken(tokenId, michelsonMap, metadataFromUri);
@@ -180,7 +181,7 @@ class Tzip12ContractAbstraction {
180
181
  return __awaiter(this, void 0, void 0, function* () {
181
182
  const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair(yield this.context.readProvider.getStorage(this.contractAbstraction.address, 'head'), tokenMetadataBigMapType);
182
183
  if (!tokenMetadataBigMapId || !tokenMetadataBigMapId.int) {
183
- throw new tzip12_errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
184
+ throw new errors_1.TokenMetadataNotFound(this.contractAbstraction.address);
184
185
  }
185
186
  return { int: tokenMetadataBigMapId.int };
186
187
  });
@@ -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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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
5
5
  exports.VERSION = {
6
- "commitHash": "5e47743ada31a9c8118f836c31b50a94d97255a6",
7
- "version": "17.1.0-beta-RC.0"
6
+ "commitHash": "a23fb981e79462489c07a1e4656f310390cb1148",
7
+ "version": "17.1.0"
8
8
  };
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;AAC9D,QAAA,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,kBAAkB;CAChC,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;AAC9D,QAAA,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,QAAQ;CACtB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { MichelsonMap, Schema } from '@taquito/michelson-encoder';
2
2
  import { Tzip16ContractAbstraction, bytes2Char, MetadataProvider, DEFAULT_HANDLERS } from '@taquito/tzip16';
3
+ import { TaquitoError } from '@taquito/core';
3
4
 
4
5
  /******************************************************************************
5
6
  Copyright (c) Microsoft Corporation.
@@ -33,20 +34,21 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
33
34
 
34
35
  /**
35
36
  * @category Error
36
- * @description Error that indicates the metadata not being found on the contract
37
+ * @description Error indicates the metadata not being found on the contract
37
38
  */
38
- class TokenMetadataNotFound extends Error {
39
+ class TokenMetadataNotFound extends TaquitoError {
39
40
  constructor(address) {
40
- super(`No token metadata was found for the contract: ${address}`);
41
+ super();
41
42
  this.address = address;
42
43
  this.name = 'TokenMetadataNotFound';
44
+ this.message = `No token metadata was found for the contract: ${address}`;
43
45
  }
44
46
  }
45
47
  /**
46
48
  * @category Error
47
- * @description Error that indicates the token ID not being found
49
+ * @description Error indicates the token ID not being found
48
50
  */
49
- class TokenIdNotFound extends Error {
51
+ class TokenIdNotFound extends TaquitoError {
50
52
  constructor(tokenId) {
51
53
  super(`Could not find token metadata for the token ID: ${tokenId}`);
52
54
  this.tokenId = tokenId;
@@ -55,12 +57,15 @@ class TokenIdNotFound extends Error {
55
57
  }
56
58
  /**
57
59
  * @category Error
58
- * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
60
+ * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
59
61
  */
60
- class InvalidTokenMetadata extends Error {
61
- constructor() {
62
- super('Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.');
62
+ class InvalidTokenMetadata extends TaquitoError {
63
+ constructor(invalidMetadata) {
64
+ super();
65
+ this.invalidMetadata = invalidMetadata;
63
66
  this.name = 'InvalidTokenMetadata';
67
+ this.message =
68
+ 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';
64
69
  }
65
70
  }
66
71
 
@@ -124,6 +129,7 @@ class Tzip12ContractAbstraction {
124
129
  * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.
125
130
  * @param tokenId The ID of the token for which we want to retrieve token metadata
126
131
  * @returns An object of type `TokenMetadata`
132
+ * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}
127
133
  */
128
134
  getTokenMetadata(tokenId) {
129
135
  return __awaiter(this, void 0, void 0, function* () {
@@ -169,7 +175,7 @@ class Tzip12ContractAbstraction {
169
175
  return metadataFromUri.metadata;
170
176
  }
171
177
  catch (e) {
172
- if (e.name === 'InvalidUri') {
178
+ if (e.name === 'InvalidUriError') {
173
179
  console.warn(`The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`);
174
180
  }
175
181
  else {
@@ -205,7 +211,7 @@ class Tzip12ContractAbstraction {
205
211
  }
206
212
  }
207
213
  if (!('decimals' in tokenMetadataDecoded)) {
208
- throw new InvalidTokenMetadata();
214
+ throw new InvalidTokenMetadata(tokenMetadataDecoded);
209
215
  }
210
216
  return tokenMetadataDecoded;
211
217
  }
@@ -264,8 +270,8 @@ class Tzip12Module {
264
270
 
265
271
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
266
272
  const VERSION = {
267
- "commitHash": "5e47743ada31a9c8118f836c31b50a94d97255a6",
268
- "version": "17.1.0-beta-RC.0"
273
+ "commitHash": "a23fb981e79462489c07a1e4656f310390cb1148",
274
+ "version": "17.1.0"
269
275
  };
270
276
 
271
277
  export { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound, Tzip12ContractAbstraction, Tzip12Module, VERSION, tzip12 };
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-tzip12.es6.js","sources":["../src/tzip12-errors.ts","../src/tzip12-contract-abstraction.ts","../src/composer.ts","../src/tzip12-extension.ts","../src/version.ts"],"sourcesContent":["/**\n * @category Error\n * @description Error that indicates the metadata not being found on the contract\n */\nexport class TokenMetadataNotFound extends Error {\n name = 'TokenMetadataNotFound';\n\n constructor(public address: string) {\n super(`No token metadata was found for the contract: ${address}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates the token ID not being found\n */\nexport class TokenIdNotFound extends Error {\n name = 'TokenIdNotFound';\n\n constructor(public tokenId: number) {\n super(`Could not find token metadata for the token ID: ${tokenId}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)\n */\nexport class InvalidTokenMetadata extends Error {\n name = 'InvalidTokenMetadata';\n\n constructor() {\n super(\n 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.'\n );\n }\n}\n","import { MichelsonMap, Schema } from '@taquito/michelson-encoder';\nimport { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport {\n Tzip16ContractAbstraction,\n MetadataContext,\n View,\n bytes2Char,\n BigMapId,\n} from '@taquito/tzip16';\nimport { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from './tzip12-errors';\n\nconst tokenMetadataBigMapType = {\n prim: 'big_map',\n args: [\n { prim: 'nat' },\n {\n prim: 'pair',\n args: [\n { prim: 'nat', annots: ['%token_id'] },\n { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] },\n ],\n },\n ],\n annots: ['%token_metadata'],\n};\n\nexport interface TokenMetadata {\n token_id: number;\n decimals: number;\n name?: string;\n symbol?: string;\n}\n\nexport class Tzip12ContractAbstraction {\n private _tzip16ContractAbstraction: Tzip16ContractAbstraction;\n\n constructor(\n private contractAbstraction: ContractAbstraction<ContractProvider | Wallet>,\n private context: MetadataContext\n ) {\n this._tzip16ContractAbstraction = new Tzip16ContractAbstraction(\n this.contractAbstraction,\n this.context\n );\n }\n\n /**\n * @description Fetches the contract metadata (according to the Tzip-016 standard)\n * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash\n * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016)\n */\n private async getContractMetadata() {\n try {\n const contractMetadata = await this._tzip16ContractAbstraction.getMetadata();\n return contractMetadata.metadata;\n } catch (err) {\n // The contract is not compliant with Tzip-016. There is no contract metadata.\n }\n }\n\n /**\n * @description The Tzip-016 \"interfaces\" field MUST be present in the contract metadata. It should contain \"TZIP-012[version-info]\"\n * @returns True if \"interfaces\" field is present and contains \"TZIP-012\", false otherwise\n */\n async isTzip12Compliant() {\n let isCompliant = false;\n const metadata = await this.getContractMetadata();\n if (metadata) {\n const tzip12Interface = metadata.interfaces?.filter((x) => {\n return x.substring(0, 8) === 'TZIP-012';\n });\n isCompliant = tzip12Interface && tzip12Interface.length !== 0 ? true : false;\n }\n return isCompliant;\n }\n\n /**\n * @description Fetches the token metadata for a specified token ID.\n * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID.\n * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.\n * @param tokenId The ID of the token for which we want to retrieve token metadata\n * @returns An object of type `TokenMetadata`\n */\n async getTokenMetadata(tokenId: number) {\n const tokenMetadata = await this.retrieveTokenMetadataFromView(tokenId);\n return !tokenMetadata ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata;\n }\n\n private async retrieveTokenMetadataFromView(tokenId: number) {\n if (await this.getContractMetadata()) {\n const views = await this._tzip16ContractAbstraction.metadataViews();\n if (views && this.hasTokenMetadataView(views)) {\n return this.executeTokenMetadataView(views['token_metadata'](), tokenId);\n }\n }\n }\n\n private hasTokenMetadataView(views: object) {\n for (const view of Object.keys(views)) {\n if (view === 'token_metadata') {\n return true;\n }\n }\n return false;\n }\n\n private async executeTokenMetadataView(\n tokenMetadataView: View,\n tokenId: number\n ): Promise<TokenMetadata> {\n const tokenMetadata = await tokenMetadataView.executeView(tokenId);\n const tokenMap = Object.values(tokenMetadata)[1];\n if (!MichelsonMap.isMichelsonMap(tokenMap)) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n tokenMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n tokenMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async fetchTokenMetadataFromUri(tokenMetadata: MichelsonMap<string, string>) {\n const uri = tokenMetadata.get('');\n if (uri) {\n try {\n const metadataFromUri = await this.context.metadataProvider.provideMetadata(\n this.contractAbstraction,\n bytes2Char(uri),\n this.context\n );\n return metadataFromUri.metadata;\n } catch (e: any) {\n if (e.name === 'InvalidUri') {\n console.warn(\n `The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`\n );\n } else {\n throw e;\n }\n }\n }\n }\n\n private formatMetadataToken(\n tokenId: number,\n metadataTokenMap: MichelsonMap<string, string>,\n metadataFromUri?: any\n ): TokenMetadata {\n const tokenMetadataDecoded = {\n token_id: tokenId,\n };\n for (const keyTokenMetadata of metadataTokenMap.keys()) {\n if (keyTokenMetadata === 'decimals') {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: Number(bytes2Char(metadataTokenMap.get(keyTokenMetadata)!)),\n });\n } else if (!(keyTokenMetadata === '')) {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: bytes2Char(metadataTokenMap.get(keyTokenMetadata)!),\n });\n }\n }\n // if an URI is present, add the fetched properties to the object\n // if a property is in the URI and the map, prevalence is accorded to value from the URI\n if (metadataFromUri) {\n for (const property in metadataFromUri) {\n Object.assign(tokenMetadataDecoded, { [property]: metadataFromUri[property] });\n }\n }\n if (!('decimals' in tokenMetadataDecoded)) {\n throw new InvalidTokenMetadata();\n }\n return tokenMetadataDecoded as TokenMetadata;\n }\n\n private async retrieveTokenMetadataFromBigMap(tokenId: number) {\n const bigmapTokenMetadataId = await this.findTokenMetadataBigMap();\n let pairNatMap;\n try {\n pairNatMap = await this.context.contract.getBigMapKeyByID<{\n token_info: MichelsonMap<string, string>;\n }>(\n bigmapTokenMetadataId['int'].toString(),\n tokenId.toString(),\n new Schema(tokenMetadataBigMapType)\n );\n } catch (err) {\n throw new TokenIdNotFound(tokenId);\n }\n\n const michelsonMap = pairNatMap['token_info'];\n if (!MichelsonMap.isMichelsonMap(michelsonMap)) {\n throw new TokenIdNotFound(tokenId);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n michelsonMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n michelsonMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async findTokenMetadataBigMap(): Promise<BigMapId> {\n const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>(\n await this.context.readProvider.getStorage(this.contractAbstraction.address, 'head'),\n tokenMetadataBigMapType\n );\n if (!tokenMetadataBigMapId || !tokenMetadataBigMapId.int) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n return { int: tokenMetadataBigMapId.int };\n }\n}\n","import { Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport { Tzip12ContractAbstraction } from './tzip12-contract-abstraction';\nimport { MetadataContext } from '@taquito/tzip16';\n\nconst ABSTRACTION_KEY = Symbol('Tzip12ContractAbstractionObjectKey');\n\nexport function tzip12<T extends ContractAbstraction<ContractProvider | Wallet>>(\n abs: T,\n context: Context\n) {\n return Object.assign(abs, {\n // namespace tzip12\n tzip12(\n this: ContractAbstraction<ContractProvider | Wallet> & {\n [ABSTRACTION_KEY]?: Tzip12ContractAbstraction;\n }\n ) {\n if (!this[ABSTRACTION_KEY]) {\n this[ABSTRACTION_KEY] = new Tzip12ContractAbstraction(this, context as MetadataContext);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this[ABSTRACTION_KEY]!;\n },\n });\n}\n","import { Context, Extension } from \"@taquito/taquito\";\nimport { DEFAULT_HANDLERS, MetadataProviderInterface, MetadataProvider } from '@taquito/tzip16'\n\n// The same default metadataProvider is used for tzip16 and tzip12\nexport class Tzip12Module implements Extension {\n private _metadataProvider: MetadataProviderInterface;\n\n constructor(metadataProvider?: MetadataProviderInterface) {\n this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS);\n }\n\n configureContext(context: Context) {\n Object.assign(context, { metadataProvider: this._metadataProvider });\n }\n}","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"5e47743ada31a9c8118f836c31b50a94d97255a6\",\n \"version\": \"17.1.0-beta-RC.0\"\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taquito-tzip12.es6.js","sources":["../src/errors.ts","../src/tzip12-contract-abstraction.ts","../src/composer.ts","../src/tzip12-extension.ts","../src/version.ts"],"sourcesContent":["import { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error indicates the metadata not being found on the contract\n */\nexport class TokenMetadataNotFound extends TaquitoError {\n constructor(public readonly address: string) {\n super();\n this.name = 'TokenMetadataNotFound';\n this.message = `No token metadata was found for the contract: ${address}`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates the token ID not being found\n */\nexport class TokenIdNotFound extends TaquitoError {\n constructor(public readonly tokenId: number) {\n super(`Could not find token metadata for the token ID: ${tokenId}`);\n this.name = 'TokenIdNotFound';\n }\n}\n\n/**\n * @category Error\n * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)\n */\nexport class InvalidTokenMetadata extends TaquitoError {\n constructor(public readonly invalidMetadata: any) {\n super();\n this.name = 'InvalidTokenMetadata';\n this.message =\n 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';\n }\n}\n","import { MichelsonMap, Schema } from '@taquito/michelson-encoder';\nimport { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport {\n Tzip16ContractAbstraction,\n MetadataContext,\n View,\n bytes2Char,\n BigMapId,\n} from '@taquito/tzip16';\nimport { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from './errors';\n\nconst tokenMetadataBigMapType = {\n prim: 'big_map',\n args: [\n { prim: 'nat' },\n {\n prim: 'pair',\n args: [\n { prim: 'nat', annots: ['%token_id'] },\n { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] },\n ],\n },\n ],\n annots: ['%token_metadata'],\n};\n\nexport interface TokenMetadata {\n token_id: number;\n decimals: number;\n name?: string;\n symbol?: string;\n}\n\nexport class Tzip12ContractAbstraction {\n private _tzip16ContractAbstraction: Tzip16ContractAbstraction;\n\n constructor(\n private contractAbstraction: ContractAbstraction<ContractProvider | Wallet>,\n private context: MetadataContext\n ) {\n this._tzip16ContractAbstraction = new Tzip16ContractAbstraction(\n this.contractAbstraction,\n this.context\n );\n }\n\n /**\n * @description Fetches the contract metadata (according to the Tzip-016 standard)\n * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash\n * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016)\n */\n private async getContractMetadata() {\n try {\n const contractMetadata = await this._tzip16ContractAbstraction.getMetadata();\n return contractMetadata.metadata;\n } catch (err) {\n // The contract is not compliant with Tzip-016. There is no contract metadata.\n }\n }\n\n /**\n * @description The Tzip-016 \"interfaces\" field MUST be present in the contract metadata. It should contain \"TZIP-012[version-info]\"\n * @returns True if \"interfaces\" field is present and contains \"TZIP-012\", false otherwise\n */\n async isTzip12Compliant() {\n let isCompliant = false;\n const metadata = await this.getContractMetadata();\n if (metadata) {\n const tzip12Interface = metadata.interfaces?.filter((x) => {\n return x.substring(0, 8) === 'TZIP-012';\n });\n isCompliant = tzip12Interface && tzip12Interface.length !== 0 ? true : false;\n }\n return isCompliant;\n }\n\n /**\n * @description Fetches the token metadata for a specified token ID.\n * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID.\n * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.\n * @param tokenId The ID of the token for which we want to retrieve token metadata\n * @returns An object of type `TokenMetadata`\n * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}\n */\n async getTokenMetadata(tokenId: number) {\n const tokenMetadata = await this.retrieveTokenMetadataFromView(tokenId);\n return !tokenMetadata ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata;\n }\n\n private async retrieveTokenMetadataFromView(tokenId: number) {\n if (await this.getContractMetadata()) {\n const views = await this._tzip16ContractAbstraction.metadataViews();\n if (views && this.hasTokenMetadataView(views)) {\n return this.executeTokenMetadataView(views['token_metadata'](), tokenId);\n }\n }\n }\n\n private hasTokenMetadataView(views: object) {\n for (const view of Object.keys(views)) {\n if (view === 'token_metadata') {\n return true;\n }\n }\n return false;\n }\n\n private async executeTokenMetadataView(\n tokenMetadataView: View,\n tokenId: number\n ): Promise<TokenMetadata> {\n const tokenMetadata = await tokenMetadataView.executeView(tokenId);\n const tokenMap = Object.values(tokenMetadata)[1];\n if (!MichelsonMap.isMichelsonMap(tokenMap)) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n tokenMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n tokenMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async fetchTokenMetadataFromUri(tokenMetadata: MichelsonMap<string, string>) {\n const uri = tokenMetadata.get('');\n if (uri) {\n try {\n const metadataFromUri = await this.context.metadataProvider.provideMetadata(\n this.contractAbstraction,\n bytes2Char(uri),\n this.context\n );\n return metadataFromUri.metadata;\n } catch (e: any) {\n if (e.name === 'InvalidUriError') {\n console.warn(\n `The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`\n );\n } else {\n throw e;\n }\n }\n }\n }\n\n private formatMetadataToken(\n tokenId: number,\n metadataTokenMap: MichelsonMap<string, string>,\n metadataFromUri?: any\n ): TokenMetadata {\n const tokenMetadataDecoded = {\n token_id: tokenId,\n };\n for (const keyTokenMetadata of metadataTokenMap.keys()) {\n if (keyTokenMetadata === 'decimals') {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: Number(bytes2Char(metadataTokenMap.get(keyTokenMetadata)!)),\n });\n } else if (!(keyTokenMetadata === '')) {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: bytes2Char(metadataTokenMap.get(keyTokenMetadata)!),\n });\n }\n }\n // if an URI is present, add the fetched properties to the object\n // if a property is in the URI and the map, prevalence is accorded to value from the URI\n if (metadataFromUri) {\n for (const property in metadataFromUri) {\n Object.assign(tokenMetadataDecoded, { [property]: metadataFromUri[property] });\n }\n }\n if (!('decimals' in tokenMetadataDecoded)) {\n throw new InvalidTokenMetadata(tokenMetadataDecoded);\n }\n return tokenMetadataDecoded as TokenMetadata;\n }\n\n private async retrieveTokenMetadataFromBigMap(tokenId: number) {\n const bigmapTokenMetadataId = await this.findTokenMetadataBigMap();\n let pairNatMap;\n try {\n pairNatMap = await this.context.contract.getBigMapKeyByID<{\n token_info: MichelsonMap<string, string>;\n }>(\n bigmapTokenMetadataId['int'].toString(),\n tokenId.toString(),\n new Schema(tokenMetadataBigMapType)\n );\n } catch (err) {\n throw new TokenIdNotFound(tokenId);\n }\n\n const michelsonMap = pairNatMap['token_info'];\n if (!MichelsonMap.isMichelsonMap(michelsonMap)) {\n throw new TokenIdNotFound(tokenId);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n michelsonMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n michelsonMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async findTokenMetadataBigMap(): Promise<BigMapId> {\n const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>(\n await this.context.readProvider.getStorage(this.contractAbstraction.address, 'head'),\n tokenMetadataBigMapType\n );\n if (!tokenMetadataBigMapId || !tokenMetadataBigMapId.int) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n return { int: tokenMetadataBigMapId.int };\n }\n}\n","import { Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport { Tzip12ContractAbstraction } from './tzip12-contract-abstraction';\nimport { MetadataContext } from '@taquito/tzip16';\n\nconst ABSTRACTION_KEY = Symbol('Tzip12ContractAbstractionObjectKey');\n\nexport function tzip12<T extends ContractAbstraction<ContractProvider | Wallet>>(\n abs: T,\n context: Context\n) {\n return Object.assign(abs, {\n // namespace tzip12\n tzip12(\n this: ContractAbstraction<ContractProvider | Wallet> & {\n [ABSTRACTION_KEY]?: Tzip12ContractAbstraction;\n }\n ) {\n if (!this[ABSTRACTION_KEY]) {\n this[ABSTRACTION_KEY] = new Tzip12ContractAbstraction(this, context as MetadataContext);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this[ABSTRACTION_KEY]!;\n },\n });\n}\n","import { Context, Extension } from \"@taquito/taquito\";\nimport { DEFAULT_HANDLERS, MetadataProviderInterface, MetadataProvider } from '@taquito/tzip16'\n\n// The same default metadataProvider is used for tzip16 and tzip12\nexport class Tzip12Module implements Extension {\n private _metadataProvider: MetadataProviderInterface;\n\n constructor(metadataProvider?: MetadataProviderInterface) {\n this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS);\n }\n\n configureContext(context: Context) {\n Object.assign(context, { metadataProvider: this._metadataProvider });\n }\n}","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"a23fb981e79462489c07a1e4656f310390cb1148\",\n \"version\": \"17.1.0\"\n};\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@taquito/michelson-encoder'), require('@taquito/tzip16')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@taquito/michelson-encoder', '@taquito/tzip16'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.taquitoTzip12 = {}, global.michelsonEncoder, global.tzip16));
5
- })(this, (function (exports, michelsonEncoder, tzip16) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@taquito/michelson-encoder'), require('@taquito/tzip16'), require('@taquito/core')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@taquito/michelson-encoder', '@taquito/tzip16', '@taquito/core'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.taquitoTzip12 = {}, global.michelsonEncoder, global.tzip16, global.core));
5
+ })(this, (function (exports, michelsonEncoder, tzip16, core) { 'use strict';
6
6
 
7
7
  /******************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -36,20 +36,21 @@
36
36
 
37
37
  /**
38
38
  * @category Error
39
- * @description Error that indicates the metadata not being found on the contract
39
+ * @description Error indicates the metadata not being found on the contract
40
40
  */
41
- class TokenMetadataNotFound extends Error {
41
+ class TokenMetadataNotFound extends core.TaquitoError {
42
42
  constructor(address) {
43
- super(`No token metadata was found for the contract: ${address}`);
43
+ super();
44
44
  this.address = address;
45
45
  this.name = 'TokenMetadataNotFound';
46
+ this.message = `No token metadata was found for the contract: ${address}`;
46
47
  }
47
48
  }
48
49
  /**
49
50
  * @category Error
50
- * @description Error that indicates the token ID not being found
51
+ * @description Error indicates the token ID not being found
51
52
  */
52
- class TokenIdNotFound extends Error {
53
+ class TokenIdNotFound extends core.TaquitoError {
53
54
  constructor(tokenId) {
54
55
  super(`Could not find token metadata for the token ID: ${tokenId}`);
55
56
  this.tokenId = tokenId;
@@ -58,12 +59,15 @@
58
59
  }
59
60
  /**
60
61
  * @category Error
61
- * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
62
+ * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
62
63
  */
63
- class InvalidTokenMetadata extends Error {
64
- constructor() {
65
- super('Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.');
64
+ class InvalidTokenMetadata extends core.TaquitoError {
65
+ constructor(invalidMetadata) {
66
+ super();
67
+ this.invalidMetadata = invalidMetadata;
66
68
  this.name = 'InvalidTokenMetadata';
69
+ this.message =
70
+ 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';
67
71
  }
68
72
  }
69
73
 
@@ -127,6 +131,7 @@
127
131
  * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.
128
132
  * @param tokenId The ID of the token for which we want to retrieve token metadata
129
133
  * @returns An object of type `TokenMetadata`
134
+ * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}
130
135
  */
131
136
  getTokenMetadata(tokenId) {
132
137
  return __awaiter(this, void 0, void 0, function* () {
@@ -172,7 +177,7 @@
172
177
  return metadataFromUri.metadata;
173
178
  }
174
179
  catch (e) {
175
- if (e.name === 'InvalidUri') {
180
+ if (e.name === 'InvalidUriError') {
176
181
  console.warn(`The URI ${tzip16.bytes2Char(uri)} is present in the token metadata, but is invalid.`);
177
182
  }
178
183
  else {
@@ -208,7 +213,7 @@
208
213
  }
209
214
  }
210
215
  if (!('decimals' in tokenMetadataDecoded)) {
211
- throw new InvalidTokenMetadata();
216
+ throw new InvalidTokenMetadata(tokenMetadataDecoded);
212
217
  }
213
218
  return tokenMetadataDecoded;
214
219
  }
@@ -267,8 +272,8 @@
267
272
 
268
273
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
269
274
  const VERSION = {
270
- "commitHash": "5e47743ada31a9c8118f836c31b50a94d97255a6",
271
- "version": "17.1.0-beta-RC.0"
275
+ "commitHash": "a23fb981e79462489c07a1e4656f310390cb1148",
276
+ "version": "17.1.0"
272
277
  };
273
278
 
274
279
  exports.InvalidTokenMetadata = InvalidTokenMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-tzip12.umd.js","sources":["../src/tzip12-errors.ts","../src/tzip12-contract-abstraction.ts","../src/composer.ts","../src/tzip12-extension.ts","../src/version.ts"],"sourcesContent":["/**\n * @category Error\n * @description Error that indicates the metadata not being found on the contract\n */\nexport class TokenMetadataNotFound extends Error {\n name = 'TokenMetadataNotFound';\n\n constructor(public address: string) {\n super(`No token metadata was found for the contract: ${address}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates the token ID not being found\n */\nexport class TokenIdNotFound extends Error {\n name = 'TokenIdNotFound';\n\n constructor(public tokenId: number) {\n super(`Could not find token metadata for the token ID: ${tokenId}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)\n */\nexport class InvalidTokenMetadata extends Error {\n name = 'InvalidTokenMetadata';\n\n constructor() {\n super(\n 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.'\n );\n }\n}\n","import { MichelsonMap, Schema } from '@taquito/michelson-encoder';\nimport { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport {\n Tzip16ContractAbstraction,\n MetadataContext,\n View,\n bytes2Char,\n BigMapId,\n} from '@taquito/tzip16';\nimport { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from './tzip12-errors';\n\nconst tokenMetadataBigMapType = {\n prim: 'big_map',\n args: [\n { prim: 'nat' },\n {\n prim: 'pair',\n args: [\n { prim: 'nat', annots: ['%token_id'] },\n { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] },\n ],\n },\n ],\n annots: ['%token_metadata'],\n};\n\nexport interface TokenMetadata {\n token_id: number;\n decimals: number;\n name?: string;\n symbol?: string;\n}\n\nexport class Tzip12ContractAbstraction {\n private _tzip16ContractAbstraction: Tzip16ContractAbstraction;\n\n constructor(\n private contractAbstraction: ContractAbstraction<ContractProvider | Wallet>,\n private context: MetadataContext\n ) {\n this._tzip16ContractAbstraction = new Tzip16ContractAbstraction(\n this.contractAbstraction,\n this.context\n );\n }\n\n /**\n * @description Fetches the contract metadata (according to the Tzip-016 standard)\n * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash\n * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016)\n */\n private async getContractMetadata() {\n try {\n const contractMetadata = await this._tzip16ContractAbstraction.getMetadata();\n return contractMetadata.metadata;\n } catch (err) {\n // The contract is not compliant with Tzip-016. There is no contract metadata.\n }\n }\n\n /**\n * @description The Tzip-016 \"interfaces\" field MUST be present in the contract metadata. It should contain \"TZIP-012[version-info]\"\n * @returns True if \"interfaces\" field is present and contains \"TZIP-012\", false otherwise\n */\n async isTzip12Compliant() {\n let isCompliant = false;\n const metadata = await this.getContractMetadata();\n if (metadata) {\n const tzip12Interface = metadata.interfaces?.filter((x) => {\n return x.substring(0, 8) === 'TZIP-012';\n });\n isCompliant = tzip12Interface && tzip12Interface.length !== 0 ? true : false;\n }\n return isCompliant;\n }\n\n /**\n * @description Fetches the token metadata for a specified token ID.\n * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID.\n * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.\n * @param tokenId The ID of the token for which we want to retrieve token metadata\n * @returns An object of type `TokenMetadata`\n */\n async getTokenMetadata(tokenId: number) {\n const tokenMetadata = await this.retrieveTokenMetadataFromView(tokenId);\n return !tokenMetadata ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata;\n }\n\n private async retrieveTokenMetadataFromView(tokenId: number) {\n if (await this.getContractMetadata()) {\n const views = await this._tzip16ContractAbstraction.metadataViews();\n if (views && this.hasTokenMetadataView(views)) {\n return this.executeTokenMetadataView(views['token_metadata'](), tokenId);\n }\n }\n }\n\n private hasTokenMetadataView(views: object) {\n for (const view of Object.keys(views)) {\n if (view === 'token_metadata') {\n return true;\n }\n }\n return false;\n }\n\n private async executeTokenMetadataView(\n tokenMetadataView: View,\n tokenId: number\n ): Promise<TokenMetadata> {\n const tokenMetadata = await tokenMetadataView.executeView(tokenId);\n const tokenMap = Object.values(tokenMetadata)[1];\n if (!MichelsonMap.isMichelsonMap(tokenMap)) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n tokenMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n tokenMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async fetchTokenMetadataFromUri(tokenMetadata: MichelsonMap<string, string>) {\n const uri = tokenMetadata.get('');\n if (uri) {\n try {\n const metadataFromUri = await this.context.metadataProvider.provideMetadata(\n this.contractAbstraction,\n bytes2Char(uri),\n this.context\n );\n return metadataFromUri.metadata;\n } catch (e: any) {\n if (e.name === 'InvalidUri') {\n console.warn(\n `The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`\n );\n } else {\n throw e;\n }\n }\n }\n }\n\n private formatMetadataToken(\n tokenId: number,\n metadataTokenMap: MichelsonMap<string, string>,\n metadataFromUri?: any\n ): TokenMetadata {\n const tokenMetadataDecoded = {\n token_id: tokenId,\n };\n for (const keyTokenMetadata of metadataTokenMap.keys()) {\n if (keyTokenMetadata === 'decimals') {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: Number(bytes2Char(metadataTokenMap.get(keyTokenMetadata)!)),\n });\n } else if (!(keyTokenMetadata === '')) {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: bytes2Char(metadataTokenMap.get(keyTokenMetadata)!),\n });\n }\n }\n // if an URI is present, add the fetched properties to the object\n // if a property is in the URI and the map, prevalence is accorded to value from the URI\n if (metadataFromUri) {\n for (const property in metadataFromUri) {\n Object.assign(tokenMetadataDecoded, { [property]: metadataFromUri[property] });\n }\n }\n if (!('decimals' in tokenMetadataDecoded)) {\n throw new InvalidTokenMetadata();\n }\n return tokenMetadataDecoded as TokenMetadata;\n }\n\n private async retrieveTokenMetadataFromBigMap(tokenId: number) {\n const bigmapTokenMetadataId = await this.findTokenMetadataBigMap();\n let pairNatMap;\n try {\n pairNatMap = await this.context.contract.getBigMapKeyByID<{\n token_info: MichelsonMap<string, string>;\n }>(\n bigmapTokenMetadataId['int'].toString(),\n tokenId.toString(),\n new Schema(tokenMetadataBigMapType)\n );\n } catch (err) {\n throw new TokenIdNotFound(tokenId);\n }\n\n const michelsonMap = pairNatMap['token_info'];\n if (!MichelsonMap.isMichelsonMap(michelsonMap)) {\n throw new TokenIdNotFound(tokenId);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n michelsonMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n michelsonMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async findTokenMetadataBigMap(): Promise<BigMapId> {\n const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>(\n await this.context.readProvider.getStorage(this.contractAbstraction.address, 'head'),\n tokenMetadataBigMapType\n );\n if (!tokenMetadataBigMapId || !tokenMetadataBigMapId.int) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n return { int: tokenMetadataBigMapId.int };\n }\n}\n","import { Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport { Tzip12ContractAbstraction } from './tzip12-contract-abstraction';\nimport { MetadataContext } from '@taquito/tzip16';\n\nconst ABSTRACTION_KEY = Symbol('Tzip12ContractAbstractionObjectKey');\n\nexport function tzip12<T extends ContractAbstraction<ContractProvider | Wallet>>(\n abs: T,\n context: Context\n) {\n return Object.assign(abs, {\n // namespace tzip12\n tzip12(\n this: ContractAbstraction<ContractProvider | Wallet> & {\n [ABSTRACTION_KEY]?: Tzip12ContractAbstraction;\n }\n ) {\n if (!this[ABSTRACTION_KEY]) {\n this[ABSTRACTION_KEY] = new Tzip12ContractAbstraction(this, context as MetadataContext);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this[ABSTRACTION_KEY]!;\n },\n });\n}\n","import { Context, Extension } from \"@taquito/taquito\";\nimport { DEFAULT_HANDLERS, MetadataProviderInterface, MetadataProvider } from '@taquito/tzip16'\n\n// The same default metadataProvider is used for tzip16 and tzip12\nexport class Tzip12Module implements Extension {\n private _metadataProvider: MetadataProviderInterface;\n\n constructor(metadataProvider?: MetadataProviderInterface) {\n this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS);\n }\n\n configureContext(context: Context) {\n Object.assign(context, { metadataProvider: this._metadataProvider });\n }\n}","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"5e47743ada31a9c8118f836c31b50a94d97255a6\",\n \"version\": \"17.1.0-beta-RC.0\"\n};\n"],"names":["Tzip16ContractAbstraction","MichelsonMap","bytes2Char","Schema","MetadataProvider","DEFAULT_HANDLERS"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-tzip12.umd.js","sources":["../src/errors.ts","../src/tzip12-contract-abstraction.ts","../src/composer.ts","../src/tzip12-extension.ts","../src/version.ts"],"sourcesContent":["import { TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error indicates the metadata not being found on the contract\n */\nexport class TokenMetadataNotFound extends TaquitoError {\n constructor(public readonly address: string) {\n super();\n this.name = 'TokenMetadataNotFound';\n this.message = `No token metadata was found for the contract: ${address}`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates the token ID not being found\n */\nexport class TokenIdNotFound extends TaquitoError {\n constructor(public readonly tokenId: number) {\n super(`Could not find token metadata for the token ID: ${tokenId}`);\n this.name = 'TokenIdNotFound';\n }\n}\n\n/**\n * @category Error\n * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)\n */\nexport class InvalidTokenMetadata extends TaquitoError {\n constructor(public readonly invalidMetadata: any) {\n super();\n this.name = 'InvalidTokenMetadata';\n this.message =\n 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.';\n }\n}\n","import { MichelsonMap, Schema } from '@taquito/michelson-encoder';\nimport { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport {\n Tzip16ContractAbstraction,\n MetadataContext,\n View,\n bytes2Char,\n BigMapId,\n} from '@taquito/tzip16';\nimport { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from './errors';\n\nconst tokenMetadataBigMapType = {\n prim: 'big_map',\n args: [\n { prim: 'nat' },\n {\n prim: 'pair',\n args: [\n { prim: 'nat', annots: ['%token_id'] },\n { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] },\n ],\n },\n ],\n annots: ['%token_metadata'],\n};\n\nexport interface TokenMetadata {\n token_id: number;\n decimals: number;\n name?: string;\n symbol?: string;\n}\n\nexport class Tzip12ContractAbstraction {\n private _tzip16ContractAbstraction: Tzip16ContractAbstraction;\n\n constructor(\n private contractAbstraction: ContractAbstraction<ContractProvider | Wallet>,\n private context: MetadataContext\n ) {\n this._tzip16ContractAbstraction = new Tzip16ContractAbstraction(\n this.contractAbstraction,\n this.context\n );\n }\n\n /**\n * @description Fetches the contract metadata (according to the Tzip-016 standard)\n * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash\n * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016)\n */\n private async getContractMetadata() {\n try {\n const contractMetadata = await this._tzip16ContractAbstraction.getMetadata();\n return contractMetadata.metadata;\n } catch (err) {\n // The contract is not compliant with Tzip-016. There is no contract metadata.\n }\n }\n\n /**\n * @description The Tzip-016 \"interfaces\" field MUST be present in the contract metadata. It should contain \"TZIP-012[version-info]\"\n * @returns True if \"interfaces\" field is present and contains \"TZIP-012\", false otherwise\n */\n async isTzip12Compliant() {\n let isCompliant = false;\n const metadata = await this.getContractMetadata();\n if (metadata) {\n const tzip12Interface = metadata.interfaces?.filter((x) => {\n return x.substring(0, 8) === 'TZIP-012';\n });\n isCompliant = tzip12Interface && tzip12Interface.length !== 0 ? true : false;\n }\n return isCompliant;\n }\n\n /**\n * @description Fetches the token metadata for a specified token ID.\n * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID.\n * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.\n * @param tokenId The ID of the token for which we want to retrieve token metadata\n * @returns An object of type `TokenMetadata`\n * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}\n */\n async getTokenMetadata(tokenId: number) {\n const tokenMetadata = await this.retrieveTokenMetadataFromView(tokenId);\n return !tokenMetadata ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata;\n }\n\n private async retrieveTokenMetadataFromView(tokenId: number) {\n if (await this.getContractMetadata()) {\n const views = await this._tzip16ContractAbstraction.metadataViews();\n if (views && this.hasTokenMetadataView(views)) {\n return this.executeTokenMetadataView(views['token_metadata'](), tokenId);\n }\n }\n }\n\n private hasTokenMetadataView(views: object) {\n for (const view of Object.keys(views)) {\n if (view === 'token_metadata') {\n return true;\n }\n }\n return false;\n }\n\n private async executeTokenMetadataView(\n tokenMetadataView: View,\n tokenId: number\n ): Promise<TokenMetadata> {\n const tokenMetadata = await tokenMetadataView.executeView(tokenId);\n const tokenMap = Object.values(tokenMetadata)[1];\n if (!MichelsonMap.isMichelsonMap(tokenMap)) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n tokenMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n tokenMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async fetchTokenMetadataFromUri(tokenMetadata: MichelsonMap<string, string>) {\n const uri = tokenMetadata.get('');\n if (uri) {\n try {\n const metadataFromUri = await this.context.metadataProvider.provideMetadata(\n this.contractAbstraction,\n bytes2Char(uri),\n this.context\n );\n return metadataFromUri.metadata;\n } catch (e: any) {\n if (e.name === 'InvalidUriError') {\n console.warn(\n `The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`\n );\n } else {\n throw e;\n }\n }\n }\n }\n\n private formatMetadataToken(\n tokenId: number,\n metadataTokenMap: MichelsonMap<string, string>,\n metadataFromUri?: any\n ): TokenMetadata {\n const tokenMetadataDecoded = {\n token_id: tokenId,\n };\n for (const keyTokenMetadata of metadataTokenMap.keys()) {\n if (keyTokenMetadata === 'decimals') {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: Number(bytes2Char(metadataTokenMap.get(keyTokenMetadata)!)),\n });\n } else if (!(keyTokenMetadata === '')) {\n Object.assign(tokenMetadataDecoded, {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n [keyTokenMetadata]: bytes2Char(metadataTokenMap.get(keyTokenMetadata)!),\n });\n }\n }\n // if an URI is present, add the fetched properties to the object\n // if a property is in the URI and the map, prevalence is accorded to value from the URI\n if (metadataFromUri) {\n for (const property in metadataFromUri) {\n Object.assign(tokenMetadataDecoded, { [property]: metadataFromUri[property] });\n }\n }\n if (!('decimals' in tokenMetadataDecoded)) {\n throw new InvalidTokenMetadata(tokenMetadataDecoded);\n }\n return tokenMetadataDecoded as TokenMetadata;\n }\n\n private async retrieveTokenMetadataFromBigMap(tokenId: number) {\n const bigmapTokenMetadataId = await this.findTokenMetadataBigMap();\n let pairNatMap;\n try {\n pairNatMap = await this.context.contract.getBigMapKeyByID<{\n token_info: MichelsonMap<string, string>;\n }>(\n bigmapTokenMetadataId['int'].toString(),\n tokenId.toString(),\n new Schema(tokenMetadataBigMapType)\n );\n } catch (err) {\n throw new TokenIdNotFound(tokenId);\n }\n\n const michelsonMap = pairNatMap['token_info'];\n if (!MichelsonMap.isMichelsonMap(michelsonMap)) {\n throw new TokenIdNotFound(tokenId);\n }\n const metadataFromUri = await this.fetchTokenMetadataFromUri(\n michelsonMap as MichelsonMap<string, string>\n );\n return this.formatMetadataToken(\n tokenId,\n michelsonMap as MichelsonMap<string, string>,\n metadataFromUri\n );\n }\n\n private async findTokenMetadataBigMap(): Promise<BigMapId> {\n const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>(\n await this.context.readProvider.getStorage(this.contractAbstraction.address, 'head'),\n tokenMetadataBigMapType\n );\n if (!tokenMetadataBigMapId || !tokenMetadataBigMapId.int) {\n throw new TokenMetadataNotFound(this.contractAbstraction.address);\n }\n return { int: tokenMetadataBigMapId.int };\n }\n}\n","import { Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito';\nimport { Tzip12ContractAbstraction } from './tzip12-contract-abstraction';\nimport { MetadataContext } from '@taquito/tzip16';\n\nconst ABSTRACTION_KEY = Symbol('Tzip12ContractAbstractionObjectKey');\n\nexport function tzip12<T extends ContractAbstraction<ContractProvider | Wallet>>(\n abs: T,\n context: Context\n) {\n return Object.assign(abs, {\n // namespace tzip12\n tzip12(\n this: ContractAbstraction<ContractProvider | Wallet> & {\n [ABSTRACTION_KEY]?: Tzip12ContractAbstraction;\n }\n ) {\n if (!this[ABSTRACTION_KEY]) {\n this[ABSTRACTION_KEY] = new Tzip12ContractAbstraction(this, context as MetadataContext);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this[ABSTRACTION_KEY]!;\n },\n });\n}\n","import { Context, Extension } from \"@taquito/taquito\";\nimport { DEFAULT_HANDLERS, MetadataProviderInterface, MetadataProvider } from '@taquito/tzip16'\n\n// The same default metadataProvider is used for tzip16 and tzip12\nexport class Tzip12Module implements Extension {\n private _metadataProvider: MetadataProviderInterface;\n\n constructor(metadataProvider?: MetadataProviderInterface) {\n this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS);\n }\n\n configureContext(context: Context) {\n Object.assign(context, { metadataProvider: this._metadataProvider });\n }\n}","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"a23fb981e79462489c07a1e4656f310390cb1148\",\n \"version\": \"17.1.0\"\n};\n"],"names":["TaquitoError","Tzip16ContractAbstraction","MichelsonMap","bytes2Char","Schema","MetadataProvider","DEFAULT_HANDLERS"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { TaquitoError } from '@taquito/core';
2
+ /**
3
+ * @category Error
4
+ * @description Error indicates the metadata not being found on the contract
5
+ */
6
+ export declare class TokenMetadataNotFound extends TaquitoError {
7
+ readonly address: string;
8
+ constructor(address: string);
9
+ }
10
+ /**
11
+ * @category Error
12
+ * @description Error indicates the token ID not being found
13
+ */
14
+ export declare class TokenIdNotFound extends TaquitoError {
15
+ readonly tokenId: number;
16
+ constructor(tokenId: number);
17
+ }
18
+ /**
19
+ * @category Error
20
+ * @description Error indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
21
+ */
22
+ export declare class InvalidTokenMetadata extends TaquitoError {
23
+ readonly invalidMetadata: any;
24
+ constructor(invalidMetadata: any);
25
+ }
@@ -4,6 +4,6 @@
4
4
  */
5
5
  export * from './tzip12-contract-abstraction';
6
6
  export * from './composer';
7
- export * from './tzip12-errors';
7
+ export * from './errors';
8
8
  export * from './tzip12-extension';
9
9
  export { VERSION } from './version';
@@ -28,6 +28,7 @@ export declare class Tzip12ContractAbstraction {
28
28
  * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage.
29
29
  * @param tokenId The ID of the token for which we want to retrieve token metadata
30
30
  * @returns An object of type `TokenMetadata`
31
+ * @throws {@link TokenIdNotFound, TokenMetadataNotFound, InvalidTokenMetadata}
31
32
  */
32
33
  getTokenMetadata(tokenId: number): Promise<TokenMetadata>;
33
34
  private retrieveTokenMetadataFromView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taquito/tzip12",
3
- "version": "17.1.0-beta-RC.0",
3
+ "version": "17.1.0",
4
4
  "description": "Tzip12",
5
5
  "keywords": [
6
6
  "tezos",
@@ -63,9 +63,9 @@
63
63
  ]
64
64
  },
65
65
  "dependencies": {
66
- "@taquito/michelson-encoder": "^17.1.0-beta-RC.0",
67
- "@taquito/taquito": "^17.1.0-beta-RC.0",
68
- "@taquito/tzip16": "^17.1.0-beta-RC.0"
66
+ "@taquito/michelson-encoder": "^17.1.0",
67
+ "@taquito/taquito": "^17.1.0",
68
+ "@taquito/tzip16": "^17.1.0"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@types/bluebird": "^3.5.36",
@@ -96,5 +96,5 @@
96
96
  "ts-toolbelt": "^9.6.0",
97
97
  "typescript": "~4.1.5"
98
98
  },
99
- "gitHead": "37b7cea2af882794ddd67b1228df808888af9fc4"
99
+ "gitHead": "8ac541f668bffe24e30a83303aae973c73813adb"
100
100
  }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidTokenMetadata = exports.TokenIdNotFound = exports.TokenMetadataNotFound = void 0;
4
- /**
5
- * @category Error
6
- * @description Error that indicates the metadata not being found on the contract
7
- */
8
- class TokenMetadataNotFound extends Error {
9
- constructor(address) {
10
- super(`No token metadata was found for the contract: ${address}`);
11
- this.address = address;
12
- this.name = 'TokenMetadataNotFound';
13
- }
14
- }
15
- exports.TokenMetadataNotFound = TokenMetadataNotFound;
16
- /**
17
- * @category Error
18
- * @description Error that indicates the token ID not being found
19
- */
20
- class TokenIdNotFound extends Error {
21
- constructor(tokenId) {
22
- super(`Could not find token metadata for the token ID: ${tokenId}`);
23
- this.tokenId = tokenId;
24
- this.name = 'TokenIdNotFound';
25
- }
26
- }
27
- exports.TokenIdNotFound = TokenIdNotFound;
28
- /**
29
- * @category Error
30
- * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
31
- */
32
- class InvalidTokenMetadata extends Error {
33
- constructor() {
34
- super('Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.');
35
- this.name = 'InvalidTokenMetadata';
36
- }
37
- }
38
- exports.InvalidTokenMetadata = InvalidTokenMetadata;
39
- //# sourceMappingURL=tzip12-errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tzip12-errors.js","sourceRoot":"","sources":["../../src/tzip12-errors.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,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;;;GAGG;AACH,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;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAG7C;QACE,KAAK,CACH,yFAAyF,CAC1F,CAAC;QALJ,SAAI,GAAG,sBAAsB,CAAC;IAM9B,CAAC;CACF;AARD,oDAQC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * @category Error
3
- * @description Error that indicates the metadata not being found on the contract
4
- */
5
- export declare class TokenMetadataNotFound extends Error {
6
- address: string;
7
- name: string;
8
- constructor(address: string);
9
- }
10
- /**
11
- * @category Error
12
- * @description Error that indicates the token ID not being found
13
- */
14
- export declare class TokenIdNotFound extends Error {
15
- tokenId: number;
16
- name: string;
17
- constructor(tokenId: number);
18
- }
19
- /**
20
- * @category Error
21
- * @description Error that indicates that the token metadata is invalid (not compliant with the TZIP-12 standard)
22
- */
23
- export declare class InvalidTokenMetadata extends Error {
24
- name: string;
25
- constructor();
26
- }