phantasma-sdk-ts 0.2.0-rc.11 → 0.2.0-rc.12

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.
Files changed (25) hide show
  1. package/dist/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.d.ts +2 -2
  2. package/dist/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.d.ts.map +1 -1
  3. package/dist/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.js +13 -12
  4. package/dist/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.d.ts +2 -1
  5. package/dist/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.d.ts.map +1 -1
  6. package/dist/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.js +2 -3
  7. package/dist/core/types/Carbon/Blockchain/Modules/Builders/StandardMetadataHelper.d.ts +3 -0
  8. package/dist/core/types/Carbon/Blockchain/Modules/Builders/StandardMetadataHelper.d.ts.map +1 -0
  9. package/dist/core/types/Carbon/Blockchain/Modules/Builders/StandardMetadataHelper.js +28 -0
  10. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.d.ts +2 -1
  11. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.d.ts.map +1 -1
  12. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.js +10 -2
  13. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.d.ts +1 -1
  14. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.d.ts.map +1 -1
  15. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.js +3 -0
  16. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.d.ts +30 -3
  17. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.d.ts.map +1 -1
  18. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.js +182 -27
  19. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.d.ts +2 -2
  20. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.d.ts.map +1 -1
  21. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.js +12 -8
  22. package/dist/core/types/Carbon/Blockchain/Vm/VmType.d.ts +1 -0
  23. package/dist/core/types/Carbon/Blockchain/Vm/VmType.d.ts.map +1 -1
  24. package/dist/core/types/Carbon/Blockchain/Vm/VmType.js +36 -1
  25. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { TokenSchemas } from '../TokenSchemas';
1
+ import { VmStructSchema } from '../../Vm';
2
2
  export declare class NftRomBuilder {
3
- static buildAndSerialize(phantasmaNftId: bigint, name: string, description: string, imageURL: string, infoURL: string, royalties: number, rom: Uint8Array, tokenSchemas?: TokenSchemas): Uint8Array;
3
+ static buildAndSerialize(nftRomSchema: VmStructSchema, phantasmaNftId: bigint, name?: string, description?: string, imageURL?: string, infoURL?: string, royalties?: number, rom?: Uint8Array): Uint8Array;
4
4
  }
5
5
  //# sourceMappingURL=NftRomBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NftRomBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,qBAAa,aAAa;IACxB,MAAM,CAAC,iBAAiB,CACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,UAAU,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,UAAU;CAmBd"}
1
+ {"version":3,"file":"NftRomBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAA2C,cAAc,EAAU,MAAM,UAAU,CAAC;AAK3F,qBAAa,aAAa;IACxB,MAAM,CAAC,iBAAiB,CACtB,YAAY,EAAE,cAAc,EAC5B,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,UAAU,GACf,UAAU;CAyBd"}
@@ -4,22 +4,23 @@ exports.NftRomBuilder = void 0;
4
4
  const CarbonSerialization_1 = require("../../../../CarbonSerialization");
5
5
  const Vm_1 = require("../../Vm");
6
6
  const StandardMeta_1 = require("../StandardMeta");
