@flashnet/sdk 0.3.12-rc.3 → 0.3.12-rc.4

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.
@@ -10,5 +10,5 @@ export { AuthManager } from "./src/utils/auth";
10
10
  export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage, } from "./src/utils/intents";
11
11
  export { createWalletSigner } from "./src/utils/signer";
12
12
  export { convertSparkAddressToNetwork, convertSparkAddressToSparkNetwork, decodeSparkAddress, decodeSparkAddressNew, encodeSparkAddress, encodeSparkAddressNew, getNetworkFromAddress, getSparkNetworkFromAddress, isValidPublicKey, isValidSparkAddress, isValidSparkAddressNew, looksLikePublicKey, type SparkAddressFormat, } from "./src/utils/spark-address";
13
- export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, type HumanReadableTokenIdentifier, type SparkHumanReadableTokenIdentifier, } from "./src/utils/tokenAddress";
13
+ export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, getHumanReadableTokenIdentifier, getTokenIdentifier, type HumanReadableTokenIdentifier, SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY, type SparkHumanReadableTokenIdentifier, } from "./src/utils/tokenAddress";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,sDAAsD,EACtD,8CAA8C,EAC9C,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEL,4BAA4B,EAE5B,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAE1B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EAEvC,kCAAkC,EAElC,uCAAuC,EACvC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,GACvC,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,sDAAsD,EACtD,8CAA8C,EAC9C,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEL,4BAA4B,EAE5B,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAE1B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EAEvC,kCAAkC,EAElC,uCAAuC,EACvC,+BAA+B,EAC/B,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,sCAAsC,EACtC,KAAK,iCAAiC,GACvC,MAAM,0BAA0B,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -65,8 +65,11 @@ exports.isValidPublicKey = sparkAddress.isValidPublicKey;
65
65
  exports.isValidSparkAddress = sparkAddress.isValidSparkAddress;
66
66
  exports.isValidSparkAddressNew = sparkAddress.isValidSparkAddressNew;
67
67
  exports.looksLikePublicKey = sparkAddress.looksLikePublicKey;
68
+ exports.SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = tokenAddress.SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY;
68
69
  exports.decodeHumanReadableTokenIdentifier = tokenAddress.decodeHumanReadableTokenIdentifier;
69
70
  exports.decodeSparkHumanReadableTokenIdentifier = tokenAddress.decodeSparkHumanReadableTokenIdentifier;
70
71
  exports.encodeHumanReadableTokenIdentifier = tokenAddress.encodeHumanReadableTokenIdentifier;
71
72
  exports.encodeSparkHumanReadableTokenIdentifier = tokenAddress.encodeSparkHumanReadableTokenIdentifier;
73
+ exports.getHumanReadableTokenIdentifier = tokenAddress.getHumanReadableTokenIdentifier;
74
+ exports.getTokenIdentifier = tokenAddress.getTokenIdentifier;
72
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  export * from "./auth";
2
2
  export * from "./intents";
3
3
  export * from "./spark-address";
4
+ export * from "./tokenAddress";
4
5
  export declare function generateNonce(): string;
5
6
  export declare function toSmallestUnit(amount: number, decimals: number): bigint;
