phantasma-sdk-ts 0.2.0-rc.1 → 0.2.0-rc.10

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 (49) hide show
  1. package/README.md +41 -0
  2. package/dist/core/link/easyConnect.d.ts +2 -0
  3. package/dist/core/link/easyConnect.d.ts.map +1 -1
  4. package/dist/core/link/easyConnect.js +14 -2
  5. package/dist/core/link/phantasmaLink.d.ts +3 -0
  6. package/dist/core/link/phantasmaLink.d.ts.map +1 -1
  7. package/dist/core/link/phantasmaLink.js +53 -2
  8. package/dist/core/rpc/phantasma.d.ts +1 -1
  9. package/dist/core/rpc/phantasma.d.ts.map +1 -1
  10. package/dist/core/rpc/phantasma.js +2 -2
  11. package/dist/core/types/Address.d.ts +1 -0
  12. package/dist/core/types/Address.d.ts.map +1 -1
  13. package/dist/core/types/Address.js +6 -0
  14. package/dist/core/types/Carbon/Blockchain/Extensions/index.d.ts +2 -0
  15. package/dist/core/types/Carbon/Blockchain/Extensions/index.d.ts.map +1 -0
  16. package/dist/core/types/Carbon/Blockchain/Extensions/index.js +17 -0
  17. package/dist/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.d.ts +1 -1
  18. package/dist/core/types/Carbon/Blockchain/Modules/Builders/NftRomBuilder.js +3 -3
  19. package/dist/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.d.ts +1 -1
  20. package/dist/core/types/Carbon/Blockchain/Modules/Builders/SeriesInfoBuilder.js +2 -2
  21. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.d.ts +9 -0
  22. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.d.ts.map +1 -1
  23. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenInfoBuilder.js +38 -2
  24. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.d.ts +1 -1
  25. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.d.ts.map +1 -1
  26. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenMetadataBuilder.js +7 -3
  27. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.d.ts +3 -3
  28. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSchemasBuilder.js +6 -6
  29. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.d.ts +1 -1
  30. package/dist/core/types/Carbon/Blockchain/Modules/Builders/TokenSeriesMetadataBuilder.js +2 -2
  31. package/dist/core/types/Carbon/Blockchain/Modules/TokenHelper.d.ts +5 -0
  32. package/dist/core/types/Carbon/Blockchain/Modules/TokenHelper.d.ts.map +1 -0
  33. package/dist/core/types/Carbon/Blockchain/Modules/TokenHelper.js +16 -0
  34. package/dist/core/types/Carbon/Blockchain/Modules/index.d.ts +2 -0
  35. package/dist/core/types/Carbon/Blockchain/Modules/index.d.ts.map +1 -1
  36. package/dist/core/types/Carbon/Blockchain/Modules/index.js +2 -0
  37. package/dist/core/types/Carbon/Blockchain/TxHelpers/MintNonFungibleTxHelper.d.ts +1 -0
  38. package/dist/core/types/Carbon/Blockchain/TxHelpers/MintNonFungibleTxHelper.d.ts.map +1 -1
  39. package/dist/core/types/Carbon/Blockchain/TxHelpers/MintNonFungibleTxHelper.js +14 -1
  40. package/dist/core/types/Carbon/Blockchain/index.d.ts +4 -0
  41. package/dist/core/types/Carbon/Blockchain/index.d.ts.map +1 -1
  42. package/dist/core/types/Carbon/Blockchain/index.js +4 -0
  43. package/dist/core/types/Carbon/IntX.d.ts +1 -0
  44. package/dist/core/types/Carbon/IntX.d.ts.map +1 -1
  45. package/dist/core/types/Carbon/IntX.js +7 -0
  46. package/dist/core/types/Carbon/index.d.ts +1 -0
  47. package/dist/core/types/Carbon/index.d.ts.map +1 -1
  48. package/dist/core/types/Carbon/index.js +1 -0
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -653,6 +653,10 @@ link.invokeScript(script, callback); //Allows you to do a ReadOnly script operat
653
653
  link.signTx(nexus, script, payload, callback, onErrorCallback); //Signs a Transaction via Wallet (payload can be Null) (Sends results as an Argument to Callback Function)
654
654
  ```
655
655
 
656
+ ```javascript
657
+ link.signCarbonTxAndBroadcast(txMsg, onSuccess, onErrorCallback); //Signs & broadcasts a Carbon TxMsg via wallets that support Phantasma Link v4+
658
+ ```
659
+
656
660
  ```javascript
657
661
  link.signTxPow(nexus, script, payload, proofOfWork, callback, onErrorCallback); //Signs a Transaction via Wallet with ProofOfWork Attached (Used for Contract Deployment)
658
662
 
@@ -722,6 +726,37 @@ link.login(
722
726
  ); //Swap out ecto for 'poltergeist' if wanting to connect to Poltergeist Wallet
723
727
  ```
724
728
 
729
+ ### Carbon Transactions (Link v4+)
730
+
731
+ Wallets that expose Phantasma Link v4 (or higher) can sign and broadcast Carbon `TxMsg` payloads directly. Make sure you log in with `version = 4` when calling `link.login`, then forward the message via `signCarbonTxAndBroadcast`. The wallet will return a serialized `SignedTxMsg` blob that can be re-used locally if needed.
732
+
733
+ ```javascript
734
+ import {
735
+ TxMsg,
736
+ TxTypes,
737
+ SmallString,
738
+ TxMsgTransferFungible,
739
+ Bytes32,
740
+ PhantasmaAPI,
741
+ } from 'phantasma-sdk-ts';
742
+
743
+ const api = new PhantasmaAPI('https://pharpc1.phantasma.info/rpc', null, 'mainnet');
744
+
745
+ const txMsg = new TxMsg(
746
+ TxTypes.TransferFungible,
747
+ BigInt(Math.floor(Date.now() / 1000) + 300), // expiry (UTC seconds)
748
+ 100000n, // max gas
749
+ 0n,
750
+ new Bytes32(senderPublicKeyBytes), // sender address as 32-byte buffer
751
+ SmallString.empty,
752
+ new TxMsgTransferFungible(new Bytes32(receiverPublicKeyBytes), 1n, 10_00000000n)
753
+ );
754
+
755
+ link.signCarbonTxAndBroadcast(txMsg, async ({ signedTx }) => {
756
+ await api.sendCarbonTransaction(signedTx);
757
+ });
758
+ ```
759
+
725
760
  ## EasyConnect
726
761
 
727
762
  EasyConnect is a plug and play wrapper for PhantasmaLink that makes creating a DApp simple and easy.
@@ -747,6 +782,10 @@ link.disconnect(_message: string); //Allows you to disconnect from the wallet wi
747
782
  link.signTransaction(script: string, payload: string, onSuccess, onFail); //Used to send a transaction to Wallet
748
783
  ```
