@flashnet/sdk 0.3.12-rc.3 → 0.3.12-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/src/api/typed-endpoints.d.ts +23 -2
- package/dist/cjs/src/api/typed-endpoints.d.ts.map +1 -1
- package/dist/cjs/src/api/typed-endpoints.js +33 -3
- package/dist/cjs/src/api/typed-endpoints.js.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.d.ts +76 -5
- package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.js +214 -19
- package/dist/cjs/src/client/FlashnetClient.js.map +1 -1
- package/dist/cjs/src/types/index.d.ts +225 -14
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js +38 -0
- package/dist/cjs/src/types/index.js.map +1 -1
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -1
- package/dist/cjs/src/utils/index.js +2 -0
- package/dist/cjs/src/utils/index.js.map +1 -1
- package/dist/cjs/src/utils/intents.d.ts +40 -5
- package/dist/cjs/src/utils/intents.d.ts.map +1 -1
- package/dist/cjs/src/utils/intents.js +60 -11
- package/dist/cjs/src/utils/intents.js.map +1 -1
- package/dist/cjs/src/utils/tokenAddress.d.ts +28 -0
- package/dist/cjs/src/utils/tokenAddress.d.ts.map +1 -1
- package/dist/cjs/src/utils/tokenAddress.js +65 -0
- package/dist/cjs/src/utils/tokenAddress.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/src/api/typed-endpoints.d.ts +23 -2
- package/dist/esm/src/api/typed-endpoints.d.ts.map +1 -1
- package/dist/esm/src/api/typed-endpoints.js +33 -3
- package/dist/esm/src/api/typed-endpoints.js.map +1 -1
- package/dist/esm/src/client/FlashnetClient.d.ts +76 -5
- package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/esm/src/client/FlashnetClient.js +215 -20
- package/dist/esm/src/client/FlashnetClient.js.map +1 -1
- package/dist/esm/src/types/index.d.ts +225 -14
- package/dist/esm/src/types/index.d.ts.map +1 -1
- package/dist/esm/src/types/index.js +39 -1
- package/dist/esm/src/types/index.js.map +1 -1
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js +2 -0
- package/dist/esm/src/utils/index.js.map +1 -1
- package/dist/esm/src/utils/intents.d.ts +40 -5
- package/dist/esm/src/utils/intents.d.ts.map +1 -1
- package/dist/esm/src/utils/intents.js +58 -12
- package/dist/esm/src/utils/intents.js.map +1 -1
- package/dist/esm/src/utils/tokenAddress.d.ts +28 -0
- package/dist/esm/src/utils/tokenAddress.d.ts.map +1 -1
- package/dist/esm/src/utils/tokenAddress.js +63 -1
- package/dist/esm/src/utils/tokenAddress.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,15 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
function generatePoolInitializationIntentMessage(params) {
|
|
7
7
|
const intentMessage = {
|
|
8
|
-
poolOwnerPublicKey: params.poolOwnerPublicKey,
|
|
9
|
-
assetATokenPublicKey: params.assetAAddress,
|
|
10
|
-
assetBTokenPublicKey: params.assetBAddress,
|
|
11
|
-
assetAInitialReserve: params.assetAInitialReserve,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
poolOwnerPublicKey: params.poolOwnerPublicKey.toString(),
|
|
9
|
+
assetATokenPublicKey: params.assetAAddress.toString(),
|
|
10
|
+
assetBTokenPublicKey: params.assetBAddress.toString(),
|
|
11
|
+
assetAInitialReserve: params.assetAInitialReserve.toString(),
|
|
12
|
+
virtualReserveA: params.virtualReserveA.toString(),
|
|
13
|
+
virtualReserveB: params.virtualReserveB.toString(),
|
|
14
|
+
threshold: params.threshold.toString(),
|
|
15
|
+
totalHostFeeRateBps: params.totalHostFeeRateBps.toString(),
|
|
16
|
+
lpFeeRateBps: params.lpFeeRateBps.toString(),
|
|
17
|
+
nonce: params.nonce.toString(),
|
|
17
18
|
};
|
|
18
19
|
return new TextEncoder().encode(JSON.stringify(intentMessage));
|
|
19
20
|
}
|
|
@@ -79,6 +80,8 @@ function generateAddLiquidityIntentMessage(params) {
|
|
|
79
80
|
assetBSparkTransferId: params.assetBSparkTransferId,
|
|
80
81
|
assetAAmount: BigInt(params.assetAAmount).toString(),
|
|
81
82
|
assetBAmount: BigInt(params.assetBAmount).toString(),
|
|
83
|
+
assetAMinAmountIn: BigInt(params.assetAMinAmountIn).toString(),
|
|
84
|
+
assetBMinAmountIn: BigInt(params.assetBMinAmountIn).toString(),
|
|
82
85
|
nonce: params.nonce,
|
|
83
86
|
};
|
|
84
87
|
// Return as Uint8Array for consistent handling
|
|
@@ -121,7 +124,6 @@ function generateWithdrawHostFeesIntentMessage(params) {
|
|
|
121
124
|
const signingPayload = {
|
|
122
125
|
hostPublicKey: params.hostPublicKey,
|
|
123
126
|
lpIdentityPublicKey: params.lpIdentityPublicKey,
|
|
124
|
-
assetAAmount: params.assetAAmount,
|
|
125
127
|
assetBAmount: params.assetBAmount,
|
|
126
128
|
nonce: params.nonce,
|
|
127
129
|
};
|
|
@@ -135,7 +137,6 @@ function generateWithdrawIntegratorFeesIntentMessage(params) {
|
|
|
135
137
|
const signingPayload = {
|
|
136
138
|
integratorPublicKey: params.integratorPublicKey,
|
|
137
139
|
lpIdentityPublicKey: params.lpIdentityPublicKey,
|
|
138
|
-
assetAAmount: params.assetAAmount,
|
|
139
140
|
assetBAmount: params.assetBAmount,
|
|
140
141
|
nonce: params.nonce,
|
|
141
142
|
};
|
|
@@ -157,6 +158,51 @@ function generateRouteSwapIntentMessage(params) {
|
|
|
157
158
|
};
|
|
158
159
|
return new TextEncoder().encode(JSON.stringify(signingPayload));
|
|
159
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Generates an escrow creation intent message.
|
|
163
|
+
* @param params Parameters for creating an escrow.
|
|
164
|
+
* @returns The serialized intent message.
|
|
165
|
+
*/
|
|
166
|
+
function generateCreateEscrowIntentMessage(params) {
|
|
167
|
+
const intentMessage = {
|
|
168
|
+
creatorPublicKey: params.creatorPublicKey,
|
|
169
|
+
assetId: params.assetId,
|
|
170
|
+
assetAmount: params.assetAmount,
|
|
171
|
+
recipients: params.recipients,
|
|
172
|
+
claimConditions: params.claimConditions,
|
|
173
|
+
abandonHost: params.abandonHost,
|
|
174
|
+
abandonConditions: params.abandonConditions,
|
|
175
|
+
nonce: params.nonce,
|
|
176
|
+
};
|
|
177
|
+
return new TextEncoder().encode(JSON.stringify(intentMessage));
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Generates an escrow funding intent message.
|
|
181
|
+
* @param params Parameters for funding an escrow.
|
|
182
|
+
* @returns The serialized intent message.
|
|
183
|
+
*/
|
|
184
|
+
function generateFundEscrowIntentMessage(params) {
|
|
185
|
+
const intentMessage = {
|
|
186
|
+
escrowId: params.escrowId,
|
|
187
|
+
creatorPublicKey: params.creatorPublicKey,
|
|
188
|
+
sparkTransferId: params.sparkTransferId,
|
|
189
|
+
nonce: params.nonce,
|
|
190
|
+
};
|
|
191
|
+
return new TextEncoder().encode(JSON.stringify(intentMessage));
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Generates an escrow claim intent message.
|
|
195
|
+
* @param params Parameters for claiming from an escrow.
|
|
196
|
+
* @returns The serialized intent message.
|
|
197
|
+
*/
|
|
198
|
+
function generateClaimEscrowIntentMessage(params) {
|
|
199
|
+
const intentMessage = {
|
|
200
|
+
escrowId: params.escrowId,
|
|
201
|
+
recipientPublicKey: params.recipientPublicKey,
|
|
202
|
+
nonce: params.nonce,
|
|
203
|
+
};
|
|
204
|
+
return new TextEncoder().encode(JSON.stringify(intentMessage));
|
|
205
|
+
}
|
|
160
206
|
|
|
161
|
-
export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateRouteSwapIntentMessage, generateWithdrawHostFeesIntentMessage, generateWithdrawIntegratorFeesIntentMessage };
|
|
207
|
+
export { generateAddLiquidityIntentMessage, generateClaimEscrowIntentMessage, generateConstantProductPoolInitializationIntentMessage, generateCreateEscrowIntentMessage, generateFundEscrowIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateRouteSwapIntentMessage, generateWithdrawHostFeesIntentMessage, generateWithdrawIntegratorFeesIntentMessage };
|
|
162
208
|
//# sourceMappingURL=intents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intents.js","sources":["../../../../../../src/utils/intents.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intents.js","sources":["../../../../../../src/utils/intents.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -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":";;;AAIA,MAAM,8CAA8C,GAGhD;AACF,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,KAAK,EAAE,OAAO;CACf;AASD;;;;;AAKG;AACG,SAAU,uCAAuC,CACrD,eAAoC,EACpC,OAAyB,EAAA;AAEzB,IAAA,IAAI;;AAEF,QAAA,MAAM,oBAAoB,GACxB,OAAO,eAAe,KAAK;AACzB,cAAE,UAAU,CAAC,eAAe;cAC1B,eAAe;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACnD,QAAA,OAAO,OAAO,CAAC,MAAM,CACnB,8CAA8C,CAAC,OAAO,CAAC,EACvD,KAAK,EACL,GAAG,CACiC;IACxC;AAAE,IAAA,MAAM;AACN,QAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;IAC3E;AACF;AAEA;;;;;AAKG;AACG,SAAU,uCAAuC,CACrD,4BAA+D,EAC/D,OAAyB,EAAA;AAEzB,IAAA,IAAI;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAC5B,4BAAiE,EACjE,GAAG,CACJ;QAED,IACE,OAAO,CAAC,MAAM,KAAK,8CAA8C,CAAC,OAAO,CAAC,EAC1E;AACA,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,gEAAA,EAAmE,8CAA8C,CAAC,OAAO,CAAC,CAAA,WAAA,EAAc,OAAO,CAAC,MAAM,CAAA,CAAA,CAAG,CAC1J;QACH;QAEA,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAExD,OAAO;AACL,YAAA,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC;YAC5C,OAAO;SACR;IACH;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,MAAM,KAAK;QACb;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;IAC3E;AACF;AAEA;AAEA;;AAEG;AACH,MAAM,yCAAyC,GAAgC;AAC7E,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,KAAK,EAAE,OAAO;CACf;AAYD;;AAEG;AACG,SAAU,kCAAkC,CAChD,eAAoC,EACpC,OAAoB,EAAA;AAEpB,IAAA,IAAI;;AAEF,QAAA,MAAM,oBAAoB,GACxB,OAAO,eAAe,KAAK;AACzB,cAAE,UAAU,CAAC,eAAe;cAC1B,eAAe;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACnD,QAAA,OAAO,OAAO,CAAC,MAAM,CACnB,yCAAyC,CAAC,OAAO,CAAC,EAClD,KAAK,EACL,GAAG,CAC4B;IACnC;AAAE,IAAA,MAAM;AACN,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;IACrE;AACF;AAEA;;AAEG;AACG,SAAU,kCAAkC,CAChD,4BAA0D,EAC1D,OAAoB,EAAA;AAEpB,IAAA,IAAI;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAC5B,4BAA4D,EAC5D,GAAG,CACJ;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,yCAAyC,CAAC,OAAO,CAAC,EAAE;AACzE,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,0DAAA,EAA6D,yCAAyC,CAAC,OAAO,CAAC,CAAA,WAAA,EAAc,OAAO,CAAC,MAAM,CAAA,CAAA,CAAG,CAC/I;QACH;QAEA,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAExD,OAAO;AACL,YAAA,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC;YAC5C,OAAO;SACR;IACH;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,MAAM,KAAK;QACb;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;IACrE;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|