6
7
  export declare function fromSmallestUnit(amount: bigint | string | number, decimals: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAGhC,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAGD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAGD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var sparkAddress = require('./spark-address.js');
4
+ require('@noble/hashes/utils');
5
+ require('@scure/base');
4
6
 
5
7
  // Helper function to generate UUID (nonce)
6
8
  function generateNonce() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;SACgB,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE;AAC5B;AAEA;AACM,SAAU,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC7D,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;AACpD;AAEA;AACM,SAAU,gBAAgB,CAC9B,MAAgC,EAChC,QAAgB,EAAA;AAEhB,IAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,QAAQ;AAC9C;AAEA;AACA;AACM,SAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS,EAAA;AACxD,IAAA,MAAM,SAAS,GAAG,CAAC,CAAS,KAAsB;AAChD,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG;QAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,QAAA,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;AACpC,IAAA,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;;IAGpC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC;IAC/C;;AAGA,IAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AACrB,QAAA,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;IACjC;;AAGA,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;AAEjD,IAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,CAAC;IACV;AACA,IAAA,OAAO,WAAW,GAAG,WAAW,GAAG,EAAE,GAAG,CAAC;AAC3C;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;SACgB,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE;AAC5B;AAEA;AACM,SAAU,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC7D,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;AACpD;AAEA;AACM,SAAU,gBAAgB,CAC9B,MAAgC,EAChC,QAAgB,EAAA;AAEhB,IAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,QAAQ;AAC9C;AAEA;AACA;AACM,SAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS,EAAA;AACxD,IAAA,MAAM,SAAS,GAAG,CAAC,CAAS,KAAsB;AAChD,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG;QAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,QAAA,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;AACpC,IAAA,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;;IAGpC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC;IAC/C;;AAGA,IAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AACrB,QAAA,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;IACjC;;AAGA,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;AAEjD,IAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,CAAC;IACV;AACA,IAAA,OAAO,WAAW,GAAG,WAAW,GAAG,EAAE,GAAG,CAAC;AAC3C;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,12 @@
1
1
  import type { NetworkType, SparkNetworkType } from "../types";
2
2
  export type SparkHumanReadableTokenIdentifier = `btkn1${string}` | `btknrt1${string}` | `btknt1${string}` | `btkns1${string}` | `btknl1${string}`;
3
+ declare const NETWORK_MAGIC: {
4
+ MAINNET: number;
5
+ TESTNET: number;
6
+ REGTEST: number;
7
+ SIGNET: number;
8
+ };
9
+ export declare const SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = "0205fe807e8fe1f368df955cc291f16d840b7f28374b0ed80b80c3e2e0921a0674";
3
10
  /**
4
11
  * Encode token identifier using Spark network type
5
12
  * @param tokenIdentifier Token identifier as hex string or Uint8Array
@@ -32,4 +39,25 @@ export declare function decodeHumanReadableTokenIdentifier(humanReadableTokenIde
32
39
  tokenIdentifier: string;
33
40
  network: NetworkType;
34
41
  };
42
+ export declare function getTokenIdentifier(token: {
43
+ issuerPublicKey: string;
44
+ name: string;
45
+ ticker: string;
46
+ decimals: number;
47
+ maxSupply: bigint;
48
+ isFreezable: boolean;
49
+ network: keyof typeof NETWORK_MAGIC;
50
+ creationEntityPublicKey: string;
51
+ }): Promise<Uint8Array>;
52
+ export declare function getHumanReadableTokenIdentifier(token: {
53
+ issuerPublicKey: string;
54
+ name: string;
55
+ ticker: string;
56
+ decimals: number;
57
+ maxSupply: bigint;
58
+ isFreezable: boolean;
59
+ network: keyof typeof NETWORK_MAGIC;
60
+ creationEntityPublicKey: string;
61
+ }): Promise<SparkHumanReadableTokenIdentifier>;
62
+ export {};
35
63
  //# sourceMappingURL=tokenAddress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa9D,MAAM,MAAM,iCAAiC,GACzC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,gBAAgB,GACxB,iCAAiC,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,4BAA4B,EAAE,iCAAiC,EAC/D,OAAO,EAAE,gBAAgB,GACxB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CA2BxD;AAeD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAiB9B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,OAAO,EAAE,WAAW,GACnB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAyBnD"}
1
+ {"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa9D,MAAM,MAAM,iCAAiC,GACzC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB,QAAA,MAAM,aAAa;;;;;CAKlB,CAAC;AAEF,eAAO,MAAM,sCAAsC,uEACmB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,gBAAgB,GACxB,iCAAiC,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,4BAA4B,EAAE,iCAAiC,EAC/D,OAAO,EAAE,gBAAgB,GACxB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CA2BxD;AAeD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAiB9B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,OAAO,EAAE,WAAW,GACnB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAyBnD;AAgBD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDtB;AAED,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAK7C"}
@@ -10,6 +10,13 @@ const SparkHumanReadableTokenIdentifierNetworkPrefix = {
10
10
  SIGNET: "btkns",
11
11
  LOCAL: "btknl",
12
12
  };
13
+ const NETWORK_MAGIC = {
14
+ MAINNET: 3652501241,
15
+ TESTNET: 118034699,
16
+ REGTEST: 3669344250,
17
+ SIGNET: 1294402529,
18
+ };
19
+ const SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = "0205fe807e8fe1f368df955cc291f16d840b7f28374b0ed80b80c3e2e0921a0674";
13
20
  /**
14
21
  * Encode token identifier using Spark network type
15
22
  * @param tokenIdentifier Token identifier as hex string or Uint8Array
@@ -103,9 +110,67 @@ function decodeHumanReadableTokenIdentifier(humanReadableTokenIdentifier, networ
103
110
  throw new Error("Failed to decode human readable token identifier");
104
111
  }
105
112
  }
113
+ async function sha256(buffer) {
114
+ return new Uint8Array(await crypto.subtle.digest("SHA-256", buffer));
115
+ }
116
+ function bigintTo16ByteArray(value) {
117
+ let valueToTrack = value;
118
+ const buffer = new Uint8Array(16);
119
+ for (let i = 15; i >= 0 && valueToTrack > 0n; i--) {
120
+ buffer[i] = Number(valueToTrack & 255n);
121
+ valueToTrack >>= 8n;
122
+ }
123
+ return buffer;
124
+ }
125
+ async function getTokenIdentifier(token) {
126
+ const encoder = new TextEncoder();
127
+ const allHashes = [
128
+ await sha256(new Uint8Array([1])),
129
+ await sha256(utils.hexToBytes(token.issuerPublicKey)),
130
+ await sha256(encoder.encode(token.name)),
131
+ await sha256(encoder.encode(token.ticker)),
132
+ await sha256(new Uint8Array([token.decimals])),
133
+ ];
134
+ const maxSupplyBytes = bigintTo16ByteArray(token.maxSupply);
135
+ if (maxSupplyBytes.length !== 16) {
136
+ throw Error(`Max supply must be exactly 16 bytes, got ${maxSupplyBytes.length}`);
137
+ }
138
+ allHashes.push(await sha256(maxSupplyBytes));
139
+ allHashes.push(await sha256(new Uint8Array([token.isFreezable ? 1 : 0])));
140
+ const networkMagic = NETWORK_MAGIC[token.network];
141
+ const networkBytes = new Uint8Array(4);
142
+ new DataView(networkBytes.buffer).setUint32(0, networkMagic, false);
143
+ allHashes.push(await sha256(networkBytes));
144
+ const creationEntityBytes = utils.hexToBytes(token.creationEntityPublicKey);
145
+ const isL1 = !creationEntityBytes ||
146
+ (creationEntityBytes.length === 33 &&
147
+ creationEntityBytes.every((byte) => byte === 0));
148
+ if (isL1) {
149
+ allHashes.push(await sha256(new Uint8Array([1])));
150
+ }
151
+ else {
152
+ const layerData = new Uint8Array(34);
153
+ layerData[0] = 2;
154
+ layerData.set(creationEntityBytes, 1);
155
+ allHashes.push(await sha256(layerData));
156
+ }
157
+ const concatenated = new Uint8Array(allHashes.reduce((acc, h) => acc + h.length, 0));
158
+ let offset = 0;
159
+ for (const h of allHashes) {
160
+ concatenated.set(h, offset);
161
+ offset += h.length;
162
+ }
163
+ return await sha256(concatenated);
164
+ }
165
+ async function getHumanReadableTokenIdentifier(token) {
166
+ return encodeSparkHumanReadableTokenIdentifier(await getTokenIdentifier(token), token.network);
167
+ }
106
168
 
169
+ exports.SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY;
107
170
  exports.decodeHumanReadableTokenIdentifier = decodeHumanReadableTokenIdentifier;
108
171
  exports.decodeSparkHumanReadableTokenIdentifier = decodeSparkHumanReadableTokenIdentifier;
109
172
  exports.encodeHumanReadableTokenIdentifier = encodeHumanReadableTokenIdentifier;
110
173
  exports.encodeSparkHumanReadableTokenIdentifier = encodeSparkHumanReadableTokenIdentifier;
174
+ exports.getHumanReadableTokenIdentifier = getHumanReadableTokenIdentifier;
175
+ exports.getTokenIdentifier = getTokenIdentifier;
111
176
  //# sourceMappingURL=tokenAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex"],"mappings":"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"}
1
+ {"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex"],"mappings":"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"}
@@ -10,5 +10,5 @@ export { AuthManager } from "./src/utils/auth";
10
10
  export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage, } from "./src/utils/intents";
11
11
  export { createWalletSigner } from "./src/utils/signer";
12
12
  export { convertSparkAddressToNetwork, convertSparkAddressToSparkNetwork, decodeSparkAddress, decodeSparkAddressNew, encodeSparkAddress, encodeSparkAddressNew, getNetworkFromAddress, getSparkNetworkFromAddress, isValidPublicKey, isValidSparkAddress, isValidSparkAddressNew, looksLikePublicKey, type SparkAddressFormat, } from "./src/utils/spark-address";
13
- export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, type HumanReadableTokenIdentifier, type SparkHumanReadableTokenIdentifier, } from "./src/utils/tokenAddress";
13
+ export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, getHumanReadableTokenIdentifier, getTokenIdentifier, type HumanReadableTokenIdentifier, SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY, type SparkHumanReadableTokenIdentifier, } from "./src/utils/tokenAddress";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,sDAAsD,EACtD,8CAA8C,EAC9C,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEL,4BAA4B,EAE5B,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAE1B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EAEvC,kCAAkC,EAElC,uCAAuC,EACvC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,GACvC,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,sDAAsD,EACtD,8CAA8C,EAC9C,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEL,4BAA4B,EAE5B,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAE1B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EAEvC,kCAAkC,EAElC,uCAAuC,EACvC,+BAA+B,EAC/B,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,sCAAsC,EACtC,KAAK,iCAAiC,GACvC,MAAM,0BAA0B,CAAC"}
package/dist/esm/index.js CHANGED
@@ -8,5 +8,5 @@ export { AuthManager } from './src/utils/auth.js';
8
8
  export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage } from './src/utils/intents.js';
9
9
  export { createWalletSigner } from './src/utils/signer.js';
10
10
  export { convertSparkAddressToNetwork, convertSparkAddressToSparkNetwork, decodeSparkAddress, decodeSparkAddressNew, encodeSparkAddress, encodeSparkAddressNew, getNetworkFromAddress, getSparkNetworkFromAddress, isValidPublicKey, isValidSparkAddress, isValidSparkAddressNew, looksLikePublicKey } from './src/utils/spark-address.js';
11
- export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier } from './src/utils/tokenAddress.js';
11
+ export { SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY, decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, getHumanReadableTokenIdentifier, getTokenIdentifier } from './src/utils/tokenAddress.js';
12
12
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,7 @@
1
1
  export * from "./auth";
2
2
  export * from "./intents";
3
3
  export * from "./spark-address";
4
+ export * from "./tokenAddress";
4
5
  export declare function generateNonce(): string;
5
6
  export declare function toSmallestUnit(amount: number, decimals: number): bigint;
6
7
  export declare function fromSmallestUnit(amount: bigint | string | number, decimals: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAGhC,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAGD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAGD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { convertSparkAddressToNetwork, convertSparkAddressToSparkNetwork, decodeSparkAddress, decodeSparkAddressNew, encodeSparkAddress, encodeSparkAddressNew, getNetworkFromAddress, getSparkNetworkFromAddress, isValidPublicKey, isValidSparkAddress, isValidSparkAddressNew, looksLikePublicKey } from './spark-address.js';
2
+ import '@noble/hashes/utils';
3
+ import '@scure/base';
2
4
 
3
5
  // Helper function to generate UUID (nonce)
4
6
  function generateNonce() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;SACgB,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE;AAC5B;AAEA;AACM,SAAU,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC7D,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;AACpD;AAEA;AACM,SAAU,gBAAgB,CAC9B,MAAgC,EAChC,QAAgB,EAAA;AAEhB,IAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,QAAQ;AAC9C;AAEA;AACA;AACM,SAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS,EAAA;AACxD,IAAA,MAAM,SAAS,GAAG,CAAC,CAAS,KAAsB;AAChD,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG;QAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,QAAA,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;AACpC,IAAA,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;;IAGpC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC;IAC/C;;AAGA,IAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AACrB,QAAA,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;IACjC;;AAGA,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;AAEjD,IAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,CAAC;IACV;AACA,IAAA,OAAO,WAAW,GAAG,WAAW,GAAG,EAAE,GAAG,CAAC;AAC3C;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;SACgB,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE;AAC5B;AAEA;AACM,SAAU,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC7D,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;AACpD;AAEA;AACM,SAAU,gBAAgB,CAC9B,MAAgC,EAChC,QAAgB,EAAA;AAEhB,IAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,QAAQ;AAC9C;AAEA;AACA;AACM,SAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS,EAAA;AACxD,IAAA,MAAM,SAAS,GAAG,CAAC,CAAS,KAAsB;AAChD,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG;QAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,QAAA,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;AACpC,IAAA,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;;IAGpC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC;IAC/C;;AAGA,IAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AACrB,QAAA,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;IACjC;;AAGA,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;AAEjD,IAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,CAAC;IACV;AACA,IAAA,OAAO,WAAW,GAAG,WAAW,GAAG,EAAE,GAAG,CAAC;AAC3C;;;;"}
@@ -1,5 +1,12 @@
1
1
  import type { NetworkType, SparkNetworkType } from "../types";
2
2
  export type SparkHumanReadableTokenIdentifier = `btkn1${string}` | `btknrt1${string}` | `btknt1${string}` | `btkns1${string}` | `btknl1${string}`;
3
+ declare const NETWORK_MAGIC: {
4
+ MAINNET: number;
5
+ TESTNET: number;
6
+ REGTEST: number;
7
+ SIGNET: number;
8
+ };
9
+ export declare const SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = "0205fe807e8fe1f368df955cc291f16d840b7f28374b0ed80b80c3e2e0921a0674";
3
10
  /**
4
11
  * Encode token identifier using Spark network type
5
12
  * @param tokenIdentifier Token identifier as hex string or Uint8Array
@@ -32,4 +39,25 @@ export declare function decodeHumanReadableTokenIdentifier(humanReadableTokenIde
32
39
  tokenIdentifier: string;
33
40
  network: NetworkType;
34
41
  };
42
+ export declare function getTokenIdentifier(token: {
43
+ issuerPublicKey: string;
44
+ name: string;
45
+ ticker: string;
46
+ decimals: number;
47
+ maxSupply: bigint;
48
+ isFreezable: boolean;
49
+ network: keyof typeof NETWORK_MAGIC;
50
+ creationEntityPublicKey: string;
51
+ }): Promise<Uint8Array>;
52
+ export declare function getHumanReadableTokenIdentifier(token: {
53
+ issuerPublicKey: string;
54
+ name: string;
55
+ ticker: string;
56
+ decimals: number;
57
+ maxSupply: bigint;
58
+ isFreezable: boolean;
59
+ network: keyof typeof NETWORK_MAGIC;
60
+ creationEntityPublicKey: string;
61
+ }): Promise<SparkHumanReadableTokenIdentifier>;
62
+ export {};
35
63
  //# sourceMappingURL=tokenAddress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa9D,MAAM,MAAM,iCAAiC,GACzC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,gBAAgB,GACxB,iCAAiC,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,4BAA4B,EAAE,iCAAiC,EAC/D,OAAO,EAAE,gBAAgB,GACxB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CA2BxD;AAeD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAiB9B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,OAAO,EAAE,WAAW,GACnB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAyBnD"}
1
+ {"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa9D,MAAM,MAAM,iCAAiC,GACzC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB,QAAA,MAAM,aAAa;;;;;CAKlB,CAAC;AAEF,eAAO,MAAM,sCAAsC,uEACmB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,gBAAgB,GACxB,iCAAiC,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,4BAA4B,EAAE,iCAAiC,EAC/D,OAAO,EAAE,gBAAgB,GACxB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CA2BxD;AAeD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAiB9B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,OAAO,EAAE,WAAW,GACnB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAyBnD;AAgBD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDtB;AAED,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAK7C"}
@@ -8,6 +8,13 @@ const SparkHumanReadableTokenIdentifierNetworkPrefix = {
8
8
  SIGNET: "btkns",
9
9
  LOCAL: "btknl",
10
10
  };
11
+ const NETWORK_MAGIC = {
12
+ MAINNET: 3652501241,
13
+ TESTNET: 118034699,
14
+ REGTEST: 3669344250,
15
+ SIGNET: 1294402529,
16
+ };
17
+ const SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY = "0205fe807e8fe1f368df955cc291f16d840b7f28374b0ed80b80c3e2e0921a0674";
11
18
  /**
12
19
  * Encode token identifier using Spark network type
13
20
  * @param tokenIdentifier Token identifier as hex string or Uint8Array
@@ -101,6 +108,61 @@ function decodeHumanReadableTokenIdentifier(humanReadableTokenIdentifier, networ
101
108
  throw new Error("Failed to decode human readable token identifier");
102
109
  }
103
110
  }
111
+ async function sha256(buffer) {
112
+ return new Uint8Array(await crypto.subtle.digest("SHA-256", buffer));
113
+ }
114
+ function bigintTo16ByteArray(value) {
115
+ let valueToTrack = value;
116
+ const buffer = new Uint8Array(16);
117
+ for (let i = 15; i >= 0 && valueToTrack > 0n; i--) {
118
+ buffer[i] = Number(valueToTrack & 255n);
119
+ valueToTrack >>= 8n;
120
+ }
121
+ return buffer;
122
+ }
123
+ async function getTokenIdentifier(token) {
124
+ const encoder = new TextEncoder();
125
+ const allHashes = [
126
+ await sha256(new Uint8Array([1])),
127
+ await sha256(hexToBytes(token.issuerPublicKey)),
128
+ await sha256(encoder.encode(token.name)),
129
+ await sha256(encoder.encode(token.ticker)),
130
+ await sha256(new Uint8Array([token.decimals])),
131
+ ];
132
+ const maxSupplyBytes = bigintTo16ByteArray(token.maxSupply);
133
+ if (maxSupplyBytes.length !== 16) {
134
+ throw Error(`Max supply must be exactly 16 bytes, got ${maxSupplyBytes.length}`);
135
+ }
136
+ allHashes.push(await sha256(maxSupplyBytes));
137
+ allHashes.push(await sha256(new Uint8Array([token.isFreezable ? 1 : 0])));
138
+ const networkMagic = NETWORK_MAGIC[token.network];
139
+ const networkBytes = new Uint8Array(4);
140
+ new DataView(networkBytes.buffer).setUint32(0, networkMagic, false);
141
+ allHashes.push(await sha256(networkBytes));
142
+ const creationEntityBytes = hexToBytes(token.creationEntityPublicKey);
143
+ const isL1 = !creationEntityBytes ||
144
+ (creationEntityBytes.length === 33 &&
145
+ creationEntityBytes.every((byte) => byte === 0));
146
+ if (isL1) {
147
+ allHashes.push(await sha256(new Uint8Array([1])));
148
+ }
149
+ else {
150
+ const layerData = new Uint8Array(34);
151
+ layerData[0] = 2;
152
+ layerData.set(creationEntityBytes, 1);
153
+ allHashes.push(await sha256(layerData));
154
+ }
155
+ const concatenated = new Uint8Array(allHashes.reduce((acc, h) => acc + h.length, 0));
156
+ let offset = 0;
157
+ for (const h of allHashes) {
158
+ concatenated.set(h, offset);
159
+ offset += h.length;
160
+ }
161
+ return await sha256(concatenated);
162
+ }
163
+ async function getHumanReadableTokenIdentifier(token) {
164
+ return encodeSparkHumanReadableTokenIdentifier(await getTokenIdentifier(token), token.network);
165
+ }
104
166
 
105
- export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier };
167
+ export { SPARK_TOKEN_CREATION_ENTITY_PUBLIC_KEY, decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier, getHumanReadableTokenIdentifier, getTokenIdentifier };
106
168
  //# sourceMappingURL=tokenAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flashnet/sdk",
3
- "version": "0.3.12-rc.3",
3
+ "version": "0.3.12-rc.4",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",