@hashgraphonline/standards-sdk 0.1.141-canary.3 → 0.1.141-canary.30
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/README.md +13 -1
- package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-17/types.d.ts.map +1 -1
- package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-20/types.d.ts +9 -8
- package/dist/cjs/hcs-20/types.d.ts.map +1 -1
- package/dist/cjs/hcs-21/base-client.d.ts +4 -3
- package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-21/index.d.ts +1 -0
- package/dist/cjs/hcs-21/index.d.ts.map +1 -1
- package/dist/cjs/hcs-21/sdk.d.ts +34 -0
- package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-21/types.d.ts +135 -64
- package/dist/cjs/hcs-21/types.d.ts.map +1 -1
- package/dist/cjs/hcs-21/verify.d.ts +6 -0
- package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
- package/dist/cjs/inscribe/inscriber.d.ts +1 -0
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client.d.ts +4 -3
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +38 -38
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/dynamic-import.d.ts +1 -0
- package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
- package/dist/es/hcs-16/base-client.d.ts.map +1 -1
- package/dist/es/hcs-17/types.d.ts.map +1 -1
- package/dist/es/hcs-20/sdk.d.ts.map +1 -1
- package/dist/es/hcs-20/types.d.ts +9 -8
- package/dist/es/hcs-20/types.d.ts.map +1 -1
- package/dist/es/hcs-21/base-client.d.ts +4 -3
- package/dist/es/hcs-21/base-client.d.ts.map +1 -1
- package/dist/es/hcs-21/index.d.ts +1 -0
- package/dist/es/hcs-21/index.d.ts.map +1 -1
- package/dist/es/hcs-21/sdk.d.ts +34 -0
- package/dist/es/hcs-21/sdk.d.ts.map +1 -1
- package/dist/es/hcs-21/tx.d.ts.map +1 -1
- package/dist/es/hcs-21/types.d.ts +135 -64
- package/dist/es/hcs-21/types.d.ts.map +1 -1
- package/dist/es/hcs-21/verify.d.ts +6 -0
- package/dist/es/hcs-21/verify.d.ts.map +1 -0
- package/dist/es/inscribe/inscriber.d.ts +1 -0
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client.d.ts +4 -3
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +38 -38
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +58 -50
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +2 -2
- package/dist/es/standards-sdk.es100.js +26 -229
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +228 -109
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +94 -15
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +30 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +80 -27
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +25 -136
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +140 -27
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +27 -20
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +18 -156
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +148 -196
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +160 -747
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +786 -9
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +13 -567
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +541 -576
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +601 -12
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +13 -2
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +2 -83
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +80 -36
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +39 -2
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +2 -223
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +193 -1110
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +1059 -225
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +303 -419
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +418 -351
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +348 -785
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +766 -182
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +153 -1512
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +1373 -1977
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +2211 -50
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +59 -79
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +80 -152
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +159 -7
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +7 -86
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +65 -44
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +65 -28
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +69 -125
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +28 -42
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +138 -760
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +36 -50
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +766 -64
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es141.js +13 -168
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +55 -321
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +120 -294
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +191 -322
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +294 -279
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +440 -63
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +327 -13
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +79 -0
- package/dist/es/standards-sdk.es148.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es16.js +1 -1
- package/dist/es/standards-sdk.es17.js +5 -10
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +11 -15
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es2.js +26 -72
- package/dist/es/standards-sdk.es2.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +8 -12
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +1 -1
- package/dist/es/standards-sdk.es28.js +11 -15
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es3.js +2 -2
- package/dist/es/standards-sdk.es31.js +1 -1
- package/dist/es/standards-sdk.es32.js +3 -3
- package/dist/es/standards-sdk.es33.js +1 -1
- package/dist/es/standards-sdk.es36.js +6 -11
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +3 -3
- package/dist/es/standards-sdk.es38.js +1 -1
- package/dist/es/standards-sdk.es39.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +1 -1
- package/dist/es/standards-sdk.es42.js +2 -2
- package/dist/es/standards-sdk.es47.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es52.js +1 -1
- package/dist/es/standards-sdk.es54.js +1 -1
- package/dist/es/standards-sdk.es57.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es61.js +7 -11
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +1 -1
- package/dist/es/standards-sdk.es65.js +2 -2
- package/dist/es/standards-sdk.es66.js +3 -3
- package/dist/es/standards-sdk.es69.js +2 -2
- package/dist/es/standards-sdk.es7.js +2 -2
- package/dist/es/standards-sdk.es70.js +3 -3
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +1 -1
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +2 -2
- package/dist/es/standards-sdk.es77.js +5 -3
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +4 -10
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +1 -1
- package/dist/es/standards-sdk.es8.js +1 -1
- package/dist/es/standards-sdk.es80.js +26 -15
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +12 -4
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +7 -6
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +106 -5
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +55 -21
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +22 -75
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +45 -30
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +57 -22
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +28 -23
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +23 -167
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +158 -119
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +68 -95
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +136 -119
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +139 -39
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +42 -257
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +243 -80
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +47 -48
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +100 -28
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/dynamic-import.d.ts +1 -0
- package/dist/es/utils/dynamic-import.d.ts.map +1 -1
- package/package.json +65 -63
|
@@ -1,83 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.operatorId = AccountId.fromString(config.operatorId);
|
|
9
|
-
this.operatorCtx = createNodeOperatorContext({
|
|
10
|
-
network: this.network,
|
|
11
|
-
operatorId: this.operatorId,
|
|
12
|
-
operatorKey: config.operatorKey,
|
|
13
|
-
keyType: config.keyType,
|
|
14
|
-
mirrorNode: this.mirrorNode,
|
|
15
|
-
logger: this.logger,
|
|
16
|
-
client: this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet()
|
|
17
|
-
});
|
|
18
|
-
this.client = this.operatorCtx.client;
|
|
1
|
+
import { AccountCreateTransaction, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
function buildHcs15BaseAccountCreateTx(params) {
|
|
3
|
+
const tx = new AccountCreateTransaction().setECDSAKeyWithAlias(params.publicKey).setInitialBalance(
|
|
4
|
+
params.initialBalance instanceof Hbar ? params.initialBalance : new Hbar(params.initialBalance ?? 1)
|
|
5
|
+
);
|
|
6
|
+
if (typeof params.maxAutomaticTokenAssociations === "number") {
|
|
7
|
+
tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);
|
|
19
8
|
}
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
if (params.accountMemo) {
|
|
10
|
+
tx.setAccountMemo(params.accountMemo);
|
|
22
11
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*/
|
|
32
|
-
async createBaseAccount(options) {
|
|
33
|
-
const priv = PrivateKey.generateECDSA();
|
|
34
|
-
const pub = priv.publicKey;
|
|
35
|
-
const tx = buildHcs15BaseAccountCreateTx({
|
|
36
|
-
publicKey: pub,
|
|
37
|
-
initialBalance: new Hbar(options?.initialBalance ?? 10),
|
|
38
|
-
maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,
|
|
39
|
-
accountMemo: options?.accountMemo
|
|
40
|
-
});
|
|
41
|
-
const resp = await tx.execute(this.client);
|
|
42
|
-
const receipt = await resp.getReceipt(this.client);
|
|
43
|
-
if (!receipt.accountId) {
|
|
44
|
-
throw new Error("HCS-15 BASE_ACCOUNT_CREATE_FAILED");
|
|
45
|
-
}
|
|
46
|
-
const accountId = receipt.accountId.toString();
|
|
47
|
-
const evmAddress = `0x${pub.toEvmAddress()}`;
|
|
48
|
-
this.logger.info("Created HCS-15 base account", { accountId, evmAddress });
|
|
49
|
-
return {
|
|
50
|
-
accountId,
|
|
51
|
-
privateKey: priv,
|
|
52
|
-
privateKeyHex: priv.toStringRaw(),
|
|
53
|
-
publicKey: pub,
|
|
54
|
-
evmAddress,
|
|
55
|
-
receipt
|
|
56
|
-
};
|
|
12
|
+
return tx;
|
|
13
|
+
}
|
|
14
|
+
function buildHcs15PetalAccountCreateTx(params) {
|
|
15
|
+
const tx = new AccountCreateTransaction().setKeyWithoutAlias(params.publicKey).setInitialBalance(
|
|
16
|
+
params.initialBalance instanceof Hbar ? params.initialBalance : new Hbar(params.initialBalance ?? 1)
|
|
17
|
+
);
|
|
18
|
+
if (typeof params.maxAutomaticTokenAssociations === "number") {
|
|
19
|
+
tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);
|
|
57
20
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
61
|
-
async createPetalAccount(params) {
|
|
62
|
-
const baseKey = typeof params.basePrivateKey === "string" ? PrivateKey.fromStringECDSA(params.basePrivateKey) : params.basePrivateKey;
|
|
63
|
-
const pub = baseKey.publicKey;
|
|
64
|
-
const tx = buildHcs15PetalAccountCreateTx({
|
|
65
|
-
publicKey: pub,
|
|
66
|
-
initialBalance: new Hbar(params.initialBalance ?? 1),
|
|
67
|
-
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,
|
|
68
|
-
accountMemo: params.accountMemo
|
|
69
|
-
});
|
|
70
|
-
const resp = await tx.execute(this.client);
|
|
71
|
-
const receipt = await resp.getReceipt(this.client);
|
|
72
|
-
if (!receipt.accountId) {
|
|
73
|
-
throw new Error("HCS-15 PETAL_ACCOUNT_CREATE_FAILED");
|
|
74
|
-
}
|
|
75
|
-
const accountId = receipt.accountId.toString();
|
|
76
|
-
this.logger.info("Created HCS-15 petal account", { accountId });
|
|
77
|
-
return { accountId, receipt };
|
|
21
|
+
if (params.accountMemo) {
|
|
22
|
+
tx.setAccountMemo(params.accountMemo);
|
|
78
23
|
}
|
|
24
|
+
return tx;
|
|
79
25
|
}
|
|
80
26
|
export {
|
|
81
|
-
|
|
27
|
+
buildHcs15BaseAccountCreateTx,
|
|
28
|
+
buildHcs15PetalAccountCreateTx
|
|
82
29
|
};
|
|
83
30
|
//# sourceMappingURL=standards-sdk.es87.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es87.js","sources":["../../src/hcs-15/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es87.js","sources":["../../src/hcs-15/tx.ts"],"sourcesContent":["import { AccountCreateTransaction, Hbar, PublicKey } from '@hashgraph/sdk';\n\n/**\n * Build AccountCreateTransaction for an HCS-15 base account.\n * Uses an ECDSA public key and sets the EVM alias from it.\n */\nexport function buildHcs15BaseAccountCreateTx(params: {\n publicKey: PublicKey;\n initialBalance?: Hbar | number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n}): AccountCreateTransaction {\n const tx = new AccountCreateTransaction()\n .setECDSAKeyWithAlias(params.publicKey)\n .setInitialBalance(\n params.initialBalance instanceof Hbar\n ? params.initialBalance\n : new Hbar(params.initialBalance ?? 1),\n );\n\n if (typeof params.maxAutomaticTokenAssociations === 'number') {\n tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);\n }\n if (params.accountMemo) {\n tx.setAccountMemo(params.accountMemo);\n }\n return tx;\n}\n\n/**\n * Build AccountCreateTransaction for an HCS-15 Petal account.\n * Reuses the same public key as the base account, without alias.\n */\nexport function buildHcs15PetalAccountCreateTx(params: {\n publicKey: PublicKey;\n initialBalance?: Hbar | number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n}): AccountCreateTransaction {\n const tx = new AccountCreateTransaction()\n .setKeyWithoutAlias(params.publicKey)\n .setInitialBalance(\n params.initialBalance instanceof Hbar\n ? params.initialBalance\n : new Hbar(params.initialBalance ?? 1),\n );\n\n if (typeof params.maxAutomaticTokenAssociations === 'number') {\n tx.setMaxAutomaticTokenAssociations(params.maxAutomaticTokenAssociations);\n }\n if (params.accountMemo) {\n tx.setAccountMemo(params.accountMemo);\n }\n return tx;\n}\n"],"names":[],"mappings":";AAMO,SAAS,8BAA8B,QAKjB;AAC3B,QAAM,KAAK,IAAI,yBAAA,EACZ,qBAAqB,OAAO,SAAS,EACrC;AAAA,IACC,OAAO,0BAA0B,OAC7B,OAAO,iBACP,IAAI,KAAK,OAAO,kBAAkB,CAAC;AAAA,EAAA;AAG3C,MAAI,OAAO,OAAO,kCAAkC,UAAU;AAC5D,OAAG,iCAAiC,OAAO,6BAA6B;AAAA,EAC1E;AACA,MAAI,OAAO,aAAa;AACtB,OAAG,eAAe,OAAO,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAMO,SAAS,+BAA+B,QAKlB;AAC3B,QAAM,KAAK,IAAI,yBAAA,EACZ,mBAAmB,OAAO,SAAS,EACnC;AAAA,IACC,OAAO,0BAA0B,OAC7B,OAAO,iBACP,IAAI,KAAK,OAAO,kBAAkB,CAAC;AAAA,EAAA;AAG3C,MAAI,OAAO,OAAO,kCAAkC,UAAU;AAC5D,OAAG,iCAAiC,OAAO,6BAA6B;AAAA,EAC1E;AACA,MAAI,OAAO,aAAa;AACtB,OAAG,eAAe,OAAO,WAAW;AAAA,EACtC;AACA,SAAO;AACT;"}
|
|
@@ -1,22 +1,35 @@
|
|
|
1
|
-
import { PrivateKey, Hbar } from "@hashgraph/sdk";
|
|
2
|
-
import {
|
|
3
|
-
import { buildHcs15BaseAccountCreateTx, buildHcs15PetalAccountCreateTx } from "./standards-sdk.
|
|
4
|
-
|
|
1
|
+
import { AccountId, Client, PrivateKey, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
import { createNodeOperatorContext } from "./standards-sdk.es137.js";
|
|
3
|
+
import { buildHcs15BaseAccountCreateTx, buildHcs15PetalAccountCreateTx } from "./standards-sdk.es87.js";
|
|
4
|
+
import { HCS15BaseClient } from "./standards-sdk.es90.js";
|
|
5
|
+
class HCS15Client extends HCS15BaseClient {
|
|
5
6
|
constructor(config) {
|
|
6
7
|
super(config);
|
|
7
|
-
this.
|
|
8
|
+
this.operatorId = AccountId.fromString(config.operatorId);
|
|
9
|
+
this.operatorCtx = createNodeOperatorContext({
|
|
10
|
+
network: this.network,
|
|
11
|
+
operatorId: this.operatorId,
|
|
12
|
+
operatorKey: config.operatorKey,
|
|
13
|
+
keyType: config.keyType,
|
|
14
|
+
mirrorNode: this.mirrorNode,
|
|
15
|
+
logger: this.logger,
|
|
16
|
+
client: this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet()
|
|
17
|
+
});
|
|
18
|
+
this.client = this.operatorCtx.client;
|
|
19
|
+
}
|
|
20
|
+
getKeyType() {
|
|
21
|
+
return this.operatorCtx.keyType;
|
|
8
22
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
23
|
+
async close() {
|
|
24
|
+
try {
|
|
25
|
+
this.client.close();
|
|
26
|
+
} catch {
|
|
12
27
|
}
|
|
13
|
-
return this.signer;
|
|
14
28
|
}
|
|
15
29
|
/**
|
|
16
|
-
* Create a new base account with a
|
|
30
|
+
* Create a new base account with a newly generated ECDSA key and EVM alias.
|
|
17
31
|
*/
|
|
18
32
|
async createBaseAccount(options) {
|
|
19
|
-
const signer = this.requireSigner();
|
|
20
33
|
const priv = PrivateKey.generateECDSA();
|
|
21
34
|
const pub = priv.publicKey;
|
|
22
35
|
const tx = buildHcs15BaseAccountCreateTx({
|
|
@@ -25,44 +38,46 @@ class HCS15BrowserClient extends HCS15BaseClient {
|
|
|
25
38
|
maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,
|
|
26
39
|
accountMemo: options?.accountMemo
|
|
27
40
|
});
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
const resp = await tx.execute(this.client);
|
|
42
|
+
const receipt = await resp.getReceipt(this.client);
|
|
43
|
+
if (!receipt.accountId) {
|
|
44
|
+
throw new Error("HCS-15 BASE_ACCOUNT_CREATE_FAILED");
|
|
45
|
+
}
|
|
46
|
+
const accountId = receipt.accountId.toString();
|
|
32
47
|
const evmAddress = `0x${pub.toEvmAddress()}`;
|
|
33
|
-
this.logger.info("Created HCS-15 base account
|
|
34
|
-
accountId,
|
|
35
|
-
evmAddress
|
|
36
|
-
});
|
|
48
|
+
this.logger.info("Created HCS-15 base account", { accountId, evmAddress });
|
|
37
49
|
return {
|
|
38
50
|
accountId,
|
|
39
51
|
privateKey: priv,
|
|
40
52
|
privateKeyHex: priv.toStringRaw(),
|
|
41
53
|
publicKey: pub,
|
|
42
|
-
evmAddress
|
|
54
|
+
evmAddress,
|
|
55
|
+
receipt
|
|
43
56
|
};
|
|
44
57
|
}
|
|
45
58
|
/**
|
|
46
|
-
* Create a
|
|
59
|
+
* Create a Petal account that reuses the base account ECDSA key (no alias).
|
|
47
60
|
*/
|
|
48
61
|
async createPetalAccount(params) {
|
|
49
|
-
const signer = this.requireSigner();
|
|
50
62
|
const baseKey = typeof params.basePrivateKey === "string" ? PrivateKey.fromStringECDSA(params.basePrivateKey) : params.basePrivateKey;
|
|
63
|
+
const pub = baseKey.publicKey;
|
|
51
64
|
const tx = buildHcs15PetalAccountCreateTx({
|
|
52
|
-
publicKey:
|
|
65
|
+
publicKey: pub,
|
|
53
66
|
initialBalance: new Hbar(params.initialBalance ?? 1),
|
|
54
67
|
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,
|
|
55
68
|
accountMemo: params.accountMemo
|
|
56
69
|
});
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
const resp = await tx.execute(this.client);
|
|
71
|
+
const receipt = await resp.getReceipt(this.client);
|
|
72
|
+
if (!receipt.accountId) {
|
|
73
|
+
throw new Error("HCS-15 PETAL_ACCOUNT_CREATE_FAILED");
|
|
74
|
+
}
|
|
75
|
+
const accountId = receipt.accountId.toString();
|
|
76
|
+
this.logger.info("Created HCS-15 petal account", { accountId });
|
|
77
|
+
return { accountId, receipt };
|
|
63
78
|
}
|
|
64
79
|
}
|
|
65
80
|
export {
|
|
66
|
-
|
|
81
|
+
HCS15Client
|
|
67
82
|
};
|
|
68
83
|
//# sourceMappingURL=standards-sdk.es88.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es88.js","sources":["../../src/hcs-15/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es88.js","sources":["../../src/hcs-15/sdk.ts"],"sourcesContent":["import {\n AccountId,\n Client,\n Hbar,\n PrivateKey,\n PublicKey,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { NetworkType } from '../utils/types';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport {\n buildHcs15BaseAccountCreateTx,\n buildHcs15PetalAccountCreateTx,\n} from './tx';\nimport type { SDKHCS15ClientConfig } from './types';\nimport { HCS15BaseClient } from './base-client';\n\nexport class HCS15Client extends HCS15BaseClient {\n private readonly operatorCtx: NodeOperatorContext;\n private readonly client: Client;\n private readonly operatorId: AccountId;\n\n constructor(config: SDKHCS15ClientConfig) {\n super(config);\n this.operatorId = AccountId.fromString(config.operatorId);\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client:\n this.network === 'mainnet' ? Client.forMainnet() : Client.forTestnet(),\n });\n this.client = this.operatorCtx.client;\n }\n\n public getKeyType(): 'ed25519' | 'ecdsa' {\n return this.operatorCtx.keyType;\n }\n\n public async close(): Promise<void> {\n try {\n this.client.close();\n } catch {}\n }\n\n /**\n * Create a new base account with a newly generated ECDSA key and EVM alias.\n */\n async createBaseAccount(options?: {\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n }): Promise<{\n accountId: string;\n privateKey: PrivateKey;\n privateKeyHex: string;\n publicKey: PublicKey;\n evmAddress: string;\n receipt: TransactionReceipt;\n }> {\n const priv = PrivateKey.generateECDSA();\n const pub = priv.publicKey;\n const tx = buildHcs15BaseAccountCreateTx({\n publicKey: pub,\n initialBalance: new Hbar(options?.initialBalance ?? 10),\n maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,\n accountMemo: options?.accountMemo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('HCS-15 BASE_ACCOUNT_CREATE_FAILED');\n }\n const accountId = receipt.accountId.toString();\n const evmAddress = `0x${pub.toEvmAddress()}`;\n this.logger.info('Created HCS-15 base account', { accountId, evmAddress });\n return {\n accountId,\n privateKey: priv,\n privateKeyHex: priv.toStringRaw(),\n publicKey: pub,\n evmAddress,\n receipt,\n };\n }\n\n /**\n * Create a Petal account that reuses the base account ECDSA key (no alias).\n */\n async createPetalAccount(params: {\n basePrivateKey: string | PrivateKey;\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n }): Promise<{ accountId: string; receipt: TransactionReceipt }> {\n const baseKey =\n typeof params.basePrivateKey === 'string'\n ? PrivateKey.fromStringECDSA(params.basePrivateKey)\n : params.basePrivateKey;\n const pub = baseKey.publicKey;\n const tx = buildHcs15PetalAccountCreateTx({\n publicKey: pub,\n initialBalance: new Hbar(params.initialBalance ?? 1),\n maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,\n accountMemo: params.accountMemo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('HCS-15 PETAL_ACCOUNT_CREATE_FAILED');\n }\n const accountId = receipt.accountId.toString();\n this.logger.info('Created HCS-15 petal account', { accountId });\n return { accountId, receipt };\n }\n}\n"],"names":[],"mappings":";;;;AAoBO,MAAM,oBAAoB,gBAAgB;AAAA,EAK/C,YAAY,QAA8B;AACxC,UAAM,MAAM;AACZ,SAAK,aAAa,UAAU,WAAW,OAAO,UAAU;AACxD,SAAK,cAAc,0BAA0B;AAAA,MAC3C,SAAS,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,MACjB,aAAa,OAAO;AAAA,MACpB,SAAS,OAAO;AAAA,MAChB,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,QACE,KAAK,YAAY,YAAY,OAAO,WAAA,IAAe,OAAO,WAAA;AAAA,IAAW,CACxE;AACD,SAAK,SAAS,KAAK,YAAY;AAAA,EACjC;AAAA,EAEO,aAAkC;AACvC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,MAAa,QAAuB;AAClC,QAAI;AACF,WAAK,OAAO,MAAA;AAAA,IACd,QAAQ;AAAA,IAAC;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,SAWrB;AACD,UAAM,OAAO,WAAW,cAAA;AACxB,UAAM,MAAM,KAAK;AACjB,UAAM,KAAK,8BAA8B;AAAA,MACvC,WAAW;AAAA,MACX,gBAAgB,IAAI,KAAK,SAAS,kBAAkB,EAAE;AAAA,MACtD,+BAA+B,SAAS;AAAA,MACxC,aAAa,SAAS;AAAA,IAAA,CACvB;AACD,UAAM,OAAO,MAAM,GAAG,QAAQ,KAAK,MAAM;AACzC,UAAM,UAAU,MAAM,KAAK,WAAW,KAAK,MAAM;AACjD,QAAI,CAAC,QAAQ,WAAW;AACtB,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AACA,UAAM,YAAY,QAAQ,UAAU,SAAA;AACpC,UAAM,aAAa,KAAK,IAAI,aAAA,CAAc;AAC1C,SAAK,OAAO,KAAK,+BAA+B,EAAE,WAAW,YAAY;AACzE,WAAO;AAAA,MACL;AAAA,MACA,YAAY;AAAA,MACZ,eAAe,KAAK,YAAA;AAAA,MACpB,WAAW;AAAA,MACX;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,QAKuC;AAC9D,UAAM,UACJ,OAAO,OAAO,mBAAmB,WAC7B,WAAW,gBAAgB,OAAO,cAAc,IAChD,OAAO;AACb,UAAM,MAAM,QAAQ;AACpB,UAAM,KAAK,+BAA+B;AAAA,MACxC,WAAW;AAAA,MACX,gBAAgB,IAAI,KAAK,OAAO,kBAAkB,CAAC;AAAA,MACnD,+BAA+B,OAAO;AAAA,MACtC,aAAa,OAAO;AAAA,IAAA,CACrB;AACD,UAAM,OAAO,MAAM,GAAG,QAAQ,KAAK,MAAM;AACzC,UAAM,UAAU,MAAM,KAAK,WAAW,KAAK,MAAM;AACjD,QAAI,CAAC,QAAQ,WAAW;AACtB,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AACA,UAAM,YAAY,QAAQ,UAAU,SAAA;AACpC,SAAK,OAAO,KAAK,gCAAgC,EAAE,WAAW;AAC9D,WAAO,EAAE,WAAW,QAAA;AAAA,EACtB;AACF;"}
|
|
@@ -1,33 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { PrivateKey, Hbar } from "@hashgraph/sdk";
|
|
2
|
+
import { HCS15BaseClient } from "./standards-sdk.es90.js";
|
|
3
|
+
import { buildHcs15BaseAccountCreateTx, buildHcs15PetalAccountCreateTx } from "./standards-sdk.es87.js";
|
|
4
|
+
class HCS15BrowserClient extends HCS15BaseClient {
|
|
4
5
|
constructor(config) {
|
|
5
|
-
|
|
6
|
-
this.
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
super(config);
|
|
7
|
+
this.signer = config.signer || config.hwc?.dAppConnector?.signers?.[0];
|
|
8
|
+
}
|
|
9
|
+
requireSigner() {
|
|
10
|
+
if (!this.signer) {
|
|
11
|
+
throw new Error("HCS-15 Browser client requires an active DAppSigner");
|
|
12
|
+
}
|
|
13
|
+
return this.signer;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a new base account with a new ECDSA key and EVM alias using a connected wallet signer.
|
|
17
|
+
*/
|
|
18
|
+
async createBaseAccount(options) {
|
|
19
|
+
const signer = this.requireSigner();
|
|
20
|
+
const priv = PrivateKey.generateECDSA();
|
|
21
|
+
const pub = priv.publicKey;
|
|
22
|
+
const tx = buildHcs15BaseAccountCreateTx({
|
|
23
|
+
publicKey: pub,
|
|
24
|
+
initialBalance: new Hbar(options?.initialBalance ?? 10),
|
|
25
|
+
maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,
|
|
26
|
+
accountMemo: options?.accountMemo
|
|
9
27
|
});
|
|
10
|
-
|
|
11
|
-
|
|
28
|
+
const frozen = await tx.freezeWithSigner(signer);
|
|
29
|
+
const res = await frozen.executeWithSigner(signer);
|
|
30
|
+
const receipt = await res.getReceiptWithSigner(signer);
|
|
31
|
+
const accountId = receipt?.accountId?.toString?.();
|
|
32
|
+
const evmAddress = `0x${pub.toEvmAddress()}`;
|
|
33
|
+
this.logger.info("Created HCS-15 base account (browser)", {
|
|
34
|
+
accountId,
|
|
35
|
+
evmAddress
|
|
12
36
|
});
|
|
37
|
+
return {
|
|
38
|
+
accountId,
|
|
39
|
+
privateKey: priv,
|
|
40
|
+
privateKeyHex: priv.toStringRaw(),
|
|
41
|
+
publicKey: pub,
|
|
42
|
+
evmAddress
|
|
43
|
+
};
|
|
13
44
|
}
|
|
14
45
|
/**
|
|
15
|
-
*
|
|
46
|
+
* Create a petal account reusing a base ECDSA key, via wallet signer.
|
|
16
47
|
*/
|
|
17
|
-
async
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
async createPetalAccount(params) {
|
|
49
|
+
const signer = this.requireSigner();
|
|
50
|
+
const baseKey = typeof params.basePrivateKey === "string" ? PrivateKey.fromStringECDSA(params.basePrivateKey) : params.basePrivateKey;
|
|
51
|
+
const tx = buildHcs15PetalAccountCreateTx({
|
|
52
|
+
publicKey: baseKey.publicKey,
|
|
53
|
+
initialBalance: new Hbar(params.initialBalance ?? 1),
|
|
54
|
+
maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,
|
|
55
|
+
accountMemo: params.accountMemo
|
|
56
|
+
});
|
|
57
|
+
const frozen = await tx.freezeWithSigner(signer);
|
|
58
|
+
const res = await frozen.executeWithSigner(signer);
|
|
59
|
+
const receipt = await res.getReceiptWithSigner(signer);
|
|
60
|
+
const accountId = receipt?.accountId?.toString?.();
|
|
61
|
+
this.logger.info("Created HCS-15 petal account (browser)", { accountId });
|
|
62
|
+
return { accountId };
|
|
28
63
|
}
|
|
29
64
|
}
|
|
30
65
|
export {
|
|
31
|
-
|
|
66
|
+
HCS15BrowserClient
|
|
32
67
|
};
|
|
33
68
|
//# sourceMappingURL=standards-sdk.es89.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es89.js","sources":["../../src/hcs-15/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es89.js","sources":["../../src/hcs-15/browser.ts"],"sourcesContent":["import type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport type {\n PublicKey,\n PrivateKey,\n TransactionResponse,\n} from '@hashgraph/sdk';\nimport { PrivateKey as SDKPrivateKey, Hbar } from '@hashgraph/sdk';\nimport type { BrowserHCS15ClientConfig } from './types';\n\nimport { HCS15BaseClient } from './base-client';\nimport {\n buildHcs15BaseAccountCreateTx,\n buildHcs15PetalAccountCreateTx,\n} from './tx';\n\nexport class HCS15BrowserClient extends HCS15BaseClient {\n private readonly signer?: DAppSigner;\n\n constructor(config: BrowserHCS15ClientConfig) {\n super(config);\n this.signer = config.signer || config.hwc?.dAppConnector?.signers?.[0];\n }\n\n private requireSigner(): DAppSigner {\n if (!this.signer) {\n throw new Error('HCS-15 Browser client requires an active DAppSigner');\n }\n return this.signer as DAppSigner;\n }\n\n /**\n * Create a new base account with a new ECDSA key and EVM alias using a connected wallet signer.\n */\n async createBaseAccount(options?: {\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n }): Promise<{\n accountId?: string;\n privateKey: PrivateKey;\n privateKeyHex: string;\n publicKey: PublicKey;\n evmAddress: string;\n }> {\n const signer = this.requireSigner();\n const priv = SDKPrivateKey.generateECDSA();\n const pub = priv.publicKey;\n const tx = buildHcs15BaseAccountCreateTx({\n publicKey: pub,\n initialBalance: new Hbar(options?.initialBalance ?? 10),\n maxAutomaticTokenAssociations: options?.maxAutomaticTokenAssociations,\n accountMemo: options?.accountMemo,\n });\n const frozen = await tx.freezeWithSigner(signer);\n const res: TransactionResponse = await frozen.executeWithSigner(signer);\n const receipt = await res.getReceiptWithSigner(signer as any);\n const accountId = receipt?.accountId?.toString?.();\n const evmAddress = `0x${pub.toEvmAddress()}`;\n this.logger.info('Created HCS-15 base account (browser)', {\n accountId,\n evmAddress,\n });\n return {\n accountId,\n privateKey: priv,\n privateKeyHex: priv.toStringRaw(),\n publicKey: pub,\n evmAddress,\n };\n }\n\n /**\n * Create a petal account reusing a base ECDSA key, via wallet signer.\n */\n async createPetalAccount(params: {\n basePrivateKey: string | PrivateKey;\n initialBalance?: number;\n maxAutomaticTokenAssociations?: number;\n accountMemo?: string;\n }): Promise<{ accountId?: string }> {\n const signer = this.requireSigner();\n const baseKey =\n typeof params.basePrivateKey === 'string'\n ? SDKPrivateKey.fromStringECDSA(params.basePrivateKey)\n : params.basePrivateKey;\n const tx = buildHcs15PetalAccountCreateTx({\n publicKey: baseKey.publicKey,\n initialBalance: new Hbar(params.initialBalance ?? 1),\n maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,\n accountMemo: params.accountMemo,\n });\n const frozen = await tx.freezeWithSigner(signer);\n const res: TransactionResponse = await frozen.executeWithSigner(signer);\n const receipt = await res.getReceiptWithSigner(signer as any);\n const accountId = receipt?.accountId?.toString?.();\n this.logger.info('Created HCS-15 petal account (browser)', { accountId });\n return { accountId };\n }\n}\n"],"names":["SDKPrivateKey"],"mappings":";;;AAeO,MAAM,2BAA2B,gBAAgB;AAAA,EAGtD,YAAY,QAAkC;AAC5C,UAAM,MAAM;AACZ,SAAK,SAAS,OAAO,UAAU,OAAO,KAAK,eAAe,UAAU,CAAC;AAAA,EACvE;AAAA,EAEQ,gBAA4B;AAClC,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI,MAAM,qDAAqD;AAAA,IACvE;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,SAUrB;AACD,UAAM,SAAS,KAAK,cAAA;AACpB,UAAM,OAAOA,WAAc,cAAA;AAC3B,UAAM,MAAM,KAAK;AACjB,UAAM,KAAK,8BAA8B;AAAA,MACvC,WAAW;AAAA,MACX,gBAAgB,IAAI,KAAK,SAAS,kBAAkB,EAAE;AAAA,MACtD,+BAA+B,SAAS;AAAA,MACxC,aAAa,SAAS;AAAA,IAAA,CACvB;AACD,UAAM,SAAS,MAAM,GAAG,iBAAiB,MAAM;AAC/C,UAAM,MAA2B,MAAM,OAAO,kBAAkB,MAAM;AACtE,UAAM,UAAU,MAAM,IAAI,qBAAqB,MAAa;AAC5D,UAAM,YAAY,SAAS,WAAW,WAAA;AACtC,UAAM,aAAa,KAAK,IAAI,aAAA,CAAc;AAC1C,SAAK,OAAO,KAAK,yCAAyC;AAAA,MACxD;AAAA,MACA;AAAA,IAAA,CACD;AACD,WAAO;AAAA,MACL;AAAA,MACA,YAAY;AAAA,MACZ,eAAe,KAAK,YAAA;AAAA,MACpB,WAAW;AAAA,MACX;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,QAKW;AAClC,UAAM,SAAS,KAAK,cAAA;AACpB,UAAM,UACJ,OAAO,OAAO,mBAAmB,WAC7BA,WAAc,gBAAgB,OAAO,cAAc,IACnD,OAAO;AACb,UAAM,KAAK,+BAA+B;AAAA,MACxC,WAAW,QAAQ;AAAA,MACnB,gBAAgB,IAAI,KAAK,OAAO,kBAAkB,CAAC;AAAA,MACnD,+BAA+B,OAAO;AAAA,MACtC,aAAa,OAAO;AAAA,IAAA,CACrB;AACD,UAAM,SAAS,MAAM,GAAG,iBAAiB,MAAM;AAC/C,UAAM,MAA2B,MAAM,OAAO,kBAAkB,MAAM;AACtE,UAAM,UAAU,MAAM,IAAI,qBAAqB,MAAa;AAC5D,UAAM,YAAY,SAAS,WAAW,WAAA;AACtC,SAAK,OAAO,KAAK,0CAA0C,EAAE,WAAW;AACxE,WAAO,EAAE,UAAA;AAAA,EACX;AACF;"}
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { HederaMirrorNode } from "./standards-sdk.es127.js";
|
|
2
|
+
import { Logger } from "./standards-sdk.es106.js";
|
|
3
|
+
class HCS15BaseClient {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
this.network = config.network;
|
|
6
|
+
this.logger = config.logger || new Logger({
|
|
7
|
+
module: "HCS-15",
|
|
8
|
+
level: config.logLevel || "info"
|
|
9
|
+
});
|
|
10
|
+
this.mirrorNode = new HederaMirrorNode(this.network, this.logger, {
|
|
11
|
+
customUrl: config.mirrorNodeUrl
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Verify that a petal account shares the same public key as the base account.
|
|
16
|
+
*/
|
|
17
|
+
async verifyPetalAccount(petalAccountId, baseAccountId) {
|
|
18
|
+
try {
|
|
19
|
+
const petalInfo = await this.mirrorNode.requestAccount(petalAccountId);
|
|
20
|
+
const baseInfo = await this.mirrorNode.requestAccount(baseAccountId);
|
|
21
|
+
const petalKey = petalInfo?.key?.key || "";
|
|
22
|
+
const baseKey = baseInfo?.key?.key || "";
|
|
23
|
+
return petalKey !== "" && petalKey === baseKey;
|
|
24
|
+
} catch (e) {
|
|
25
|
+
this.logger.warn("verifyPetalAccount failed", { error: String(e) });
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
21
28
|
}
|
|
22
29
|
}
|
|
23
30
|
export {
|
|
24
|
-
|
|
25
|
-
FloraOperation,
|
|
26
|
-
FloraTopicType
|
|
31
|
+
HCS15BaseClient
|
|
27
32
|
};
|
|
28
33
|
//# sourceMappingURL=standards-sdk.es90.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es90.js","sources":["../../src/hcs-
|
|
1
|
+
{"version":3,"file":"standards-sdk.es90.js","sources":["../../src/hcs-15/base-client.ts"],"sourcesContent":["import { HederaMirrorNode } from '../services/mirror-node';\nimport { Logger, ILogger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\n\n/**\n * Base client for HCS‑15 shared functionality across Node and Browser clients.\n */\nexport class HCS15BaseClient {\n protected readonly network: NetworkType;\n protected readonly mirrorNode: HederaMirrorNode;\n protected readonly logger: ILogger;\n\n constructor(config: {\n network: NetworkType;\n mirrorNodeUrl?: string;\n logger?: Logger;\n logLevel?: Parameters<Logger['setLogLevel']>[0];\n }) {\n this.network = config.network;\n this.logger =\n config.logger ||\n new Logger({\n module: 'HCS-15',\n level: (config.logLevel as any) || 'info',\n });\n this.mirrorNode = new HederaMirrorNode(this.network, this.logger, {\n customUrl: config.mirrorNodeUrl,\n });\n }\n\n /**\n * Verify that a petal account shares the same public key as the base account.\n */\n public async verifyPetalAccount(\n petalAccountId: string,\n baseAccountId: string,\n ): Promise<boolean> {\n try {\n const petalInfo = await this.mirrorNode.requestAccount(petalAccountId);\n const baseInfo = await this.mirrorNode.requestAccount(baseAccountId);\n const petalKey = petalInfo?.key?.key || '';\n const baseKey = baseInfo?.key?.key || '';\n return petalKey !== '' && petalKey === baseKey;\n } catch (e) {\n this.logger.warn('verifyPetalAccount failed', { error: String(e) });\n return false;\n }\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,gBAAgB;AAAA,EAK3B,YAAY,QAKT;AACD,SAAK,UAAU,OAAO;AACtB,SAAK,SACH,OAAO,UACP,IAAI,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,OAAQ,OAAO,YAAoB;AAAA,IAAA,CACpC;AACH,SAAK,aAAa,IAAI,iBAAiB,KAAK,SAAS,KAAK,QAAQ;AAAA,MAChE,WAAW,OAAO;AAAA,IAAA,CACnB;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,mBACX,gBACA,eACkB;AAClB,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,WAAW,eAAe,cAAc;AACrE,YAAM,WAAW,MAAM,KAAK,WAAW,eAAe,aAAa;AACnE,YAAM,WAAW,WAAW,KAAK,OAAO;AACxC,YAAM,UAAU,UAAU,KAAK,OAAO;AACtC,aAAO,aAAa,MAAM,aAAa;AAAA,IACzC,SAAS,GAAG;AACV,WAAK,OAAO,KAAK,6BAA6B,EAAE,OAAO,OAAO,CAAC,GAAG;AAClE,aAAO;AAAA,IACT;AAAA,EACF;AACF;"}
|