749
784
 
785
+ ```javascript
786
+ link.signCarbonTransaction(txMsg, onSuccess, onFail); //Sends a Carbon TxMsg to the connected wallet (Link v4+)
787
+ ```
788
+
750
789
  ```javascript
751
790
  link.signData(data:any, onSuccess, onFail); //Allows you to sign data with a wallet keypair
752
791
  ```
@@ -792,6 +831,8 @@ export enum ProofOfWork {
792
831
  }
793
832
  ```
794
833
 
834
+ > **Note:** Carbon helpers require a Phantasma Link v4 (or newer) session. When instantiating EasyConnect pass `[4, 'phantasma', providerHint]` (or change `requiredVersion`) before calling `connect`, otherwise wallets will reject Carbon signing requests.
835
+
795
836
  ### Query Function
796
837
 
797
838
  The Query function is an async function that also allows you to use callbacks. You can use it is a promise, or in a chain!
@@ -1,6 +1,7 @@
1
1
  import { PhantasmaLink } from './phantasmaLink';
2
2
  import { ProofOfWork } from './interfaces/ProofOfWork';
3
3
  import { EasyScript, Nexus } from './easyScript';
4
+ import { TxMsg } from '../types/Carbon/Blockchain';
4
5
  export declare class EasyConnect {
5
6
  requiredVersion: number;
6
7
  platform: string;
@@ -17,6 +18,7 @@ export declare class EasyConnect {
17
18
  action(_type?: string, _arguments?: Array<any>, onSuccess?: any, onFail?: any): Promise<void>;
18
19
  signTransaction(script: string, payload?: any, onSuccess?: any, onFail?: any): void;
19
20
  signData(data: any, onSuccess?: any, onFail?: any): void;
21
+ signCarbonTransaction(txMsg: TxMsg, onSuccess?: any, onFail?: any): void;
20
22
  invokeScript(script: string, _callback: any): void;
21
23
  deployContract(script: string, payload?: any, proofOfWork?: ProofOfWork, onSuccess?: any, onFail?: any): void;
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"easyConnect.d.ts","sourceRoot":"","sources":["../../../src/core/link/easyConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,WAAW;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;gBAED,QAAQ,GAAE,KAAK,CAAC,MAAM,CAAQ;IAyB1C,SAAS,CAAC,SAAS,EAAE,MAAM;IAwB3B,OAAO,CACL,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IA0BH,UAAU,CAAC,QAAQ,GAAE,MAA6B;IAK5C,KAAK,CACT,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,MAAM,CAAQ,EAChC,SAAS,GAAE,GAEV;IA4CG,MAAM,CACV,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,GAAG,CAAQ,EAC7B,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAyBH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,QAAQ,CACN,IAAI,EAAE,GAAG,EACT,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAI3C,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,WAAW,GAAE,WAAiC,EAC9C,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;CAIJ"}
1
+ {"version":3,"file":"easyConnect.d.ts","sourceRoot":"","sources":["../../../src/core/link/easyConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEnD,qBAAa,WAAW;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;gBAED,QAAQ,GAAE,KAAK,CAAC,MAAM,CAAQ;IAyB1C,SAAS,CAAC,SAAS,EAAE,MAAM;IAwB3B,OAAO,CACL,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IA0BH,UAAU,CAAC,QAAQ,GAAE,MAA6B;IAK5C,KAAK,CACT,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,MAAM,CAAQ,EAChC,SAAS,GAAE,GAEV;IA4CG,MAAM,CACV,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,GAAG,CAAQ,EAC7B,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAyBH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,QAAQ,CACN,IAAI,EAAE,GAAG,EACT,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,qBAAqB,CACnB,KAAK,EAAE,KAAK,EACZ,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAWH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAI3C,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,WAAW,GAAE,WAAiC,EAC9C,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;CAIJ"}
@@ -11,7 +11,7 @@ class EasyConnect {
11
11
  this.script = new easyScript_1.EasyScript();
12
12
  this.link = new phantasmaLink_1.PhantasmaLink('easyConnect', false);
13
13
  this.connected = false;
14
- this.requiredVersion = 2;
14
+ this.requiredVersion = 4;
15
15
  //Make This Auto In Future
16
16
  this.nexus = easyScript_1.Nexus.Mainnet;
17
17
  if (_options == null) {
@@ -30,7 +30,7 @@ class EasyConnect {
30
30
  this.script = new easyScript_1.EasyScript();
31
31
  }
32
32
  setConfig(_provider) {
33
- this.requiredVersion = 2;
33
+ this.requiredVersion = 4;
34
34
  this.platform = 'phantasma';
35
35
  switch (_provider) {
36
36
  case 'auto':
@@ -147,6 +147,18 @@ class EasyConnect {
147
147
  }) {
148
148
  this.link.signData(data, onSuccess, onFail);
149
149
  }
150
+ signCarbonTransaction(txMsg, onSuccess = (data) => { }, onFail = (data) => {
151
+ console.log('%cError: ' + data, 'color:red');
152
+ }) {
153
+ if (this.connected == true) {
154
+ this.link.signCarbonTxAndBroadcast(txMsg, onSuccess, onFail);
155
+ }
156
+ else {
157
+ const message = 'Wallet is not connected';
158
+ console.log('%c' + message, 'color:red');
159
+ onFail(message);
160
+ }
161
+ }
150
162
  invokeScript(script, _callback) {
151
163
  this.link.invokeScript(script, _callback);
152
164
  }
@@ -1,5 +1,6 @@
1
1
  import { ProofOfWork } from './interfaces/ProofOfWork';
2
2
  import { IAccount } from './interfaces/IAccount';
3
+ import { TxMsg } from '../types/Carbon/Blockchain';
3
4
  export declare class PhantasmaLink {
4
5
  host: string;
5
6
  dapp: any;
@@ -22,6 +23,7 @@ export declare class PhantasmaLink {
22
23
  login(onLoginCallback: (success: boolean) => void, onErrorCallback: (message: string) => void, version?: number, platform?: string, providerHint?: string): void;
23
24
  invokeScript(script: string, callback: (message: string) => void): void;
24
25
  signTx(script: any, payload: string | null, callback: (arg0: string) => void, onErrorCallback: () => void, pow?: ProofOfWork, signature?: string): void;
26
+ signCarbonTxAndBroadcast(txMsg: TxMsg, callback?: (result: any) => void, onErrorCallback?: (message?: string) => void): void;
25
27
  signTxSignature(tx: string, callback: (result: string) => void, onErrorCallback: () => void, signature?: string): void;
26
28
  multiSig(subject: string, callback: (result: string) => void, onErrorCallback: () => void, signature?: string): void;
27
29
  getPeer(callback: (result: string) => void, onErrorCallback: () => void): void;
@@ -37,5 +39,6 @@ export declare class PhantasmaLink {
37
39
  get dappID(): any;
38
40
  sendLinkRequest(request: string, callback: (T: any) => void): void;
39
41
  disconnect(triggered: string | boolean | undefined): void;
42
+ private serializeCarbonTx;
40
43
  }
41
44
  //# sourceMappingURL=phantasmaLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phantasmaLink.d.ts","sourceRoot":"","sources":["../../../src/core/link/phantasmaLink.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,qBAAa,aAAa;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,EAAE,GAAG,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;gBAGL,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,OAAc;IAuBhD,SAAS,QAAS,MAAM,UAItB;IAGF,KAAK,CACH,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,OAAO,GAAE,MAAU,EACnB,QAAQ,GAAE,MAAoB,EAC9B,YAAY,GAAE,MAAsB;IAYtC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAgChE,MAAM,CACJ,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAChC,eAAe,EAAE,MAAM,IAAI,EAC3B,GAAG,cAAmB,EACtB,SAAS,SAAY;IAqEvB,eAAe,CACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAClC,eAAe,EAAE,MAAM,IAAI,EAC3B,SAAS,GAAE,MAAkB;IAqC/B,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAClC,eAAe,EAAE,MAAM,IAAI,EAC3B,SAAS,GAAE,MAAkB;IAqC/B,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,eAAe,EAAE,MAAM,IAAI;IAmBvE,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;IAqBpF,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;IAmBlF,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;IAqB1F,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACnC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,SAAS,GAAE,MAAkB;IAsC/B,YAAY,CAAC,QAAQ,GAAE,OAAe;IAiItC,oBAAoB;IAQpB,MAAM,CAAC,KAAK,EAAE,GAAG;IAMjB,KAAK;IAKL,IAAI,MAAM,CAAC,IAAI,KAAA,EAEd;IAED,IAAI,MAAM,QAET;IAGD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI;IAe3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CAInD"}
1
+ {"version":3,"file":"phantasmaLink.d.ts","sourceRoot":"","sources":["../../../src/core/link/phantasmaLink.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PhantasmaLink = void 0;
4
4
  const vm_1 = require("../vm");
5
5
  const ProofOfWork_1 = require("./interfaces/ProofOfWork");
6
+ const CarbonBlob_1 = require("../types/Carbon/CarbonBlob");
7
+ const Hex_1 = require("../utils/Hex");
6
8
  class PhantasmaLink {
7
9
  //Construct The Link
8
10
  constructor(dappID, logging = true) {
@@ -13,7 +15,7 @@ class PhantasmaLink {
13
15
  console.log(msg);
14
16
  }
15
17
  };
16
- this.version = 2;
18
+ this.version = 4;
17
19
  this.nexus = 'testnet';
18
20
  this.chain = 'main';
19
21
  this.platform = 'poltergeist';
@@ -33,7 +35,7 @@ class PhantasmaLink {
33
35
  this.onError = function (message) { }; //Does Nothing for Now
34
36
  }
35
37
  //Connect To Wallet
36
- login(onLoginCallback, onErrorCallback, version = 2, platform = 'phantasma', providerHint = 'poltergeist') {
38
+ login(onLoginCallback, onErrorCallback, version = 4, platform = 'phantasma', providerHint = 'poltergeist') {
37
39
  this.providerHint = providerHint;
38
40
  this.onLogin = onLoginCallback;
39
41
  this.onError = onErrorCallback;
@@ -136,6 +138,51 @@ class PhantasmaLink {
136
138
  });
137
139
  }
138
140
  // Wallet Transaction Signing
141
+ signCarbonTxAndBroadcast(txMsg, callback = () => { }, onErrorCallback = () => { }) {
142
+ if (!txMsg) {
143
+ const message = 'Error: Invalid Carbon transaction message';
144
+ this.onMessage(message);
145
+ onErrorCallback(message);
146
+ return;
147
+ }
148
+ if (this.version < 4) {
149
+ const message = 'Carbon transactions require a wallet that supports Phantasma Link v4 or higher. Please reconnect with version 4+.';
150
+ this.onMessage(message);
151
+ if (onErrorCallback) {
152
+ onErrorCallback(message);
153
+ }
154
+ return;
155
+ }
156
+ let txHex;
157
+ try {
158
+ txHex = this.serializeCarbonTx(txMsg);
159
+ }
160
+ catch (err) {
161
+ const message = 'Error: Unable to serialize Carbon transaction';
162
+ this.onMessage(message + (err?.message ? ` (${err.message})` : ''));
163
+ onErrorCallback(message);
164
+ return;
165
+ }
166
+ if (txHex.length >= 65536) {
167
+ const message = 'Error: Carbon transaction message is too big!';
168
+ this.onMessage(message);
169
+ onErrorCallback(message);
170
+ return;
171
+ }
172
+ this.onError = onErrorCallback;
173
+ const request = 'signCarbonTxAndBroadcast/' + txHex;
174
+ this.sendLinkRequest(request, (result) => {
175
+ if (result.success) {
176
+ this.onMessage('Carbon transaction signed');
177
+ callback(result);
178
+ }
179
+ else {
180
+ if (onErrorCallback) {
181
+ onErrorCallback(result.error || 'Carbon transaction signing failed');
182
+ }
183
+ }
184
+ });
185
+ }
139
186
  signTxSignature(tx, callback, onErrorCallback, signature = 'Ed25519') {
140
187
  if (!this.socket) {
141
188
  this.onMessage('not logged in');
@@ -459,5 +506,9 @@ class PhantasmaLink {
459
506
  if (this.socket)
460
507
  this.socket.close();
461
508
  }
509
+ serializeCarbonTx(txMsg) {
510
+ const serialized = CarbonBlob_1.CarbonBlob.Serialize(txMsg);
511
+ return (0, Hex_1.bytesToHex)(serialized);
512
+ }
462
513
  }
463
514
  exports.PhantasmaLink = PhantasmaLink;
@@ -65,7 +65,7 @@ export declare class PhantasmaAPI {
65
65
  getOrganizationByName(name: string, extended?: boolean): Promise<Organization>;
66
66
  getOrganizations(extended?: boolean): Promise<Organization[]>;
67
67
  getLeaderboard(name: string): Promise<Leaderboard>;
68
- getTokens(extended?: boolean): Promise<Token[]>;
68
+ getTokens(ownerAddress: string | undefined | null, extended?: boolean): Promise<Token[]>;
69
69
  getToken(symbol: string, extended?: boolean): Promise<Token>;
70
70
  getTokenData(symbol: string, IDtext: string): Promise<TokenData>;
71
71
  getTokenBalance(account: string, tokenSymbol: string, chainInput: string): Promise<Balance>;
@@ -1 +1 @@
1
- {"version":3,"file":"phantasma.d.ts","sourceRoot":"","sources":["../../../src/core/rpc/phantasma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phantasma.d.ts","sourceRoot":"","sources":["../../../src/core/rpc/phantasma.ts"],"names":[],"mappings":"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"}
@@ -261,8 +261,8 @@ class PhantasmaAPI {
261
261
  return (await this.JSONRPC('getLeaderboard', params));
262
262
  }
263
263
  //Returns an array of tokens deployed in Phantasma.
264
- async getTokens(extended = true) {
265
- let params = [extended];
264
+ async getTokens(ownerAddress, extended = true) {
265
+ let params = [ownerAddress, extended];
266
266
  return (await this.JSONRPC('getTokens', params));
267
267
  }
268
268
  //Returns info about a specific token deployed in Phantasma.
@@ -34,6 +34,7 @@ export declare class Address implements ISerializable {
34
34
  compareTo(other: Address): number;
35
35
  equals(other: any): boolean;
36
36
  toString(): string;
37
+ GetPublicKey(): Uint8Array;
37
38
  ToByteArray(): Uint8Array;
38
39
  SerializeData(writer: PBinaryWriter): void;
39
40
  UnserializeData(reader: PBinaryReader): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Address.d.ts","sourceRoot":"","sources":["../../../src/core/types/Address.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI5D,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;IACV,OAAO,IAAI;CACZ;AAED,qBAAa,OAAQ,YAAW,aAAa;IAC3C,gBAAuB,QAAQ,EAAE,MAAM,CAAU;IACjD,gBAAuB,aAAa,EAAE,MAAM,CAAM;IAClD,gBAAuB,qBAAqB,EAAE,MAAM,CAAM;IAE1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAyC;IACrE,gBAAuB,IAAI,EAAE,OAAO,CAAsC;IAE1E,OAAO,CAAC,MAAM,CAAa;IAO3B,IAAW,IAAI,IAAI,WAAW,CAQ7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAUD,IAAW,MAAM,IAAI,OAAO,CAY3B;IAED,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiC;IAE/D,IAAW,IAAI,IAAI,MAAM,CA8BxB;IAED,OAAO;WAYO,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;WAK9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WA+C5B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WASrC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAIrC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;WAiB/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAgBpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOpC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAWjC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQ3B,QAAQ,IAAI,MAAM;IAuBlB,WAAW,IAAI,UAAU;IAIhC,aAAa,CAAC,MAAM,EAAE,aAAa;IAInC,eAAe,CAAC,MAAM,EAAE,aAAa;CAItC"}
1
+ {"version":3,"file":"Address.d.ts","sourceRoot":"","sources":["../../../src/core/types/Address.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI5D,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;IACV,OAAO,IAAI;CACZ;AAED,qBAAa,OAAQ,YAAW,aAAa;IAC3C,gBAAuB,QAAQ,EAAE,MAAM,CAAU;IACjD,gBAAuB,aAAa,EAAE,MAAM,CAAM;IAClD,gBAAuB,qBAAqB,EAAE,MAAM,CAAM;IAE1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAyC;IACrE,gBAAuB,IAAI,EAAE,OAAO,CAAsC;IAE1E,OAAO,CAAC,MAAM,CAAa;IAO3B,IAAW,IAAI,IAAI,WAAW,CAQ7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAUD,IAAW,MAAM,IAAI,OAAO,CAY3B;IAED,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiC;IAE/D,IAAW,IAAI,IAAI,MAAM,CA8BxB;IAED,OAAO;WAYO,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;WAK9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WA+C5B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WASrC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAIrC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;WAiB/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAgBpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOpC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAWjC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQ3B,QAAQ,IAAI,MAAM;IAuBlB,YAAY,IAAI,UAAU;IAQ1B,WAAW,IAAI,UAAU;IAIhC,aAAa,CAAC,MAAM,EAAE,aAAa;IAInC,eAAe,CAAC,MAAM,EAAE,aAAa;CAItC"}
@@ -231,6 +231,12 @@ class Address {
231
231
  }
232
232
  return this._text;
233
233
  }
234
+ GetPublicKey() {
235
+ if (!this._bytes || this._bytes.length !== Address.LengthInBytes) {
236
+ throw new Error('invalid address byte length');
237
+ }
238
+ return this._bytes.slice(2, 34);
239
+ }
234
240
  ToByteArray() {
235
241
  return this._bytes;
236
242
  }
@@ -0,0 +1,2 @@
1
+ export * from "./TxMsgSigner";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./TxMsgSigner"), exports);
@@ -1,5 +1,5 @@
1
1
  import { TokenSchemas } from '../TokenSchemas';
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(phantasmaNftId: bigint, name: string, description: string, imageURL: string, infoURL: string, royalties: number, rom: Uint8Array, tokenSchemas?: TokenSchemas): Uint8Array;
4
4
  }
5
5
  //# sourceMappingURL=NftRomBuilder.d.ts.map
@@ -6,10 +6,10 @@ const Vm_1 = require("../../Vm");
6
6
  const StandardMeta_1 = require("../StandardMeta");
7
7
  const TokenSchemasBuilder_1 = require("./TokenSchemasBuilder");
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(phantasmaNftId, name, description, imageURL, infoURL, royalties, rom, tokenSchemas) {
10
+ tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.prepareStandardTokenSchemas();
11
11
  const wRom = new CarbonSerialization_1.CarbonBinaryWriter();
12
- let vmDynamicStruct = new Vm_1.VmDynamicStruct();
12
+ const vmDynamicStruct = new Vm_1.VmDynamicStruct();
13
13
  vmDynamicStruct.fields = [
14
14
  Vm_1.VmNamedDynamicVariable.from(StandardMeta_1.StandardMeta.id, Vm_1.VmType.Int256, phantasmaNftId),
15
15
  Vm_1.VmNamedDynamicVariable.from('name', Vm_1.VmType.String, name),
@@ -1,6 +1,6 @@
1
1
  import { Bytes32 } from '../../../Bytes32';
2
2
  import { SeriesInfo } from '../SeriesInfo';
3
3
  export declare class SeriesInfoBuilder {
4
- static Build(phantasmaSeriesId: bigint, maxMint: number, maxSupply: number, ownerPublicKey: Bytes32, sharedRom: Uint8Array, metadata?: Uint8Array): SeriesInfo;
4
+ static build(phantasmaSeriesId: bigint, maxMint: number, maxSupply: number, ownerPublicKey: Bytes32, sharedRom: Uint8Array, metadata?: Uint8Array): SeriesInfo;
5
5
  }
6
6
  //# sourceMappingURL=SeriesInfoBuilder.d.ts.map
@@ -5,9 +5,9 @@ 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) {
8
+ static build(phantasmaSeriesId, maxMint, maxSupply, ownerPublicKey, sharedRom, metadata) {
9
9
  metadata =
10
- metadata || TokenSeriesMetadataBuilder_1.TokenSeriesMetadataBuilder.BuildAndSerialize(phantasmaSeriesId, sharedRom, null);
10
+ metadata || TokenSeriesMetadataBuilder_1.TokenSeriesMetadataBuilder.buildAndSerialize(phantasmaSeriesId, sharedRom, null);
11
11
  return new SeriesInfo_1.SeriesInfo({
12
12
  maxMint: maxMint,
13
13
  maxSupply: maxSupply,
@@ -3,5 +3,14 @@ import { IntX } from '../../../IntX';
3
3
  import { TokenInfo } from '../TokenInfo';
4
4
  export declare class TokenInfoBuilder {
5
5
  static build(symbol: string, maxSupply: IntX, isNFT: boolean, decimals: number, creatorPublicKey: Bytes32, metadata?: Uint8Array, tokenSchemas?: Uint8Array): TokenInfo;
6
+ static maxSymbolLength: number;
7
+ /**
8
+ * Mirrors carbon::CheckIsValidSymbol from contracts/token.cpp.
9
+ * Returns true when valid, or false when the symbol must be rejected.
10
+ */
11
+ static checkIsValidSymbol(symbol: string): {
12
+ ok: boolean;
13
+ error: string | null;
14
+ };
6
15
  }
7
16
  //# sourceMappingURL=TokenInfoBuilder.d.ts.map
@@ -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;CAYb"}
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"}
@@ -7,15 +7,51 @@ const TokenInfo_1 = require("../TokenInfo");
7
7
  const TokenSchemasBuilder_1 = require("./TokenSchemasBuilder");
8
8
  class TokenInfoBuilder {
9
9
  static build(symbol, maxSupply, isNFT, decimals, creatorPublicKey, metadata, tokenSchemas) {
10
+ const { ok, error } = this.checkIsValidSymbol(symbol);
11
+ if (!ok) {
12
+ throw Error(error ?? "Unknown error");
13
+ }
10
14
  const tokenInfo = new TokenInfo_1.TokenInfo();
11
15
  tokenInfo.maxSupply = maxSupply;
12
- tokenInfo.flags = isNFT ? CarbonTokenFlags_1.CarbonTokenFlags.NonFungible : CarbonTokenFlags_1.CarbonTokenFlags.BigFungible;
16
+ tokenInfo.flags = 0; // Small fungible
17
+ if (isNFT) {
18
+ if (!maxSupply.is8ByteSafe()) {
19
+ throw Error("NFT maximum supply must fit into Int64");
20
+ }
21
+ tokenInfo.flags = CarbonTokenFlags_1.CarbonTokenFlags.NonFungible;
22
+ }
23
+ else {
24
+ if (!maxSupply.is8ByteSafe()) {
25
+ tokenInfo.flags = CarbonTokenFlags_1.CarbonTokenFlags.BigFungible;
26
+ }
27
+ }
13
28
  tokenInfo.decimals = decimals;
14
29
  tokenInfo.owner = creatorPublicKey;
15
30
  tokenInfo.symbol = new SmallString_1.SmallString(symbol);
16
31
  tokenInfo.metadata = metadata;
17
- tokenInfo.tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.BuildAndSerialize();
32
+ tokenInfo.tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.buildAndSerialize();
18
33
  return tokenInfo;
19
34
  }
35
+ /**
36
+ * Mirrors carbon::CheckIsValidSymbol from contracts/token.cpp.
37
+ * Returns true when valid, or false when the symbol must be rejected.
38
+ */
39
+ static checkIsValidSymbol(symbol) {
40
+ if (!symbol || symbol.length === 0) {
41
+ return { ok: false, error: "Symbol validation error: Empty string is invalid" };
42
+ }
43
+ if (symbol.length > this.maxSymbolLength) {
44
+ return { ok: false, error: "Symbol validation error: Too long" };
45
+ }
46
+ for (let i = 0; i < symbol.length; i++) {
47
+ const code = symbol.charCodeAt(i);
48
+ const isUppercaseAsciiLetter = code >= 0x41 && code <= 0x5a; // 'A'..'Z'
49
+ if (!isUppercaseAsciiLetter) {
50
+ return { ok: false, error: "Symbol validation error: Anything outside A–Z is forbidden (digits, accents, etc.)" };
51
+ }
52
+ }
53
+ return { ok: true, error: null };
54
+ }
20
55
  }
21
56
  exports.TokenInfoBuilder = TokenInfoBuilder;
57
+ TokenInfoBuilder.maxSymbolLength = 255;
@@ -1,4 +1,4 @@
1
1
  export declare class TokenMetadataBuilder {
2
- static buildAndSerialize(fields?: Record<string, string> | undefined | null): Uint8Array;
2
+ static buildAndSerialize(fields?: Record<string, string>): Uint8Array;
3
3
  }
4
4
  //# 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,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU;CAmBzF"}
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,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;CA2BtE"}
@@ -5,10 +5,14 @@ const CarbonSerialization_1 = require("../../../../CarbonSerialization");
5
5
  const Vm_1 = require("../../Vm");
6
6
  class TokenMetadataBuilder {
7
7
  static buildAndSerialize(fields) {
8
- if (fields === undefined && fields === null) {
9
- return new Uint8Array();
8
+ const requiredFields = ['name', 'icon', 'url', 'description'];
9
+ if (!fields || Object.keys(fields).length < requiredFields.length) {
10
+ throw new Error('Token metadata is mandatory');
11
+ }
12
+ const missing = requiredFields.filter(field => typeof fields[field] !== 'string' || fields[field].trim() === '');
13
+ if (missing.length > 0) {
14
+ throw new Error(`Token metadata is missing required fields: ${missing.join(', ')}`);
10
15
  }
11
- fields = fields ?? {};
12
16
  const metadataFields = [];
13
17
  for (const [key, value] of Object.entries(fields)) {
14
18
  metadataFields.push(Vm_1.VmNamedDynamicVariable.from(key, Vm_1.VmType.String, value));
@@ -1,7 +1,7 @@
1
1
  import { TokenSchemas } from '../TokenSchemas';
2
2
  export declare class TokenSchemasBuilder {
3
- static PrepareStandardTokenSchemas(): TokenSchemas;
4
- static BuildAndSerialize(tokenSchemas?: TokenSchemas): Uint8Array;
5
- static BuildAndSerializeHex(tokenSchemas?: TokenSchemas): string;
3
+ static prepareStandardTokenSchemas(): TokenSchemas;
4
+ static buildAndSerialize(tokenSchemas?: TokenSchemas): Uint8Array;
5
+ static buildAndSerializeHex(tokenSchemas?: TokenSchemas): string;
6
6
  }
7
7
  //# sourceMappingURL=TokenSchemasBuilder.d.ts.map
@@ -9,7 +9,7 @@ const VmType_1 = require("../../Vm/VmType");
9
9
  const StandardMeta_1 = require("../StandardMeta");
10
10
  const TokenSchemas_1 = require("../TokenSchemas");
11
11
  class TokenSchemasBuilder {
12
- static PrepareStandardTokenSchemas() {
12
+ static prepareStandardTokenSchemas() {
13
13
  // Serie metadata schema
14
14
  const seriesSchema = new VmStructSchema_1.VmStructSchema();
15
15
  seriesSchema.fields = [];
@@ -38,15 +38,15 @@ class TokenSchemasBuilder {
38
38
  tokenSchemas.ram = ramSchema;
39
39
  return tokenSchemas;
40
40
  }
41
- static BuildAndSerialize(tokenSchemas) {
42
- tokenSchemas = tokenSchemas || this.PrepareStandardTokenSchemas();
41
+ static buildAndSerialize(tokenSchemas) {
42
+ tokenSchemas = tokenSchemas || this.prepareStandardTokenSchemas();
43
43
  const schemaBuf = new CarbonSerialization_1.CarbonBinaryWriter();
44
44
  tokenSchemas.write(schemaBuf);
45
45
  return schemaBuf.toUint8Array();
46
46
  }
47
- static BuildAndSerializeHex(tokenSchemas) {
48
- tokenSchemas = tokenSchemas || this.PrepareStandardTokenSchemas();
49
- return (0, utils_1.bytesToHex)(this.BuildAndSerialize(tokenSchemas));
47
+ static buildAndSerializeHex(tokenSchemas) {
48
+ tokenSchemas = tokenSchemas || this.prepareStandardTokenSchemas();
49
+ return (0, utils_1.bytesToHex)(this.buildAndSerialize(tokenSchemas));
50
50
  }
51
51
  }
52
52
  exports.TokenSchemasBuilder = TokenSchemasBuilder;
@@ -1,5 +1,5 @@
1
1
  import { TokenSchemas } from '../TokenSchemas';
2
2
  export declare class TokenSeriesMetadataBuilder {
3
- static BuildAndSerialize(newPhantasmaSeriesId: bigint, sharedRom: Uint8Array, tokenSchemas?: TokenSchemas): Uint8Array;
3
+ static buildAndSerialize(newPhantasmaSeriesId: bigint, sharedRom: Uint8Array, tokenSchemas?: TokenSchemas): Uint8Array;
4
4
  }
5
5
  //# sourceMappingURL=TokenSeriesMetadataBuilder.d.ts.map
@@ -6,8 +6,8 @@ const Vm_1 = require("../../Vm");
6
6
  const StandardMeta_1 = require("../StandardMeta");
7
7
  const TokenSchemasBuilder_1 = require("./TokenSchemasBuilder");
8
8
  class TokenSeriesMetadataBuilder {
9
- static BuildAndSerialize(newPhantasmaSeriesId, sharedRom, tokenSchemas) {
10
- tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.PrepareStandardTokenSchemas();
9
+ static buildAndSerialize(newPhantasmaSeriesId, sharedRom, tokenSchemas) {
10
+ tokenSchemas = tokenSchemas || TokenSchemasBuilder_1.TokenSchemasBuilder.prepareStandardTokenSchemas();
11
11
  const wMetadata = new CarbonSerialization_1.CarbonBinaryWriter();
12
12
  let vmDynamicStruct = new Vm_1.VmDynamicStruct();
13
13
  vmDynamicStruct.fields = [
@@ -0,0 +1,5 @@
1
+ import { Bytes32 } from '../../Bytes32';
2
+ export declare class TokenHelper {
3
+ static getNftAddress(carbonTokenId: bigint, instanceId: bigint): Bytes32;
4
+ }
5
+ //# sourceMappingURL=TokenHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Modules/TokenHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,qBAAa,WAAW;IACtB,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAWzE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenHelper = void 0;
4
+ const CarbonSerialization_1 = require("../../../CarbonSerialization");
5
+ const Bytes32_1 = require("../../Bytes32");
6
+ class TokenHelper {
7
+ static getNftAddress(carbonTokenId, instanceId) {
8
+ const w = new CarbonSerialization_1.CarbonBinaryWriter();
9
+ w.write(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) // Carbon NFT ID prefix
10
+ );
11
+ w.write8u(carbonTokenId);
12
+ w.write8u(instanceId);
13
+ return new Bytes32_1.Bytes32(w.toUint8Array());
14
+ }
15
+ }
16
+ exports.TokenHelper = TokenHelper;
@@ -1,6 +1,8 @@
1
+ export * from "./Builders";
1
2
  export * from "./SeriesInfo";
2
3
  export * from "./StandardMeta";
3
4
  export * from "./TokenContract_Methods";
5
+ export * from "./TokenHelper";
4
6
  export * from "./TokenInfo";
5
7
  export * from "./TokenSchemas";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/Modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
@@ -14,8 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Builders"), exports);
17
18
  __exportStar(require("./SeriesInfo"), exports);
18
19
  __exportStar(require("./StandardMeta"), exports);
19
20
  __exportStar(require("./TokenContract_Methods"), exports);
21
+ __exportStar(require("./TokenHelper"), exports);
20
22
  __exportStar(require("./TokenInfo"), exports);
21
23
  __exportStar(require("./TokenSchemas"), exports);
@@ -6,5 +6,6 @@ export declare class MintNonFungibleTxHelper {
6
6
  static buildTx(carbonTokenId: bigint, carbonSeriesId: number, senderPublicKey: Bytes32, receiverPublicKey: Bytes32, rom: Uint8Array, ram: Uint8Array, feeOptions?: MintNftFeeOptions, maxData?: bigint, expiry?: bigint): TxMsg;
7
7
  static buildTxAndSign(tokenId: bigint, seriesId: number, signer: PhantasmaKeys, receiverPublicKey: Bytes32, rom: Uint8Array, ram: Uint8Array, feeOptions?: MintNftFeeOptions, maxData?: bigint, expiry?: bigint): Uint8Array;
8
8
  static buildTxAndSignHex(tokenId: bigint, seriesId: number, signer: PhantasmaKeys, receiverPublicKey: Bytes32, rom: Uint8Array, ram: Uint8Array | null | undefined, feeOptions?: MintNftFeeOptions, maxData?: bigint, expiry?: bigint): string;
9
+ static parseResult(carbonTokenId: bigint, resultHex: string): Bytes32[];
9
10
  }
10
11
  //# sourceMappingURL=MintNonFungibleTxHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MintNonFungibleTxHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/TxHelpers/MintNonFungibleTxHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,uBAAuB;IAElC,MAAM,CAAC,OAAO,CACZ,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,OAAO,EACxB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,EACf,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,KAAK;IAyBR,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,EACf,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU;IAiBb,MAAM,CAAC,iBAAiB,CACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;CAcV"}
1
+ {"version":3,"file":"MintNonFungibleTxHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Carbon/Blockchain/TxHelpers/MintNonFungibleTxHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKxC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,uBAAuB;IAElC,MAAM,CAAC,OAAO,CACZ,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,OAAO,EACxB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,EACf,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,KAAK;IAyBR,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,EACf,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU;IAiBb,MAAM,CAAC,iBAAiB,CACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;IAeT,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE;CAexE"}
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MintNonFungibleTxHelper = void 0;
4
4
  const utils_1 = require("../../../../utils");
5
+ const CarbonSerialization_1 = require("../../../CarbonSerialization");
5
6
  const Bytes32_1 = require("../../Bytes32");
6
7
  const SmallString_1 = require("../../SmallString");
7
8
  const TxTypes_1 = require("../../TxTypes");
8
9
  const TxMsgSigner_1 = require("../Extensions/TxMsgSigner");
10
+ const TokenHelper_1 = require("../Modules/TokenHelper");
9
11
  const TxMsg_1 = require("../TxMsg");
10
12
  const TxMsgMintNonFungible_1 = require("../TxMsgMintNonFungible");
11
13
  const FeeOptions_1 = require("./FeeOptions");
@@ -21,7 +23,7 @@ class MintNonFungibleTxHelper {
21
23
  msg.maxData = maxData;
22
24
  msg.gasFrom = senderPublicKey;
23
25
  msg.payload = SmallString_1.SmallString.empty;
24
- let mint = new TxMsgMintNonFungible_1.TxMsgMintNonFungible();
26
+ const mint = new TxMsgMintNonFungible_1.TxMsgMintNonFungible();
25
27
  mint.tokenId = carbonTokenId;
26
28
  mint.seriesId = carbonSeriesId;
27
29
  mint.to = receiverPublicKey;
@@ -41,5 +43,16 @@ class MintNonFungibleTxHelper {
41
43
  const bytes = this.buildTxAndSign(tokenId, seriesId, signer, receiverPublicKey, rom, ram, feeOptions, maxData, expiry);
42
44
  return (0, utils_1.bytesToHex)(bytes);
43
45
  }
46
+ static parseResult(carbonTokenId, resultHex) {
47
+ const result = [];
48
+ const r = new CarbonSerialization_1.CarbonBinaryReader((0, utils_1.hexToBytes)(resultHex));
49
+ const count = r.read4u();
50
+ for (let i = 0; i < count; i++) {
51
+ const instanceId = r.read8u();
52
+ const carbonNftId = TokenHelper_1.TokenHelper.getNftAddress(carbonTokenId, instanceId);
53
+ result.push(carbonNftId);
54
+ }
55
+ return result;
56
+ }
44
57
  }
45
58
  exports.MintNonFungibleTxHelper = MintNonFungibleTxHelper;
@@ -1,3 +1,7 @@
1
+ export * from "./Extensions";
2
+ export * from "./Modules";
3
+ export * from "./TxHelpers";
4
+ export * from "./Vm";
1
5
  export * from "./CarbonTokenFlags";
2
6
  export * from "./ModuleId";
3
7
  export * from "./SignedTxMsg";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/types/Carbon/Blockchain/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/types/Carbon/Blockchain/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,MAAM,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -14,6 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Extensions"), exports);
18
+ __exportStar(require("./Modules"), exports);
19
+ __exportStar(require("./TxHelpers"), exports);
20
+ __exportStar(require("./Vm"), exports);
17
21
  __exportStar(require("./CarbonTokenFlags"), exports);
18
22
  __exportStar(require("./ModuleId"), exports);
19
23
  __exportStar(require("./SignedTxMsg"), exports);
@@ -8,6 +8,7 @@ export declare class IntX implements ICarbonBlob {
8
8
  static fromI64(v: number | bigint): IntX;
9
9
  toBigInt(): bigint;
10
10
  toString(): string;
11
+ is8ByteSafe(): boolean;
11
12
  write(w: CarbonBinaryWriter): void;
12
13
  read(r: CarbonBinaryReader): void;
13
14
  static read(r: CarbonBinaryReader): IntX;
@@ -1 +1 @@
1
- {"version":3,"file":"IntX.d.ts","sourceRoot":"","sources":["../../../../src/core/types/Carbon/IntX.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,IAAK,YAAW,WAAW;IACtC,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAS;IAGtB,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOlC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOxC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAKlB,KAAK,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAwBlC,IAAI,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;IA4CjC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;CAKzC"}
1
+ {"version":3,"file":"IntX.d.ts","sourceRoot":"","sources":["../../../../src/core/types/Carbon/IntX.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,IAAK,YAAW,WAAW;IACtC,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAS;IAGtB,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOlC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOxC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAKlB,WAAW,IAAI,OAAO;IAQtB,KAAK,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAwBlC,IAAI,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;IA4CjC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI;CAKzC"}
@@ -27,6 +27,13 @@ class IntX {
27
27
  toString() {
28
28
  return this.toBigInt().toString();
29
29
  }
30
+ // Returns true when the current value fits into a signed 64-bit integer without overflow.
31
+ is8ByteSafe() {
32
+ const value = this.toBigInt();
33
+ const minI64 = -(1n << 63n);
34
+ const maxI64 = (1n << 63n) - 1n;
35
+ return value >= minI64 && value <= maxI64;
36
+ }
30
37
  // Serialization (must match C# IntX.Write)
31
38
  write(w) {
32
39
  if (this.isBig) {
@@ -3,6 +3,7 @@ export * from "./Bytes16";
3
3
  export * from "./Bytes32";
4
4
  export * from "./Bytes64";
5
5
  export * from "./CarbonBlob";
6
+ export * from "./IntX";
6
7
  export * from "./SmallString";
7
8
  export * from "./TxTypes";
8
9
  export * from "./Witness";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/types/Carbon/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/types/Carbon/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -19,6 +19,7 @@ __exportStar(require("./Bytes16"), exports);
19
19
  __exportStar(require("./Bytes32"), exports);
20
20
  __exportStar(require("./Bytes64"), exports);
21
21
  __exportStar(require("./CarbonBlob"), exports);
22
+ __exportStar(require("./IntX"), exports);
22
23
  __exportStar(require("./SmallString"), exports);
23
24
  __exportStar(require("./TxTypes"), exports);
24
25
  __exportStar(require("./Witness"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phantasma-sdk-ts",
3
- "version": "0.2.0-rc.1",
3
+ "version": "0.2.0-rc.10",
4
4
  "description": "Javascript SDK for interacting with the Phantasma Chain",
5
5
  "author": "Phantasma Team",
6
6
  "main": "dist/index.js",