@hashgraphonline/standards-sdk 0.0.96 → 0.0.98
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/es/hcs-10/base-client.d.ts +3 -14
- package/dist/es/hcs-10/base-client.d.ts.map +1 -1
- package/dist/es/hcs-10/connections-manager.d.ts +0 -51
- package/dist/es/hcs-10/connections-manager.d.ts.map +1 -1
- package/dist/es/hcs-10/sdk.d.ts +1 -38
- package/dist/es/hcs-10/sdk.d.ts.map +1 -1
- package/dist/es/hcs-10/types.d.ts +0 -9
- package/dist/es/hcs-10/types.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts +0 -2
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/services/mirror-node.d.ts +1 -17
- package/dist/es/services/mirror-node.d.ts.map +1 -1
- package/dist/es/services/types.d.ts +0 -24
- package/dist/es/services/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +5 -8
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +0 -66
- package/dist/es/standards-sdk.es10.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +12 -22
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +13 -793
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +30 -172
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +14 -142
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +4 -13
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +4 -13
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +15 -31
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +4 -14
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +39 -4
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +40 -4
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +36 -15
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +78 -5
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +3 -39
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +2 -40
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +2 -37
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +31 -75
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +32 -20
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +9 -27
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +33 -25
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +4 -4
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es16.js +1 -1
- package/dist/es/standards-sdk.es18.js +2 -2
- package/dist/es/standards-sdk.es19.js +386 -393
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +314 -385
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +128 -357
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +7 -155
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +1041 -7
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +0 -2
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +3 -7190
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +4167 -3
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +7189 -8
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +36 -1041
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +48 -5
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +5 -36
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +100 -47
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +2 -10
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +15 -4166
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +397 -89
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +2 -2
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +2282 -16
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +155 -400
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +194 -2281
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es40.js +412 -138
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +18 -7129
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +138 -9
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +15 -8
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +27 -16
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +27 -4
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +20 -8
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +44 -3
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +13 -414
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +61 -2
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +8 -31
- package/dist/es/standards-sdk.es5.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +1283 -114
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +147 -3
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +77 -350
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +83 -5
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +27 -174
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +5 -80
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +149 -104
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +21 -50
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +792 -9
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +163 -86
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +142 -3
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +21 -2
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +22 -108
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +24 -72
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +37 -5
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +3 -5
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +3 -220
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +7131 -53
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +419 -69
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +2 -2
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +4 -105
- package/dist/es/standards-sdk.es7.js.map +1 -1
- package/dist/es/standards-sdk.es70.js +116 -28
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +355 -54
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +5 -49
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +178 -9
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +73 -57
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +113 -5
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +49 -12
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +10 -7
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +93 -41
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +4 -2
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +3 -3
- package/dist/es/standards-sdk.es80.js +2 -136
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +103 -162
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +69 -190
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +5 -437
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +4 -24
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +204 -122
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +57 -17
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +69 -29
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +27 -24
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +57 -15
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +45 -39
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +9 -17
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +61 -57
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +5 -1288
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +12 -145
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +7 -91
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +43 -82
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +2 -32
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +136 -6
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +161 -148
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/index.d.ts +0 -1
- package/dist/es/utils/index.d.ts.map +1 -1
- package/dist/umd/hcs-10/base-client.d.ts +3 -14
- package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
- package/dist/umd/hcs-10/connections-manager.d.ts +0 -51
- package/dist/umd/hcs-10/connections-manager.d.ts.map +1 -1
- package/dist/umd/hcs-10/sdk.d.ts +1 -38
- package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
- package/dist/umd/hcs-10/types.d.ts +0 -9
- package/dist/umd/hcs-10/types.d.ts.map +1 -1
- package/dist/umd/inscribe/inscriber.d.ts +0 -2
- package/dist/umd/inscribe/inscriber.d.ts.map +1 -1
- package/dist/umd/services/mirror-node.d.ts +1 -17
- package/dist/umd/services/mirror-node.d.ts.map +1 -1
- package/dist/umd/services/types.d.ts +0 -24
- package/dist/umd/services/types.d.ts.map +1 -1
- package/dist/umd/standards-sdk.umd.js +22 -22
- package/dist/umd/standards-sdk.umd.js.map +1 -1
- package/dist/umd/utils/index.d.ts +0 -1
- package/dist/umd/utils/index.d.ts.map +1 -1
- package/package.json +8 -12
- package/dist/es/standards-sdk.es119.js +0 -41
- package/dist/es/standards-sdk.es119.js.map +0 -1
- package/dist/es/standards-sdk.es120.js +0 -6
- package/dist/es/standards-sdk.es120.js.map +0 -1
- package/dist/es/standards-sdk.es121.js +0 -5
- package/dist/es/standards-sdk.es121.js.map +0 -1
- package/dist/es/standards-sdk.es122.js +0 -5
- package/dist/es/standards-sdk.es122.js.map +0 -1
- package/dist/es/standards-sdk.es123.js +0 -37
- package/dist/es/standards-sdk.es123.js.map +0 -1
- package/dist/es/standards-sdk.es124.js +0 -36
- package/dist/es/standards-sdk.es124.js.map +0 -1
- package/dist/es/standards-sdk.es125.js +0 -12
- package/dist/es/standards-sdk.es125.js.map +0 -1
- package/dist/es/standards-sdk.es126.js +0 -37
- package/dist/es/standards-sdk.es126.js.map +0 -1
- package/dist/es/utils/transaction-parser.d.ts +0 -103
- package/dist/es/utils/transaction-parser.d.ts.map +0 -1
- package/dist/umd/utils/transaction-parser.d.ts +0 -103
- package/dist/umd/utils/transaction-parser.d.ts.map +0 -1
|
@@ -1,417 +1,410 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
tokenTransfers: [],
|
|
21
|
-
raw: txBody
|
|
22
|
-
};
|
|
23
|
-
if (txBody.memo) {
|
|
24
|
-
result.memo = txBody.memo;
|
|
25
|
-
}
|
|
26
|
-
if (txBody.transactionFee) {
|
|
27
|
-
const hbarAmount = Hbar.fromTinybars(
|
|
28
|
-
Long.fromValue(txBody.transactionFee)
|
|
29
|
-
);
|
|
30
|
-
result.transactionFee = parseFloat(hbarAmount.toString(HbarUnit.Hbar));
|
|
31
|
-
}
|
|
32
|
-
if (txBody.cryptoTransfer) {
|
|
33
|
-
this.parseCryptoTransfers(txBody.cryptoTransfer, result);
|
|
34
|
-
}
|
|
35
|
-
if (txBody.contractCall) {
|
|
36
|
-
this.parseContractCall(txBody.contractCall, result);
|
|
37
|
-
}
|
|
38
|
-
if (txBody.tokenMint) {
|
|
39
|
-
this.parseTokenMint(txBody.tokenMint, result);
|
|
40
|
-
}
|
|
41
|
-
if (txBody.tokenBurn) {
|
|
42
|
-
this.parseTokenBurn(txBody.tokenBurn, result);
|
|
43
|
-
}
|
|
44
|
-
return result;
|
|
45
|
-
} catch (error) {
|
|
46
|
-
throw new Error(`Failed to parse transaction body: ${error}`);
|
|
1
|
+
import Buffer from "./standards-sdk.es24.js";
|
|
2
|
+
import { I as InscriptionSDK } from "./standards-sdk.es27.js";
|
|
3
|
+
import { Logger } from "./standards-sdk.es15.js";
|
|
4
|
+
import { ProgressReporter } from "./standards-sdk.es17.js";
|
|
5
|
+
async function inscribe(input, clientConfig, options, existingSDK) {
|
|
6
|
+
const logger = Logger.getInstance({
|
|
7
|
+
module: "Inscriber",
|
|
8
|
+
...options.logging
|
|
9
|
+
});
|
|
10
|
+
logger.info("Starting inscription process", {
|
|
11
|
+
type: input.type,
|
|
12
|
+
mode: options.mode || "file",
|
|
13
|
+
...input.type === "url" ? { url: input.url } : {},
|
|
14
|
+
...input.type === "file" ? { path: input.path } : {},
|
|
15
|
+
...input.type === "buffer" ? { fileName: input.fileName, bufferSize: input.buffer.byteLength } : {}
|
|
16
|
+
});
|
|
17
|
+
try {
|
|
18
|
+
if (options.mode === "hashinal" && options.metadata) {
|
|
19
|
+
validateHashinalMetadata(options.metadata, logger);
|
|
47
20
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const parsed = this.parseTransactionBody(scheduleResponse.transaction_body);
|
|
59
|
-
if (scheduleResponse.memo) {
|
|
60
|
-
parsed.memo = scheduleResponse.memo;
|
|
61
|
-
}
|
|
62
|
-
return parsed;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Determine the transaction type
|
|
66
|
-
* @param txBody - The transaction body to determine the type of
|
|
67
|
-
* @returns The type of the transaction
|
|
68
|
-
*/
|
|
69
|
-
static getTransactionType(txBody) {
|
|
70
|
-
let transactionType = "unknown";
|
|
71
|
-
if (txBody.cryptoTransfer) {
|
|
72
|
-
transactionType = "cryptoTransfer";
|
|
73
|
-
} else if (txBody.cryptoCreateAccount) {
|
|
74
|
-
transactionType = "cryptoCreateAccount";
|
|
75
|
-
} else if (txBody.cryptoUpdateAccount) {
|
|
76
|
-
transactionType = "cryptoUpdateAccount";
|
|
77
|
-
} else if (txBody.cryptoApproveAllowance) {
|
|
78
|
-
transactionType = "cryptoApproveAllowance";
|
|
79
|
-
} else if (txBody.cryptoDeleteAllowance) {
|
|
80
|
-
transactionType = "cryptoDeleteAllowance";
|
|
81
|
-
} else if (txBody.consensusCreateTopic) {
|
|
82
|
-
transactionType = "consensusCreateTopic";
|
|
83
|
-
} else if (txBody.consensusUpdateTopic) {
|
|
84
|
-
transactionType = "consensusUpdateTopic";
|
|
85
|
-
} else if (txBody.consensusSubmitMessage) {
|
|
86
|
-
transactionType = "consensusSubmitMessage";
|
|
87
|
-
} else if (txBody.consensusDeleteTopic) {
|
|
88
|
-
transactionType = "consensusDeleteTopic";
|
|
89
|
-
} else if (txBody.fileCreate) {
|
|
90
|
-
transactionType = "fileCreate";
|
|
91
|
-
} else if (txBody.fileAppend) {
|
|
92
|
-
transactionType = "fileAppend";
|
|
93
|
-
} else if (txBody.fileUpdate) {
|
|
94
|
-
transactionType = "fileUpdate";
|
|
95
|
-
} else if (txBody.fileDelete) {
|
|
96
|
-
transactionType = "fileDelete";
|
|
97
|
-
} else if (txBody.contractCall) {
|
|
98
|
-
transactionType = "contractCall";
|
|
99
|
-
} else if (txBody.contractCreateInstance) {
|
|
100
|
-
transactionType = "contractCreate";
|
|
101
|
-
} else if (txBody.contractUpdateInstance) {
|
|
102
|
-
transactionType = "contractUpdate";
|
|
103
|
-
} else if (txBody.contractDeleteInstance) {
|
|
104
|
-
transactionType = "contractDelete";
|
|
105
|
-
} else if (txBody.tokenCreation) {
|
|
106
|
-
transactionType = "tokenCreate";
|
|
107
|
-
} else if (txBody.tokenUpdate) {
|
|
108
|
-
transactionType = "tokenUpdate";
|
|
109
|
-
} else if (txBody.tokenDeletion) {
|
|
110
|
-
transactionType = "tokenDelete";
|
|
111
|
-
} else if (txBody.tokenAssociate) {
|
|
112
|
-
transactionType = "tokenAssociate";
|
|
113
|
-
} else if (txBody.tokenDissociate) {
|
|
114
|
-
transactionType = "tokenDissociate";
|
|
115
|
-
} else if (txBody.tokenMint) {
|
|
116
|
-
transactionType = "tokenMint";
|
|
117
|
-
} else if (txBody.tokenBurn) {
|
|
118
|
-
transactionType = "tokenBurn";
|
|
119
|
-
} else if (txBody.tokenFeeScheduleUpdate) {
|
|
120
|
-
transactionType = "tokenFeeScheduleUpdate";
|
|
121
|
-
} else if (txBody.tokenFreeze) {
|
|
122
|
-
transactionType = "tokenFreeze";
|
|
123
|
-
} else if (txBody.tokenUnfreeze) {
|
|
124
|
-
transactionType = "tokenUnfreeze";
|
|
125
|
-
} else if (txBody.tokenGrantKyc) {
|
|
126
|
-
transactionType = "tokenGrantKyc";
|
|
127
|
-
} else if (txBody.tokenRevokeKyc) {
|
|
128
|
-
transactionType = "tokenRevokeKyc";
|
|
129
|
-
} else if (txBody.tokenPause) {
|
|
130
|
-
transactionType = "tokenPause";
|
|
131
|
-
} else if (txBody.tokenUnpause) {
|
|
132
|
-
transactionType = "tokenUnpause";
|
|
133
|
-
} else if (txBody.tokenWipe) {
|
|
134
|
-
transactionType = "tokenWipe";
|
|
135
|
-
} else if (txBody.scheduleDelete) {
|
|
136
|
-
transactionType = "scheduleDelete";
|
|
137
|
-
}
|
|
138
|
-
return transactionType;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Convert technical transaction type to human-readable format
|
|
142
|
-
* @param type - The technical transaction type
|
|
143
|
-
* @returns The human-readable transaction type
|
|
144
|
-
*/
|
|
145
|
-
static getHumanReadableType(type) {
|
|
146
|
-
const typeMap = {
|
|
147
|
-
cryptoTransfer: "HBAR Transfer",
|
|
148
|
-
cryptoCreateAccount: "Create Account",
|
|
149
|
-
cryptoUpdateAccount: "Update Account",
|
|
150
|
-
cryptoDeleteAccount: "Delete Account",
|
|
151
|
-
cryptoApproveAllowance: "Approve Allowance",
|
|
152
|
-
cryptoDeleteAllowance: "Delete Allowance",
|
|
153
|
-
consensusCreateTopic: "Create Topic",
|
|
154
|
-
consensusUpdateTopic: "Update Topic",
|
|
155
|
-
consensusSubmitMessage: "Submit Message",
|
|
156
|
-
consensusDeleteTopic: "Delete Topic",
|
|
157
|
-
fileCreate: "Create File",
|
|
158
|
-
fileAppend: "Append File",
|
|
159
|
-
fileUpdate: "Update File",
|
|
160
|
-
fileDelete: "Delete File",
|
|
161
|
-
contractCall: "Contract Call",
|
|
162
|
-
contractCreate: "Create Contract",
|
|
163
|
-
contractUpdate: "Update Contract",
|
|
164
|
-
contractDelete: "Delete Contract",
|
|
165
|
-
ethereumTransaction: "Ethereum Transaction",
|
|
166
|
-
tokenCreate: "Create Token",
|
|
167
|
-
tokenUpdate: "Update Token",
|
|
168
|
-
tokenDelete: "Delete Token",
|
|
169
|
-
tokenAssociate: "Associate Token",
|
|
170
|
-
tokenDissociate: "Dissociate Token",
|
|
171
|
-
tokenMint: "Mint Token",
|
|
172
|
-
tokenBurn: "Burn Token",
|
|
173
|
-
tokenFeeScheduleUpdate: "Update Token Fee Schedule",
|
|
174
|
-
tokenFreeze: "Freeze Token",
|
|
175
|
-
tokenUnfreeze: "Unfreeze Token",
|
|
176
|
-
tokenGrantKyc: "Grant KYC",
|
|
177
|
-
tokenRevokeKyc: "Revoke KYC",
|
|
178
|
-
tokenPause: "Pause Token",
|
|
179
|
-
tokenUnpause: "Unpause Token",
|
|
180
|
-
tokenWipe: "Wipe Token",
|
|
181
|
-
scheduleCreate: "Create Schedule",
|
|
182
|
-
scheduleDelete: "Delete Schedule",
|
|
183
|
-
scheduleSign: "Sign Schedule",
|
|
184
|
-
systemDelete: "System Delete",
|
|
185
|
-
systemUndelete: "System Undelete",
|
|
186
|
-
unknown: "Unknown Transaction"
|
|
187
|
-
};
|
|
188
|
-
let result;
|
|
189
|
-
if (typeMap[type]) {
|
|
190
|
-
result = typeMap[type];
|
|
21
|
+
let sdk;
|
|
22
|
+
if (existingSDK) {
|
|
23
|
+
logger.debug("Using existing InscriptionSDK instance");
|
|
24
|
+
sdk = existingSDK;
|
|
25
|
+
} else if (options.apiKey) {
|
|
26
|
+
logger.debug("Initializing InscriptionSDK with API key");
|
|
27
|
+
sdk = new InscriptionSDK({
|
|
28
|
+
apiKey: options.apiKey,
|
|
29
|
+
network: clientConfig.network || "mainnet"
|
|
30
|
+
});
|
|
191
31
|
} else {
|
|
192
|
-
|
|
32
|
+
logger.debug("Initializing InscriptionSDK with server auth");
|
|
33
|
+
sdk = await InscriptionSDK.createWithAuth({
|
|
34
|
+
type: "server",
|
|
35
|
+
accountId: clientConfig.accountId,
|
|
36
|
+
privateKey: clientConfig.privateKey,
|
|
37
|
+
network: clientConfig.network || "mainnet"
|
|
38
|
+
});
|
|
193
39
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const accountId = AccountId.fromString(
|
|
210
|
-
`${shard}.${realm}.${accountNum}`
|
|
211
|
-
);
|
|
212
|
-
const hbarValue = amount.amount ? Long.fromValue(amount.amount) : Long.ZERO;
|
|
213
|
-
const hbarAmount = Hbar.fromTinybars(hbarValue);
|
|
214
|
-
return {
|
|
215
|
-
accountId: accountId.toString(),
|
|
216
|
-
amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar)),
|
|
217
|
-
isDecimal: true
|
|
218
|
-
};
|
|
40
|
+
const baseRequest = {
|
|
41
|
+
holderId: clientConfig.accountId,
|
|
42
|
+
metadata: options.metadata || {},
|
|
43
|
+
tags: options.tags || [],
|
|
44
|
+
mode: options.mode || "file",
|
|
45
|
+
chunkSize: options.chunkSize
|
|
46
|
+
};
|
|
47
|
+
let request;
|
|
48
|
+
switch (input.type) {
|
|
49
|
+
case "url":
|
|
50
|
+
request = {
|
|
51
|
+
...baseRequest,
|
|
52
|
+
file: {
|
|
53
|
+
type: "url",
|
|
54
|
+
url: input.url
|
|
219
55
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
tokenId: tokenId.toString(),
|
|
240
|
-
accountId: accountId.toString(),
|
|
241
|
-
amount: tokenAmount
|
|
242
|
-
});
|
|
56
|
+
};
|
|
57
|
+
break;
|
|
58
|
+
case "file":
|
|
59
|
+
request = {
|
|
60
|
+
...baseRequest,
|
|
61
|
+
file: {
|
|
62
|
+
type: "path",
|
|
63
|
+
path: input.path
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
break;
|
|
67
|
+
case "buffer":
|
|
68
|
+
request = {
|
|
69
|
+
...baseRequest,
|
|
70
|
+
file: {
|
|
71
|
+
type: "base64",
|
|
72
|
+
base64: Buffer.from(input.buffer).toString("base64"),
|
|
73
|
+
fileName: input.fileName,
|
|
74
|
+
mimeType: input.mimeType
|
|
243
75
|
}
|
|
244
|
-
}
|
|
76
|
+
};
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
if (options.mode === "hashinal") {
|
|
80
|
+
request.metadataObject = options.metadata;
|
|
81
|
+
request.creator = options.metadata?.creator || clientConfig.accountId;
|
|
82
|
+
request.description = options.metadata?.description;
|
|
83
|
+
if (options.jsonFileURL) {
|
|
84
|
+
request.jsonFileURL = options.jsonFileURL;
|
|
245
85
|
}
|
|
246
86
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
87
|
+
logger.debug("Preparing to inscribe content", {
|
|
88
|
+
type: input.type,
|
|
89
|
+
mode: options.mode || "file",
|
|
90
|
+
holderId: clientConfig.accountId
|
|
91
|
+
});
|
|
92
|
+
const result = await sdk.inscribeAndExecute(request, clientConfig);
|
|
93
|
+
logger.info("Starting to inscribe.", {
|
|
94
|
+
type: input.type,
|
|
95
|
+
mode: options.mode || "file",
|
|
96
|
+
transactionId: result.jobId
|
|
97
|
+
});
|
|
98
|
+
if (options.waitForConfirmation) {
|
|
99
|
+
logger.debug("Waiting for inscription confirmation", {
|
|
100
|
+
transactionId: result.jobId,
|
|
101
|
+
maxAttempts: options.waitMaxAttempts,
|
|
102
|
+
intervalMs: options.waitIntervalMs
|
|
103
|
+
});
|
|
104
|
+
const inscription = await waitForInscriptionConfirmation(
|
|
105
|
+
sdk,
|
|
106
|
+
result.jobId,
|
|
107
|
+
options.waitMaxAttempts,
|
|
108
|
+
options.waitIntervalMs,
|
|
109
|
+
options.progressCallback
|
|
260
110
|
);
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
if (functionParameters && functionParameters.length >= 8) {
|
|
270
|
-
functionName = functionParameters.substring(0, 8);
|
|
271
|
-
}
|
|
272
|
-
result.contractCall = {
|
|
273
|
-
contractId: contractId.toString(),
|
|
274
|
-
gas: gasLimit,
|
|
275
|
-
amount,
|
|
276
|
-
functionParameters,
|
|
277
|
-
functionName
|
|
111
|
+
logger.info("Inscription confirmation received", {
|
|
112
|
+
transactionId: result.jobId
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
confirmed: true,
|
|
116
|
+
result,
|
|
117
|
+
inscription,
|
|
118
|
+
sdk
|
|
278
119
|
};
|
|
279
120
|
}
|
|
121
|
+
return {
|
|
122
|
+
confirmed: false,
|
|
123
|
+
result,
|
|
124
|
+
sdk
|
|
125
|
+
};
|
|
126
|
+
} catch (error) {
|
|
127
|
+
logger.error("Error during inscription process", error);
|
|
128
|
+
throw error;
|
|
280
129
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
metadata.push(Buffer$1.from(meta).toString("base64"));
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
result.tokenMint = {
|
|
302
|
-
tokenId: tokenId.toString(),
|
|
303
|
-
amount,
|
|
304
|
-
metadata: metadata.length > 0 ? metadata : void 0
|
|
305
|
-
};
|
|
130
|
+
}
|
|
131
|
+
async function inscribeWithSigner(input, signer, options, existingSDK) {
|
|
132
|
+
const logger = Logger.getInstance({
|
|
133
|
+
module: "Inscriber",
|
|
134
|
+
...options.logging
|
|
135
|
+
});
|
|
136
|
+
logger.info("Starting inscription process with signer", {
|
|
137
|
+
type: input.type,
|
|
138
|
+
mode: options.mode || "file",
|
|
139
|
+
...input.type === "url" ? { url: input.url } : {},
|
|
140
|
+
...input.type === "file" ? { path: input.path } : {},
|
|
141
|
+
...input.type === "buffer" ? { fileName: input.fileName, bufferSize: input.buffer.byteLength } : {}
|
|
142
|
+
});
|
|
143
|
+
try {
|
|
144
|
+
if (options.mode === "hashinal" && options.metadata) {
|
|
145
|
+
validateHashinalMetadata(options.metadata, logger);
|
|
306
146
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
147
|
+
const accountId = signer.getAccountId().toString();
|
|
148
|
+
logger.debug("Using account ID from signer", { accountId });
|
|
149
|
+
let sdk;
|
|
150
|
+
if (existingSDK) {
|
|
151
|
+
logger.debug("Using existing InscriptionSDK instance");
|
|
152
|
+
sdk = existingSDK;
|
|
153
|
+
} else if (options.apiKey) {
|
|
154
|
+
logger.debug("Initializing InscriptionSDK with API key");
|
|
155
|
+
sdk = new InscriptionSDK({
|
|
156
|
+
apiKey: options.apiKey,
|
|
157
|
+
network: options.network || "mainnet"
|
|
158
|
+
});
|
|
159
|
+
} else {
|
|
160
|
+
logger.debug("Initializing InscriptionSDK with client auth");
|
|
161
|
+
sdk = await InscriptionSDK.createWithAuth({
|
|
162
|
+
type: "client",
|
|
163
|
+
accountId,
|
|
164
|
+
signer,
|
|
165
|
+
network: options.network || "mainnet"
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
const baseRequest = {
|
|
169
|
+
holderId: accountId,
|
|
170
|
+
metadata: options.metadata || {},
|
|
171
|
+
tags: options.tags || [],
|
|
172
|
+
mode: options.mode || "file",
|
|
173
|
+
chunkSize: options.chunkSize
|
|
174
|
+
};
|
|
175
|
+
let request;
|
|
176
|
+
switch (input.type) {
|
|
177
|
+
case "url":
|
|
178
|
+
request = {
|
|
179
|
+
...baseRequest,
|
|
180
|
+
file: {
|
|
181
|
+
type: "url",
|
|
182
|
+
url: input.url
|
|
325
183
|
}
|
|
326
|
-
}
|
|
184
|
+
};
|
|
185
|
+
break;
|
|
186
|
+
case "file":
|
|
187
|
+
request = {
|
|
188
|
+
...baseRequest,
|
|
189
|
+
file: {
|
|
190
|
+
type: "path",
|
|
191
|
+
path: input.path
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
break;
|
|
195
|
+
case "buffer":
|
|
196
|
+
request = {
|
|
197
|
+
...baseRequest,
|
|
198
|
+
file: {
|
|
199
|
+
type: "base64",
|
|
200
|
+
base64: Buffer.from(input.buffer).toString("base64"),
|
|
201
|
+
fileName: input.fileName,
|
|
202
|
+
mimeType: input.mimeType
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
if (options.mode === "hashinal") {
|
|
208
|
+
request.metadataObject = options.metadata;
|
|
209
|
+
request.creator = options.metadata?.creator || accountId;
|
|
210
|
+
request.description = options.metadata?.description;
|
|
211
|
+
if (options.jsonFileURL) {
|
|
212
|
+
request.jsonFileURL = options.jsonFileURL;
|
|
327
213
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
214
|
+
}
|
|
215
|
+
logger.debug("Preparing to inscribe content with signer", {
|
|
216
|
+
type: input.type,
|
|
217
|
+
mode: options.mode || "file",
|
|
218
|
+
holderId: accountId
|
|
219
|
+
});
|
|
220
|
+
const result = await sdk.inscribe(
|
|
221
|
+
{
|
|
222
|
+
...request,
|
|
223
|
+
holderId: accountId
|
|
224
|
+
},
|
|
225
|
+
signer
|
|
226
|
+
);
|
|
227
|
+
logger.info("Inscription started", {
|
|
228
|
+
type: input.type,
|
|
229
|
+
mode: options.mode || "file",
|
|
230
|
+
transactionId: result.jobId
|
|
231
|
+
});
|
|
232
|
+
if (options.waitForConfirmation) {
|
|
233
|
+
logger.debug("Waiting for inscription confirmation", {
|
|
234
|
+
transactionId: result.jobId,
|
|
235
|
+
maxAttempts: options.waitMaxAttempts,
|
|
236
|
+
intervalMs: options.waitIntervalMs
|
|
237
|
+
});
|
|
238
|
+
const inscription = await waitForInscriptionConfirmation(
|
|
239
|
+
sdk,
|
|
240
|
+
result.jobId,
|
|
241
|
+
options.waitMaxAttempts,
|
|
242
|
+
options.waitIntervalMs,
|
|
243
|
+
options.progressCallback
|
|
244
|
+
);
|
|
245
|
+
logger.info("Inscription confirmation received", {
|
|
246
|
+
transactionId: result.jobId
|
|
247
|
+
});
|
|
248
|
+
return {
|
|
249
|
+
confirmed: true,
|
|
250
|
+
result,
|
|
251
|
+
inscription,
|
|
252
|
+
sdk
|
|
332
253
|
};
|
|
333
254
|
}
|
|
255
|
+
return {
|
|
256
|
+
confirmed: false,
|
|
257
|
+
result,
|
|
258
|
+
sdk
|
|
259
|
+
};
|
|
260
|
+
} catch (error) {
|
|
261
|
+
logger.error("Error during inscription process", error);
|
|
262
|
+
throw error;
|
|
334
263
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
let contractCallSummary = `Contract call to ${parsedTx.contractCall.contractId} with ${parsedTx.contractCall.gas} gas`;
|
|
363
|
-
if (parsedTx.contractCall.amount > 0) {
|
|
364
|
-
contractCallSummary += ` and ${parsedTx.contractCall.amount} HBAR`;
|
|
365
|
-
}
|
|
366
|
-
if (parsedTx.contractCall.functionName) {
|
|
367
|
-
contractCallSummary += ` calling function ${parsedTx.contractCall.functionName}`;
|
|
368
|
-
}
|
|
369
|
-
summary = contractCallSummary;
|
|
370
|
-
} else if (parsedTx.tokenMint) {
|
|
371
|
-
summary = `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;
|
|
372
|
-
} else if (parsedTx.tokenBurn) {
|
|
373
|
-
summary = `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;
|
|
374
|
-
} else if (parsedTx.tokenTransfers.length > 0) {
|
|
375
|
-
const tokenGroups = {};
|
|
376
|
-
for (const transfer of parsedTx.tokenTransfers) {
|
|
377
|
-
if (!tokenGroups[transfer.tokenId]) {
|
|
378
|
-
tokenGroups[transfer.tokenId] = [];
|
|
379
|
-
}
|
|
380
|
-
tokenGroups[transfer.tokenId].push(transfer);
|
|
381
|
-
}
|
|
382
|
-
const tokenSummaries = [];
|
|
383
|
-
for (const [tokenId, transfers] of Object.entries(tokenGroups)) {
|
|
384
|
-
const senders = [];
|
|
385
|
-
const receivers = [];
|
|
386
|
-
for (const transfer of transfers) {
|
|
387
|
-
if (transfer.amount < 0) {
|
|
388
|
-
senders.push(
|
|
389
|
-
`${transfer.accountId} (${Math.abs(transfer.amount)})`
|
|
390
|
-
);
|
|
391
|
-
} else if (transfer.amount > 0) {
|
|
392
|
-
receivers.push(`${transfer.accountId} (${transfer.amount})`);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
if (senders.length > 0 && receivers.length > 0) {
|
|
396
|
-
tokenSummaries.push(
|
|
397
|
-
`Transfer of token ${tokenId} from ${senders.join(
|
|
398
|
-
", "
|
|
399
|
-
)} to ${receivers.join(", ")}`
|
|
400
|
-
);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
if (tokenSummaries.length > 0) {
|
|
404
|
-
summary = tokenSummaries.join("; ");
|
|
405
|
-
} else {
|
|
406
|
-
summary = parsedTx.humanReadableType;
|
|
407
|
-
}
|
|
264
|
+
}
|
|
265
|
+
async function retrieveInscription(transactionId, options) {
|
|
266
|
+
const logger = Logger.getInstance({
|
|
267
|
+
module: "Inscriber",
|
|
268
|
+
...options?.logging || {}
|
|
269
|
+
});
|
|
270
|
+
const formattedTransactionId = transactionId.includes("@") ? `${transactionId.split("@")[0]}-${transactionId.split("@")[1].replace(/\./g, "-")}` : transactionId;
|
|
271
|
+
logger.info("Retrieving inscription", {
|
|
272
|
+
originalTransactionId: transactionId,
|
|
273
|
+
formattedTransactionId
|
|
274
|
+
});
|
|
275
|
+
try {
|
|
276
|
+
let sdk;
|
|
277
|
+
if (options?.apiKey) {
|
|
278
|
+
logger.debug("Initializing InscriptionSDK with API key");
|
|
279
|
+
sdk = new InscriptionSDK({
|
|
280
|
+
apiKey: options.apiKey,
|
|
281
|
+
network: options.network || "mainnet"
|
|
282
|
+
});
|
|
283
|
+
} else if (options?.accountId && options?.privateKey) {
|
|
284
|
+
logger.debug("Initializing InscriptionSDK with server auth");
|
|
285
|
+
sdk = await InscriptionSDK.createWithAuth({
|
|
286
|
+
type: "server",
|
|
287
|
+
accountId: options.accountId,
|
|
288
|
+
privateKey: options.privateKey,
|
|
289
|
+
network: options.network || "mainnet"
|
|
290
|
+
});
|
|
408
291
|
} else {
|
|
409
|
-
|
|
292
|
+
const error = new Error(
|
|
293
|
+
"Either API key or account ID and private key are required for retrieving inscriptions"
|
|
294
|
+
);
|
|
295
|
+
logger.error("Missing authentication credentials", {
|
|
296
|
+
hasApiKey: Boolean(options?.apiKey),
|
|
297
|
+
hasAccountId: Boolean(options?.accountId),
|
|
298
|
+
hasPrivateKey: Boolean(options?.privateKey)
|
|
299
|
+
});
|
|
300
|
+
throw error;
|
|
301
|
+
}
|
|
302
|
+
logger.debug("Initialized SDK for inscription retrieval", {
|
|
303
|
+
formattedTransactionId,
|
|
304
|
+
network: options.network || "mainnet"
|
|
305
|
+
});
|
|
306
|
+
const result = await sdk.retrieveInscription(formattedTransactionId);
|
|
307
|
+
logger.info("Successfully retrieved inscription", {
|
|
308
|
+
formattedTransactionId
|
|
309
|
+
});
|
|
310
|
+
return result;
|
|
311
|
+
} catch (error) {
|
|
312
|
+
logger.error("Error retrieving inscription", {
|
|
313
|
+
formattedTransactionId,
|
|
314
|
+
error
|
|
315
|
+
});
|
|
316
|
+
throw error;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
function validateHashinalMetadata(metadata, logger) {
|
|
320
|
+
const requiredFields = ["name", "creator", "description", "type"];
|
|
321
|
+
const missingFields = requiredFields.filter((field) => !metadata[field]);
|
|
322
|
+
if (missingFields.length > 0) {
|
|
323
|
+
const error = new Error(
|
|
324
|
+
`Missing required Hashinal metadata fields: ${missingFields.join(", ")}`
|
|
325
|
+
);
|
|
326
|
+
logger.error("Hashinal metadata validation failed", { missingFields });
|
|
327
|
+
throw error;
|
|
328
|
+
}
|
|
329
|
+
logger.debug("Hashinal metadata validation passed", {
|
|
330
|
+
name: metadata.name,
|
|
331
|
+
creator: metadata.creator,
|
|
332
|
+
description: metadata.description,
|
|
333
|
+
type: metadata.type,
|
|
334
|
+
hasAttributes: !!metadata.attributes,
|
|
335
|
+
hasProperties: !!metadata.properties
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
async function waitForInscriptionConfirmation(sdk, transactionId, maxAttempts = 30, intervalMs = 4e3, progressCallback) {
|
|
339
|
+
const logger = Logger.getInstance({ module: "Inscriber" });
|
|
340
|
+
const progressReporter = new ProgressReporter({
|
|
341
|
+
module: "Inscriber",
|
|
342
|
+
logger,
|
|
343
|
+
callback: progressCallback
|
|
344
|
+
});
|
|
345
|
+
try {
|
|
346
|
+
logger.debug("Waiting for inscription confirmation", {
|
|
347
|
+
transactionId,
|
|
348
|
+
maxAttempts,
|
|
349
|
+
intervalMs
|
|
350
|
+
});
|
|
351
|
+
progressReporter.preparing("Preparing for inscription confirmation", 5, {
|
|
352
|
+
transactionId,
|
|
353
|
+
maxAttempts,
|
|
354
|
+
intervalMs
|
|
355
|
+
});
|
|
356
|
+
try {
|
|
357
|
+
const waitMethod = sdk.waitForInscription.bind(sdk);
|
|
358
|
+
const wrappedCallback = (data) => {
|
|
359
|
+
const stage = data.stage || "confirming";
|
|
360
|
+
const message = data.message || "Processing inscription";
|
|
361
|
+
const percent = data.progressPercent || 50;
|
|
362
|
+
progressReporter.report({
|
|
363
|
+
stage,
|
|
364
|
+
message,
|
|
365
|
+
progressPercent: percent,
|
|
366
|
+
details: {}
|
|
367
|
+
});
|
|
368
|
+
};
|
|
369
|
+
return await waitMethod(
|
|
370
|
+
transactionId,
|
|
371
|
+
maxAttempts,
|
|
372
|
+
intervalMs,
|
|
373
|
+
true,
|
|
374
|
+
wrappedCallback
|
|
375
|
+
);
|
|
376
|
+
} catch (e) {
|
|
377
|
+
console.log(e);
|
|
378
|
+
logger.debug("Falling back to standard waitForInscription method", {
|
|
379
|
+
error: e
|
|
380
|
+
});
|
|
381
|
+
progressReporter.verifying("Verifying inscription status", 50, {
|
|
382
|
+
error: e
|
|
383
|
+
});
|
|
384
|
+
return await sdk.waitForInscription(
|
|
385
|
+
transactionId,
|
|
386
|
+
maxAttempts,
|
|
387
|
+
intervalMs,
|
|
388
|
+
true
|
|
389
|
+
);
|
|
410
390
|
}
|
|
411
|
-
|
|
391
|
+
} catch (error) {
|
|
392
|
+
logger.error("Error waiting for inscription confirmation", {
|
|
393
|
+
transactionId,
|
|
394
|
+
maxAttempts,
|
|
395
|
+
intervalMs,
|
|
396
|
+
error
|
|
397
|
+
});
|
|
398
|
+
progressReporter.failed("Inscription confirmation failed", {
|
|
399
|
+
transactionId,
|
|
400
|
+
error
|
|
401
|
+
});
|
|
402
|
+
throw error;
|
|
412
403
|
}
|
|
413
404
|
}
|
|
414
405
|
export {
|
|
415
|
-
|
|
406
|
+
inscribe,
|
|
407
|
+
inscribeWithSigner,
|
|
408
|
+
retrieveInscription
|
|
416
409
|
};
|
|
417
410
|
//# sourceMappingURL=standards-sdk.es19.js.map
|