7
- const TokenSchemasBuilder_1 = require("./TokenSchemasBuilder");
7
+ const StandardMetadataHelper_1 = require("./StandardMetadataHelper");
8
8
  class NftRomBuilder {
9
- static buildAndSerialize(phantasmaNftId, name, description, imageURL, infoURL, royalties, rom, tokenSchemas) {
10
- tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.prepareStandardTokenSchemas();
9
+ static buildAndSerialize(nftRomSchema, phantasmaNftId, name, description, imageURL, infoURL, royalties, rom) {
11
10
  const wRom = new CarbonSerialization_1.CarbonBinaryWriter();
12
- const vmDynamicStruct = new Vm_1.VmDynamicStruct();
13
- vmDynamicStruct.fields = [
11
+ const nftRom = new Vm_1.VmDynamicStruct();
12
+ nftRom.fields = [
14
13
  Vm_1.VmNamedDynamicVariable.from(StandardMeta_1.StandardMeta.id, Vm_1.VmType.Int256, phantasmaNftId),
15
- Vm_1.VmNamedDynamicVariable.from('name', Vm_1.VmType.String, name),
16
- Vm_1.VmNamedDynamicVariable.from('description', Vm_1.VmType.String, description),
17
- Vm_1.VmNamedDynamicVariable.from('imageURL', Vm_1.VmType.String, imageURL),
18
- Vm_1.VmNamedDynamicVariable.from('infoURL', Vm_1.VmType.String, infoURL),
19
- Vm_1.VmNamedDynamicVariable.from('royalties', Vm_1.VmType.Int32, royalties),
20
- Vm_1.VmNamedDynamicVariable.from('rom', Vm_1.VmType.Bytes, rom),
14
+ Vm_1.VmNamedDynamicVariable.from('rom', Vm_1.VmType.Bytes, rom ? rom : [])
21
15
  ];
22
- vmDynamicStruct.writeWithSchema(tokenSchemas.rom, wRom);
16
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(nftRom, nftRomSchema, 'name', Vm_1.VmType.String, name);
17
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(nftRom, nftRomSchema, 'description', Vm_1.VmType.String, description);
18
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(nftRom, nftRomSchema, 'imageURL', Vm_1.VmType.String, imageURL);
19
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(nftRom, nftRomSchema, 'infoURL', Vm_1.VmType.String, infoURL);
20
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(nftRom, nftRomSchema, 'royalties', Vm_1.VmType.Int32, royalties);
21
+ nftRom.writeWithSchema(nftRomSchema, wRom);
22
+ // console.log("nftRom.fields.length: ", nftRom.fields.length);
23
+ // TokenSchemasBuilder.logSchema(nftRomSchema);
23
24
  return wRom.toUint8Array();
24
25
  }
25
26
  }
@@ -1,6 +1,7 @@
1
1
  import { Bytes32 } from '../../../Bytes32';
2
+ import { VmStructSchema } from '../../Vm';
2
3
  import { SeriesInfo } from '../SeriesInfo';
3
4
  export declare class SeriesInfoBuilder {
4
- static build(phantasmaSeriesId: bigint, maxMint: number, maxSupply: number, ownerPublicKey: Bytes32, sharedRom: Uint8Array, metadata?: Uint8Array): SeriesInfo;
5
+ static build(seriesSchema: VmStructSchema, phantasmaSeriesId: bigint, maxMint: number, maxSupply: number, ownerPublicKey: Bytes32, sharedName?: string, sharedDescription?: string, sharedImageURL?: string, sharedInfoURL?: string, sharedRoyalties?: number, sharedRom?: Uint8Array): SeriesInfo;
5
6
  }
6
7
  //# sourceMappingURL=SeriesInfoBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SeriesInfoBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CACV,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU;CAad"}
1
+ {"version":3,"file":"SeriesInfoBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CACV,YAAY,EAAE,cAAc,EAC5B,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,SAAS,CAAC,EAAE,UAAU,GACrB,UAAU;CAqBd"}
@@ -5,9 +5,8 @@ const Vm_1 = require("../../Vm");
5
5
  const SeriesInfo_1 = require("../SeriesInfo");
6
6
  const TokenSeriesMetadataBuilder_1 = require("./TokenSeriesMetadataBuilder");
7
7
  class SeriesInfoBuilder {
8
- static build(phantasmaSeriesId, maxMint, maxSupply, ownerPublicKey, sharedRom, metadata) {
9
- metadata =
10
- metadata || TokenSeriesMetadataBuilder_1.TokenSeriesMetadataBuilder.buildAndSerialize(phantasmaSeriesId, sharedRom, null);
8
+ static build(seriesSchema, phantasmaSeriesId, maxMint, maxSupply, ownerPublicKey, sharedName, sharedDescription, sharedImageURL, sharedInfoURL, sharedRoyalties, sharedRom) {
9
+ const metadata = TokenSeriesMetadataBuilder_1.TokenSeriesMetadataBuilder.buildAndSerialize(seriesSchema, phantasmaSeriesId, sharedName, sharedDescription, sharedImageURL, sharedInfoURL, sharedRoyalties, sharedRom);
11
10
  return new SeriesInfo_1.SeriesInfo({
12
11
  maxMint: maxMint,
13
12
  maxSupply: maxSupply,
@@ -0,0 +1,3 @@
1
+ import { VmDynamicStruct, VmStructSchema, VmType } from "../../Vm";
2
+ export declare function pushStandardMetadataField(metadata: VmDynamicStruct, schema: VmStructSchema, name: string, type: VmType, value: string | number | null | undefined): void;
3
+ //# sourceMappingURL=StandardMetadataHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandardMetadataHelper.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/StandardMetadataHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0B,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE3F,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,QAkBjK"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pushStandardMetadataField = void 0;
4
+ const Vm_1 = require("../../Vm");
5
+ function pushStandardMetadataField(metadata, schema, name, type, value) {
6
+ if (typeof value === "undefined" || value === null) {
7
+ if (schema.fields.some(f => f.name.data === name)) {
8
+ throw Error(`Metadata field '${name}' is mandatory`);
9
+ }
10
+ }
11
+ else if (type === Vm_1.VmType.String && typeof value === "string") {
12
+ if (value && value.trim().length != 0) {
13
+ metadata.fields.push(Vm_1.VmNamedDynamicVariable.from(name, type, value));
14
+ }
15
+ else {
16
+ if (schema.fields.some(f => f.name.data === name)) {
17
+ throw Error(`Metadata field '${name}' is mandatory`);
18
+ }
19
+ }
20
+ }
21
+ else if (type === Vm_1.VmType.Int32 && typeof value === "number") {
22
+ metadata.fields.push(Vm_1.VmNamedDynamicVariable.from(name, type, value));
23
+ }
24
+ else {
25
+ throw Error(`Unsupported standard metadata field type '${type}'/'${typeof value}' `);
26
+ }
27
+ }
28
+ exports.pushStandardMetadataField = pushStandardMetadataField;
@@ -1,8 +1,9 @@
1
1
  import { Bytes32 } from '../../../Bytes32';
2
2
  import { IntX } from '../../../IntX';
3
3
  import { TokenInfo } from '../TokenInfo';
4
+ import { TokenSchemas } from '../TokenSchemas';
4
5
  export declare class TokenInfoBuilder {
5
- static build(symbol: string, maxSupply: IntX, isNFT: boolean, decimals: number, creatorPublicKey: Bytes32, metadata?: Uint8Array, tokenSchemas?: Uint8Array): TokenInfo;
6
+ static build(symbol: string, maxSupply: IntX, isNFT: boolean, decimals: number, creatorPublicKey: Bytes32, metadata?: Uint8Array | null | undefined, tokenSchemas?: TokenSchemas | null | undefined): TokenInfo;
6
7
  static maxSymbolLength: number;
7
8
  /**
8
9
  * Mirrors carbon::CheckIsValidSymbol from contracts/token.cpp.
@@ -1 +1 @@
1
- {"version":3,"file":"TokenInfoBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,CAAC,EAAE,UAAU,EACrB,YAAY,CAAC,EAAE,UAAU,GACxB,SAAS;IA8BZ,MAAM,CAAC,eAAe,EAAE,MAAM,CAAO;IACrC;;;MAGE;IACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC;CAkB/E"}
1
+ {"version":3,"file":"TokenInfoBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACxC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAC7C,SAAS;IAwCZ,MAAM,CAAC,eAAe,EAAE,MAAM,CAAO;IACrC;;;MAGE;IACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CAkBjF"}
@@ -28,8 +28,16 @@ class TokenInfoBuilder {
28
28
  tokenInfo.decimals = decimals;
29
29
  tokenInfo.owner = creatorPublicKey;
30
30
  tokenInfo.symbol = new SmallString_1.SmallString(symbol);
31
- tokenInfo.metadata = metadata;
32
- tokenInfo.tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.buildAndSerialize();
31
+ if (isNFT) {
32
+ if (!metadata) {
33
+ throw new Error('metadata is required for NFTs');
34
+ }
35
+ tokenInfo.metadata = metadata;
36
+ if (!tokenSchemas) {
37
+ throw new Error('tokenSchemas is required for NFTs');
38
+ }
39
+ tokenInfo.tokenSchemas = TokenSchemasBuilder_1.TokenSchemasBuilder.serialize(tokenSchemas);
40
+ }
33
41
  return tokenInfo;
34
42
  }
35
43
  /**
@@ -1,7 +1,7 @@
1
1
  export declare class TokenMetadataBuilder {
2
2
  private static readonly iconDataUriPrefixPattern;
3
3
  private static readonly base64PayloadPattern;
4
- static buildAndSerialize(fields?: Record<string, string>): Uint8Array;
4
+ static buildAndSerialize(fields?: Record<string, unknown>): Uint8Array;
5
5
  private static validateIcon;
6
6
  }
7
7
  //# sourceMappingURL=TokenMetadataBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenMetadataBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.ts"],"names":[],"mappings":"AAGA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CACF;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAA4B;IAExE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;IA8BrE,OAAO,CAAC,MAAM,CAAC,YAAY;CAiC5B"}
1
+ {"version":3,"file":"TokenMetadataBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.ts"],"names":[],"mappings":"AAGA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CACF;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAA4B;IAExE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAkCtE,OAAO,CAAC,MAAM,CAAC,YAAY;CAiC5B"}
@@ -9,6 +9,9 @@ class TokenMetadataBuilder {
9
9
  if (!fields || Object.keys(fields).length < requiredFields.length) {
10
10
  throw new Error('Token metadata is mandatory');
11
11
  }
12
+ if (Object.values(fields).some(v => typeof v !== 'string')) {
13
+ throw new Error('All metadata fields must be strings');
14
+ }
12
15
  const missing = requiredFields.filter(field => typeof fields[field] !== 'string' || fields[field].trim() === '');
13
16
  if (missing.length > 0) {
14
17
  throw new Error(`Token metadata is missing required fields: ${missing.join(', ')}`);
@@ -1,7 +1,34 @@
1
+ import { VmStructSchema } from '../../Vm/VmStructSchema';
2
+ import { VmType } from '../../Vm/VmType';
1
3
  import { TokenSchemas } from '../TokenSchemas';
4
+ export declare class TokenSchemasJson {
5
+ seriesMetadata: FieldType[];
6
+ rom: FieldType[];
7
+ ram: FieldType[];
8
+ }
9
+ export declare function parseTokenSchemasJson(json: string): TokenSchemasJson;
10
+ export declare class FieldType {
11
+ name: string;
12
+ type: VmType;
13
+ }
2
14
  export declare class TokenSchemasBuilder {
3
- static prepareStandardTokenSchemas(): TokenSchemas;
4
- static buildAndSerialize(tokenSchemas?: TokenSchemas): Uint8Array;
5
- static buildAndSerializeHex(tokenSchemas?: TokenSchemas): string;
15
+ static seriesDefaultMetadataFields: readonly FieldType[];
16
+ static nftDefaultMetadataFields: readonly FieldType[];
17
+ static standardMetadataFields: readonly FieldType[];
18
+ private static assertMetadataField;
19
+ private static defaultSeriesSchema;
20
+ private static defaultNftRomSchema;
21
+ private static seriesSchemaFromFieldTypes;
22
+ private static nftRomSchemaFromFieldTypes;
23
+ private static nftRamSchemaFromFieldTypes;
24
+ static prepareStandard(sharedMetadata: boolean): TokenSchemas;
25
+ static fromJson(json: string): TokenSchemas;
26
+ static verify(schemas: TokenSchemas): Readonly<{
27
+ ok: boolean;
28
+ error: string | null;
29
+ }>;
30
+ static serialize(tokenSchemas: TokenSchemas): Readonly<Uint8Array>;
31
+ static serializeHex(tokenSchemas: TokenSchemas): Readonly<string>;
32
+ static logSchema(schema: VmStructSchema): void;
6
33
  }
7
34
  //# sourceMappingURL=TokenSchemasBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenSchemasBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,2BAA2B,IAAI,YAAY;IAkClD,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,UAAU;IASjE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM;CAKjE"}
1
+ {"version":3,"file":"TokenSchemasBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,gBAAgB;IAC3B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,GAAG,EAAE,SAAS,EAAE,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAkBpE;AAED,qBAAa,SAAS;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,mBAAmB;IAC9B,OAAc,2BAA2B,EAAE,SAAS,SAAS,EAAE,CAIpD;IAEX,OAAc,wBAAwB,EAAE,SAAS,SAAS,EAAE,CAGjD;IAEX,OAAc,sBAAsB,EAAE,SAAS,SAAS,EAAE,CAM/C;IAEX,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA0BlC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoBlC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAqBlC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkBzC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkBzC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAiBzC,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,GAAG,YAAY;IAe7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAgB3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAmBrF,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC;IAOlE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IAIjE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc;CAGxC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TokenSchemasBuilder = void 0;
3
+ exports.TokenSchemasBuilder = exports.FieldType = exports.parseTokenSchemasJson = exports.TokenSchemasJson = void 0;
4
4
  const utils_1 = require("../../../../../utils");
5
5
  const CarbonSerialization_1 = require("../../../../CarbonSerialization");
6
6
  const VmNamedVariableSchema_1 = require("../../Vm/VmNamedVariableSchema");
@@ -8,45 +8,200 @@ const VmStructSchema_1 = require("../../Vm/VmStructSchema");
8
8
  const VmType_1 = require("../../Vm/VmType");
9
9
  const StandardMeta_1 = require("../StandardMeta");
10
10
  const TokenSchemas_1 = require("../TokenSchemas");
11
+ class TokenSchemasJson {
12
+ }
13
+ exports.TokenSchemasJson = TokenSchemasJson;
14
+ function parseTokenSchemasJson(json) {
15
+ const raw = JSON.parse(json);
16
+ const pickArray = (k) => {
17
+ const arr = raw[k];
18
+ if (!Array.isArray(arr))
19
+ throw new Error(`${k} must be an array`);
20
+ return arr.map((it) => {
21
+ if (typeof it?.name !== 'string')
22
+ throw new Error(`${k} field name must be string`);
23
+ if (typeof it?.type !== 'string')
24
+ throw new Error(`${k} field type must be string`);
25
+ return { name: it.name, type: (0, VmType_1.vmTypeFromString)(it.type) };
26
+ });
27
+ };
28
+ return {
29
+ seriesMetadata: pickArray('seriesMetadata'),
30
+ rom: pickArray('rom'),
31
+ ram: pickArray('ram'),
32
+ };
33
+ }
34
+ exports.parseTokenSchemasJson = parseTokenSchemasJson;
35
+ class FieldType {
36
+ }
37
+ exports.FieldType = FieldType;
11
38
  class TokenSchemasBuilder {
12
- static prepareStandardTokenSchemas() {
13
- // Serie metadata schema
14
- const seriesSchema = new VmStructSchema_1.VmStructSchema();
15
- seriesSchema.fields = [];
39
+ static assertMetadataField(schemas, fieldTypes) {
40
+ fieldTypes.forEach(fieldType => {
41
+ let fieldIsFound = false;
42
+ schemas.forEach(schema => {
43
+ const found = schema.fields.find(x => x.name.data === fieldType.name);
44
+ if (found != undefined) {
45
+ if (found.schema.type != fieldType.type) {
46
+ return { ok: false, error: `Type mismatch for ${fieldType.name} field, must be ${found.schema.type} instead of ${fieldType}` };
47
+ }
48
+ fieldIsFound = true;
49
+ }
50
+ else {
51
+ const found2 = schema.fields.find(x => x.name.data.toLowerCase() === fieldType.name.toLowerCase());
52
+ if (found2 != undefined) {
53
+ return { ok: false, error: `Case mismatch for ${fieldType.name} field, must be ${found2.name}` };
54
+ }
55
+ }
56
+ });
57
+ if (!fieldIsFound) {
58
+ return { ok: false, error: `Mandatory metadata field not found: ${fieldType.name}` };
59
+ }
60
+ });
61
+ return { ok: true, error: null };
62
+ }
63
+ static defaultSeriesSchema(sharedMetadata) {
64
+ // Series metadata schema
65
+ const schema = new VmStructSchema_1.VmStructSchema();
66
+ schema.fields = [];
16
67
  {
17
- seriesSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(StandardMeta_1.StandardMeta.id, VmType_1.VmType.Int256));
18
- seriesSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('mode', VmType_1.VmType.Int8));
19
- seriesSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('rom', VmType_1.VmType.Bytes));
68
+ // Default fields
69
+ this.seriesDefaultMetadataFields.forEach(f => {
70
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
71
+ });
72
+ if (sharedMetadata) {
73
+ this.standardMetadataFields.forEach(f => {
74
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
75
+ });
76
+ }
20
77
  }
21
- // NFT's ROM schema
22
- const romSchema = new VmStructSchema_1.VmStructSchema();
23
- romSchema.fields = [];
78
+ return schema;
79
+ }
80
+ static defaultNftRomSchema(sharedMetadata) {
81
+ // NFT ROM schema
82
+ const schema = new VmStructSchema_1.VmStructSchema();
83
+ schema.fields = [];
84
+ {
85
+ // Default fields
86
+ this.nftDefaultMetadataFields.forEach(f => {
87
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
88
+ });
89
+ if (!sharedMetadata) {
90
+ // They are default for all NFTs
91
+ this.standardMetadataFields.forEach(f => {
92
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
93
+ });
94
+ }
95
+ }
96
+ return schema;
97
+ }
98
+ static seriesSchemaFromFieldTypes(fieldTypes) {
99
+ // Series metadata schema
100
+ const schema = new VmStructSchema_1.VmStructSchema();
101
+ schema.fields = [];
24
102
  {
25
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(StandardMeta_1.StandardMeta.id, VmType_1.VmType.Int256));
26
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('rom', VmType_1.VmType.Bytes));
27
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('name', VmType_1.VmType.String));
28
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('description', VmType_1.VmType.String));
29
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('imageURL', VmType_1.VmType.String));
30
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('infoURL', VmType_1.VmType.String));
31
- romSchema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema('royalties', VmType_1.VmType.Int32));
103
+ // Default fields. Adding them always
104
+ this.seriesDefaultMetadataFields.forEach(f => {
105
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
106
+ });
107
+ fieldTypes.forEach(f => {
108
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
109
+ });
110
+ }
111
+ return schema;
112
+ }
113
+ static nftRomSchemaFromFieldTypes(fieldTypes) {
114
+ // NFT ROM schema
115
+ const schema = new VmStructSchema_1.VmStructSchema();
116
+ schema.fields = [];
117
+ {
118
+ // Default fields. Adding them always
119
+ this.nftDefaultMetadataFields.forEach(f => {
120
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
121
+ });
122
+ fieldTypes.forEach(f => {
123
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
124
+ });
125
+ }
126
+ return schema;
127
+ }
128
+ static nftRamSchemaFromFieldTypes(fieldTypes) {
129
+ if (fieldTypes.length == 0) {
130
+ return new VmStructSchema_1.VmStructSchema([], VmStructSchema_1.VmStructSchema.Flags.DynamicExtras);
32
131
  }
132
+ // RAM schema
133
+ const schema = new VmStructSchema_1.VmStructSchema();
134
+ schema.fields = [];
135
+ {
136
+ fieldTypes.forEach(f => {
137
+ schema.fields.push(new VmNamedVariableSchema_1.VmNamedVariableSchema(f.name, f.type));
138
+ });
139
+ }
140
+ return schema;
141
+ }
142
+ static prepareStandard(sharedMetadata) {
143
+ const tokenSchemas = new TokenSchemas_1.TokenSchemas();
144
+ // Token's series metadata schema
145
+ tokenSchemas.seriesMetadata = this.defaultSeriesSchema(sharedMetadata);
146
+ // NFT's ROM schema
147
+ tokenSchemas.rom = this.defaultNftRomSchema(sharedMetadata);
33
148
  // NFT's RAM schema
34
- const ramSchema = new VmStructSchema_1.VmStructSchema([], VmStructSchema_1.VmStructSchema.Flags.DynamicExtras);
149
+ tokenSchemas.ram = new VmStructSchema_1.VmStructSchema([], VmStructSchema_1.VmStructSchema.Flags.DynamicExtras);
150
+ return tokenSchemas;
151
+ }
152
+ static fromJson(json) {
153
+ const tokenSchemasJson = parseTokenSchemasJson(json);
35
154
  const tokenSchemas = new TokenSchemas_1.TokenSchemas();
36
- tokenSchemas.seriesMetadata = seriesSchema;
37
- tokenSchemas.rom = romSchema;
38
- tokenSchemas.ram = ramSchema;
155
+ tokenSchemas.seriesMetadata = this.seriesSchemaFromFieldTypes(tokenSchemasJson.seriesMetadata);
156
+ tokenSchemas.rom = this.nftRomSchemaFromFieldTypes(tokenSchemasJson.rom);
157
+ tokenSchemas.ram = this.nftRamSchemaFromFieldTypes(tokenSchemasJson.ram);
158
+ const { ok, error } = this.verify(tokenSchemas);
159
+ if (!ok) {
160
+ throw Error(error ?? "Unknown error");
161
+ }
39
162
  return tokenSchemas;
40
163
  }
41
- static buildAndSerialize(tokenSchemas) {
42
- tokenSchemas = tokenSchemas || this.prepareStandardTokenSchemas();
164
+ static verify(schemas) {
165
+ let result = this.assertMetadataField([schemas.seriesMetadata, schemas.rom], this.standardMetadataFields);
166
+ if (!result.ok) {
167
+ return result;
168
+ }
169
+ result = this.assertMetadataField([schemas.seriesMetadata], this.seriesDefaultMetadataFields);
170
+ if (!result.ok) {
171
+ return result;
172
+ }
173
+ result = this.assertMetadataField([schemas.rom], this.nftDefaultMetadataFields);
174
+ if (!result.ok) {
175
+ return result;
176
+ }
177
+ return { ok: true, error: null };
178
+ }
179
+ static serialize(tokenSchemas) {
43
180
  const schemaBuf = new CarbonSerialization_1.CarbonBinaryWriter();
44
181
  tokenSchemas.write(schemaBuf);
45
182
  return schemaBuf.toUint8Array();
46
183
  }
47
- static buildAndSerializeHex(tokenSchemas) {
48
- tokenSchemas = tokenSchemas || this.prepareStandardTokenSchemas();
49
- return (0, utils_1.bytesToHex)(this.buildAndSerialize(tokenSchemas));
184
+ static serializeHex(tokenSchemas) {
185
+ return (0, utils_1.bytesToHex)(this.serialize(tokenSchemas));
186
+ }
187
+ static logSchema(schema) {
188
+ schema.fields.forEach(f => console.log("Schema field: ", f.name.data));
50
189
  }
51
190
  }
52
191
  exports.TokenSchemasBuilder = TokenSchemasBuilder;
192
+ TokenSchemasBuilder.seriesDefaultMetadataFields = [
193
+ { name: StandardMeta_1.StandardMeta.id.data, type: VmType_1.VmType.Int256 },
194
+ { name: 'mode', type: VmType_1.VmType.Int8 },
195
+ { name: 'rom', type: VmType_1.VmType.Bytes }
196
+ ];
197
+ TokenSchemasBuilder.nftDefaultMetadataFields = [
198
+ { name: StandardMeta_1.StandardMeta.id.data, type: VmType_1.VmType.Int256 },
199
+ { name: 'rom', type: VmType_1.VmType.Bytes }
200
+ ];
201
+ TokenSchemasBuilder.standardMetadataFields = [
202
+ { name: 'name', type: VmType_1.VmType.String },
203
+ { name: 'description', type: VmType_1.VmType.String },
204
+ { name: 'imageURL', type: VmType_1.VmType.String },
205
+ { name: 'infoURL', type: VmType_1.VmType.String },
206
+ { name: 'royalties', type: VmType_1.VmType.Int32 }
207
+ ];
@@ -1,5 +1,5 @@
1
- import { TokenSchemas } from '../TokenSchemas';
1
+ import { VmStructSchema } from '../../Vm';
2
2
  export declare class TokenSeriesMetadataBuilder {
3
- static buildAndSerialize(newPhantasmaSeriesId: bigint, sharedRom: Uint8Array, tokenSchemas?: TokenSchemas): Uint8Array;
3
+ static buildAndSerialize(seriesMetadataSchema: VmStructSchema, newPhantasmaSeriesId: bigint, sharedName?: string, sharedDescription?: string, sharedImageURL?: string, sharedInfoURL?: string, sharedRoyalties?: number, sharedRom?: Uint8Array): Uint8Array;
4
4
  }
5
5
  //# sourceMappingURL=TokenSeriesMetadataBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenSeriesMetadataBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,qBAAa,0BAA0B;IACrC,MAAM,CAAC,iBAAiB,CACtB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,EAAE,UAAU,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,UAAU;CAed"}
1
+ {"version":3,"file":"TokenSeriesMetadataBuilder.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAA2C,cAAc,EAAU,MAAM,UAAU,CAAC;AAK3F,qBAAa,0BAA0B;IACrC,MAAM,CAAC,iBAAiB,CACtB,oBAAoB,EAAE,cAAc,EACpC,oBAAoB,EAAE,MAAM,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,SAAS,CAAC,EAAE,UAAU,GACrB,UAAU;CAuBd"}
@@ -4,18 +4,22 @@ exports.TokenSeriesMetadataBuilder = void 0;
4
4
  const CarbonSerialization_1 = require("../../../../CarbonSerialization");
5
5
  const Vm_1 = require("../../Vm");
6
6
  const StandardMeta_1 = require("../StandardMeta");
7
- const TokenSchemasBuilder_1 = require("./TokenSchemasBuilder");
7
+ const StandardMetadataHelper_1 = require("./StandardMetadataHelper");
8
8
  class TokenSeriesMetadataBuilder {
9
- static buildAndSerialize(newPhantasmaSeriesId, sharedRom, tokenSchemas) {
10
- tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.prepareStandardTokenSchemas();
9
+ static buildAndSerialize(seriesMetadataSchema, newPhantasmaSeriesId, sharedName, sharedDescription, sharedImageURL, sharedInfoURL, sharedRoyalties, sharedRom) {
11
10
  const wMetadata = new CarbonSerialization_1.CarbonBinaryWriter();
12
- let vmDynamicStruct = new Vm_1.VmDynamicStruct();
13
- vmDynamicStruct.fields = [
11
+ let seriesMetadata = new Vm_1.VmDynamicStruct();
12
+ seriesMetadata.fields = [
14
13
  Vm_1.VmNamedDynamicVariable.from(StandardMeta_1.StandardMeta.id, Vm_1.VmType.Int256, newPhantasmaSeriesId),
15
- Vm_1.VmNamedDynamicVariable.from('mode', Vm_1.VmType.Int8, sharedRom.length == 0 ? 0 : 1),
16
- Vm_1.VmNamedDynamicVariable.from('rom', Vm_1.VmType.Bytes, sharedRom),
14
+ Vm_1.VmNamedDynamicVariable.from('mode', Vm_1.VmType.Int8, sharedRom == null || sharedRom.length == 0 ? 0 : 1),
15
+ Vm_1.VmNamedDynamicVariable.from('rom', Vm_1.VmType.Bytes, sharedRom ? sharedRom : [])
17
16
  ];
18
- vmDynamicStruct.writeWithSchema(tokenSchemas.seriesMetadata, wMetadata);
17
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(seriesMetadata, seriesMetadataSchema, 'name', Vm_1.VmType.String, sharedName);
18
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(seriesMetadata, seriesMetadataSchema, 'description', Vm_1.VmType.String, sharedDescription);
19
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(seriesMetadata, seriesMetadataSchema, 'imageURL', Vm_1.VmType.String, sharedImageURL);
20
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(seriesMetadata, seriesMetadataSchema, 'infoURL', Vm_1.VmType.String, sharedInfoURL);
21
+ (0, StandardMetadataHelper_1.pushStandardMetadataField)(seriesMetadata, seriesMetadataSchema, 'royalties', Vm_1.VmType.Int32, sharedRoyalties);
22
+ seriesMetadata.writeWithSchema(seriesMetadataSchema, wMetadata);
19
23
  return wMetadata.toUint8Array();
20
24
  }
21
25
  }
@@ -25,4 +25,5 @@ export declare const enum VmType {
25
25
  Array_Bytes64 = 21,
26
26
  Array_String = 23
27
27
  }
28
+ export declare function vmTypeFromString(type: string): VmType;
28
29
  //# sourceMappingURL=VmType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VmType.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Vm/VmType.ts"],"names":[],"mappings":"AAAA,0BAAkB,MAAM;IACtB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,KAAK,IAAS;IACd,MAAM,IAAS;IACf,IAAI,IAAS;IACb,KAAK,IAAS;IACd,KAAK,KAAS;IACd,KAAK,KAAS;IACd,MAAM,KAAS;IACf,OAAO,KAAS;IAChB,OAAO,KAAS;IAChB,OAAO,KAAU;IACjB,MAAM,KAAU;IAEhB,aAAa,IAAkB;IAC/B,WAAW,IAAgB;IAC3B,YAAY,IAAiB;IAC7B,UAAU,IAAe;IACzB,WAAW,IAAgB;IAC3B,WAAW,KAAgB;IAC3B,WAAW,KAAgB;IAC3B,YAAY,KAAiB;IAC7B,aAAa,KAAkB;IAC/B,aAAa,KAAkB;IAC/B,aAAa,KAAkB;IAC/B,YAAY,KAAiB;CAC9B"}
1
+ {"version":3,"file":"VmType.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Vm/VmType.ts"],"names":[],"mappings":"AAAA,0BAAkB,MAAM;IACtB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,KAAK,IAAS;IACd,MAAM,IAAS;IACf,IAAI,IAAS;IACb,KAAK,IAAS;IACd,KAAK,KAAS;IACd,KAAK,KAAS;IACd,MAAM,KAAS;IACf,OAAO,KAAS;IAChB,OAAO,KAAS;IAChB,OAAO,KAAU;IACjB,MAAM,KAAU;IAEhB,aAAa,IAAkB;IAC/B,WAAW,IAAgB;IAC3B,YAAY,IAAiB;IAC7B,UAAU,IAAe;IACzB,WAAW,IAAgB;IAC3B,WAAW,KAAgB;IAC3B,WAAW,KAAgB;IAC3B,YAAY,KAAiB;IAC7B,aAAa,KAAkB;IAC/B,aAAa,KAAkB;IAC/B,aAAa,KAAkB;IAC/B,YAAY,KAAiB;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoCrD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VmType = void 0;
3
+ exports.vmTypeFromString = exports.VmType = void 0;
4
4
  var VmType;
5
5
  (function (VmType) {
6
6
  VmType[VmType["Dynamic"] = 0] = "Dynamic";
@@ -29,3 +29,38 @@ var VmType;
29
29
  VmType[VmType["Array_Bytes64"] = 21] = "Array_Bytes64";
30
30
  VmType[VmType["Array_String"] = 23] = "Array_String";
31
31
  })(VmType = exports.VmType || (exports.VmType = {}));
32
+ function vmTypeFromString(type) {
33
+ const map = {
34
+ Dynamic: VmType.Dynamic,
35
+ Array: VmType.Array,
36
+ Bytes: VmType.Bytes,
37
+ Struct: VmType.Struct,
38
+ Int8: VmType.Int8,
39
+ Int16: VmType.Int16,
40
+ Int32: VmType.Int32,
41
+ Int64: VmType.Int64,
42
+ Int256: VmType.Int256,
43
+ Bytes16: VmType.Bytes16,
44
+ Bytes32: VmType.Bytes32,
45
+ Bytes64: VmType.Bytes64,
46
+ String: VmType.String,
47
+ Array_Dynamic: VmType.Array_Dynamic,
48
+ Array_Bytes: VmType.Array_Bytes,
49
+ Array_Struct: VmType.Array_Struct,
50
+ Array_Int8: VmType.Array_Int8,
51
+ Array_Int16: VmType.Array_Int16,
52
+ Array_Int32: VmType.Array_Int32,
53
+ Array_Int64: VmType.Array_Int64,
54
+ Array_Int256: VmType.Array_Int256,
55
+ Array_Bytes16: VmType.Array_Bytes16,
56
+ Array_Bytes32: VmType.Array_Bytes32,
57
+ Array_Bytes64: VmType.Array_Bytes64,
58
+ Array_String: VmType.Array_String,
59
+ };
60
+ const value = map[type.trim()];
61
+ if (value === undefined) {
62
+ throw new Error(`Unknown VmType: ${type}`);
63
+ }
64
+ return value;
65
+ }
66
+ exports.vmTypeFromString = vmTypeFromString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phantasma-sdk-ts",
3
- "version": "0.2.0-rc.11",
3
+ "version": "0.2.0-rc.12",
4
4
  "description": "Javascript SDK for interacting with the Phantasma Chain",
5
5
  "author": "Phantasma Team",
6
6
  "main": "dist/index.js",