@hashgraphonline/standards-sdk 0.0.111 → 0.0.112-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/cjs/hcs-10/base-client.d.ts +46 -1
  2. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-10/browser.d.ts +30 -0
  4. package/dist/cjs/hcs-10/browser.d.ts.map +1 -1
  5. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  6. package/dist/cjs/hcs-10/types.d.ts +34 -0
  7. package/dist/cjs/hcs-10/types.d.ts.map +1 -1
  8. package/dist/cjs/index-BjSZGzAb.cjs +11 -0
  9. package/dist/cjs/index-BjSZGzAb.cjs.map +1 -0
  10. package/dist/cjs/{index-CHar8dVv-B3h_fMlF.cjs → index-CHar8dVv-CRh6n7ac.cjs} +2 -2
  11. package/dist/cjs/{index-CHar8dVv-B3h_fMlF.cjs.map → index-CHar8dVv-CRh6n7ac.cjs.map} +1 -1
  12. package/dist/cjs/services/mirror-node.d.ts +249 -2
  13. package/dist/cjs/services/mirror-node.d.ts.map +1 -1
  14. package/dist/cjs/services/types.d.ts +328 -0
  15. package/dist/cjs/services/types.d.ts.map +1 -1
  16. package/dist/cjs/standards-sdk.cjs +1 -1
  17. package/dist/es/hcs-10/base-client.d.ts +46 -1
  18. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  19. package/dist/es/hcs-10/browser.d.ts +30 -0
  20. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  21. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  22. package/dist/es/hcs-10/types.d.ts +34 -0
  23. package/dist/es/hcs-10/types.d.ts.map +1 -1
  24. package/dist/es/services/mirror-node.d.ts +249 -2
  25. package/dist/es/services/mirror-node.d.ts.map +1 -1
  26. package/dist/es/services/types.d.ts +328 -0
  27. package/dist/es/services/types.d.ts.map +1 -1
  28. package/dist/es/standards-sdk.es19.js +6 -6
  29. package/dist/es/standards-sdk.es20.js +1 -1
  30. package/dist/es/standards-sdk.es21.js +760 -44
  31. package/dist/es/standards-sdk.es21.js.map +1 -1
  32. package/dist/es/standards-sdk.es24.js +7139 -450
  33. package/dist/es/standards-sdk.es24.js.map +1 -1
  34. package/dist/es/standards-sdk.es25.js +2 -109
  35. package/dist/es/standards-sdk.es25.js.map +1 -1
  36. package/dist/es/standards-sdk.es26.js +469 -34
  37. package/dist/es/standards-sdk.es26.js.map +1 -1
  38. package/dist/es/standards-sdk.es27.js +74 -222
  39. package/dist/es/standards-sdk.es27.js.map +1 -1
  40. package/dist/es/standards-sdk.es28.js +34 -141
  41. package/dist/es/standards-sdk.es28.js.map +1 -1
  42. package/dist/es/standards-sdk.es29.js +251 -5
  43. package/dist/es/standards-sdk.es29.js.map +1 -1
  44. package/dist/es/standards-sdk.es30.js +154 -7171
  45. package/dist/es/standards-sdk.es30.js.map +1 -1
  46. package/dist/es/standards-sdk.es31.js +11 -2
  47. package/dist/es/standards-sdk.es31.js.map +1 -1
  48. package/dist/es/standards-sdk.es32.js +7135 -41
  49. package/dist/es/standards-sdk.es32.js.map +1 -1
  50. package/dist/es/standards-sdk.es33.js +41 -7135
  51. package/dist/es/standards-sdk.es33.js.map +1 -1
  52. package/dist/es/standards-sdk.es5.js +10 -1
  53. package/dist/es/standards-sdk.es5.js.map +1 -1
  54. package/dist/es/standards-sdk.es7.js +3 -2
  55. package/dist/es/standards-sdk.es7.js.map +1 -1
  56. package/dist/es/standards-sdk.es8.js +3 -2
  57. package/dist/es/standards-sdk.es8.js.map +1 -1
  58. package/dist/es/standards-sdk.es9.js +1 -1
  59. package/dist/umd/hcs-10/base-client.d.ts +46 -1
  60. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  61. package/dist/umd/hcs-10/browser.d.ts +30 -0
  62. package/dist/umd/hcs-10/browser.d.ts.map +1 -1
  63. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  64. package/dist/umd/hcs-10/types.d.ts +34 -0
  65. package/dist/umd/hcs-10/types.d.ts.map +1 -1
  66. package/dist/umd/services/mirror-node.d.ts +249 -2
  67. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  68. package/dist/umd/services/types.d.ts +328 -0
  69. package/dist/umd/services/types.d.ts.map +1 -1
  70. package/dist/umd/standards-sdk.umd.js +12 -12
  71. package/dist/umd/standards-sdk.umd.js.map +1 -1
  72. package/package.json +1 -1
  73. package/dist/cjs/index-B0xnKxrq.cjs +0 -11
  74. package/dist/cjs/index-B0xnKxrq.cjs.map +0 -1
@@ -1,176 +1,69 @@
1
- import { Hbar, Long, HbarUnit, ContractId, AccountId, FileId } from "@hashgraph/sdk";
1
+ import { Long } from "@hashgraph/sdk";
2
+ import { parseKey } from "./standards-sdk.es33.js";
2
3
  import { Buffer } from "buffer";
3
- import { parseKey } from "./standards-sdk.es32.js";
4
- class SCSParser {
5
- static parseContractCall(body) {
6
- if (!body) return void 0;
7
- const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));
8
- const data = {
9
- contractId: new ContractId(
10
- body.contractID.shardNum ?? 0,
11
- body.contractID.realmNum ?? 0,
12
- body.contractID.contractNum ?? 0
13
- ).toString(),
14
- gas: Long.fromValue(body.gas ?? 0).toNumber(),
15
- amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar))
16
- };
17
- if (body.functionParameters) {
18
- data.functionParameters = Buffer.from(body.functionParameters).toString(
19
- "hex"
20
- );
21
- if (data.functionParameters.length >= 8) {
22
- data.functionName = data.functionParameters.substring(0, 8);
23
- }
24
- }
25
- return data;
26
- }
27
- static parseContractCreate(body) {
4
+ class FileParser {
5
+ static parseFileCreate(body) {
28
6
  if (!body) return void 0;
29
7
  const data = {};
30
- if (body.initialBalance) {
31
- data.initialBalance = Hbar.fromTinybars(
32
- Long.fromValue(body.initialBalance)
33
- ).toString(HbarUnit.Hbar);
34
- }
35
- if (body.gas) {
36
- data.gas = Long.fromValue(body.gas).toString();
8
+ if (body.expirationTime?.seconds) {
9
+ data.expirationTime = `${Long.fromValue(
10
+ body.expirationTime.seconds
11
+ ).toString()}.${body.expirationTime.nanos}`;
37
12
  }
38
- if (body.adminKey) {
39
- data.adminKey = parseKey(body.adminKey);
13
+ if (body.keys) {
14
+ data.keys = parseKey({ keyList: body.keys });
40
15
  }
41
- if (body.constructorParameters) {
42
- data.constructorParameters = Buffer.from(
43
- body.constructorParameters
44
- ).toString("hex");
16
+ if (body.contents) {
17
+ data.contents = Buffer.from(body.contents).toString("base64");
45
18
  }
46
19
  if (body.memo) {
47
20
  data.memo = body.memo;
48
21
  }
49
- if (body.autoRenewPeriod?.seconds) {
50
- data.autoRenewPeriod = Long.fromValue(
51
- body.autoRenewPeriod.seconds
52
- ).toString();
53
- }
54
- if (body.stakedAccountId) {
55
- data.stakedAccountId = new AccountId(
56
- body.stakedAccountId.shardNum ?? 0,
57
- body.stakedAccountId.realmNum ?? 0,
58
- body.stakedAccountId.accountNum ?? 0
59
- ).toString();
60
- } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
61
- data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
62
- }
63
- if (body.declineReward !== void 0) {
64
- data.declineReward = body.declineReward;
65
- }
66
- if (body.maxAutomaticTokenAssociations !== void 0) {
67
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
68
- }
22
+ return data;
23
+ }
24
+ static parseFileAppend(body) {
25
+ if (!body) return void 0;
26
+ const data = {};
69
27
  if (body.fileID) {
70
- data.initcodeSource = "fileID";
71
- data.initcode = new FileId(
72
- body.fileID.shardNum ?? 0,
73
- body.fileID.realmNum ?? 0,
74
- body.fileID.fileNum ?? 0
75
- ).toString();
76
- } else if (body.initcode && body.initcode.length > 0) {
77
- data.initcodeSource = "bytes";
78
- data.initcode = Buffer.from(body.initcode).toString("hex");
28
+ data.fileId = `${body.fileID.shardNum ?? 0}.${body.fileID.realmNum ?? 0}.${body.fileID.fileNum ?? 0}`;
29
+ }
30
+ if (body.contents) {
31
+ data.contents = Buffer.from(body.contents).toString("base64");
79
32
  }
80
33
  return data;
81
34
  }
82
- static parseContractUpdate(body) {
35
+ static parseFileUpdate(body) {
83
36
  if (!body) return void 0;
84
37
  const data = {};
85
- if (body.contractID) {
86
- data.contractIdToUpdate = new ContractId(
87
- body.contractID.shardNum ?? 0,
88
- body.contractID.realmNum ?? 0,
89
- body.contractID.contractNum ?? 0
90
- ).toString();
91
- }
92
- if (body.adminKey) {
93
- data.adminKey = parseKey(body.adminKey);
38
+ if (body.fileID) {
39
+ data.fileId = `${body.fileID.shardNum ?? 0}.${body.fileID.realmNum ?? 0}.${body.fileID.fileNum ?? 0}`;
94
40
  }
95
41
  if (body.expirationTime?.seconds) {
96
42
  data.expirationTime = `${Long.fromValue(
97
43
  body.expirationTime.seconds
98
44
  ).toString()}.${body.expirationTime.nanos}`;
99
45
  }
100
- if (body.autoRenewPeriod?.seconds) {
101
- data.autoRenewPeriod = Long.fromValue(
102
- body.autoRenewPeriod.seconds
103
- ).toString();
46
+ if (body.keys) {
47
+ data.keys = parseKey({ keyList: body.keys });
104
48
  }
105
- if (body.memo) {
106
- const memoAsAny = body.memo;
107
- if (memoAsAny && typeof memoAsAny === "object" && memoAsAny.hasOwnProperty("value")) {
108
- const memoVal = memoAsAny.value;
109
- data.memo = memoVal === null || memoVal === void 0 ? void 0 : String(memoVal);
110
- } else if (typeof memoAsAny === "string") {
111
- data.memo = memoAsAny;
112
- } else {
113
- data.memo = void 0;
114
- }
115
- } else {
116
- data.memo = void 0;
117
- }
118
- if (body.stakedAccountId) {
119
- data.stakedAccountId = new AccountId(
120
- body.stakedAccountId.shardNum ?? 0,
121
- body.stakedAccountId.realmNum ?? 0,
122
- body.stakedAccountId.accountNum ?? 0
123
- ).toString();
124
- data.stakedNodeId = void 0;
125
- } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0 && Long.fromValue(body.stakedNodeId).notEquals(-1)) {
126
- data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
127
- data.stakedAccountId = void 0;
128
- } else {
129
- data.stakedNodeId = void 0;
130
- data.stakedAccountId = void 0;
131
- }
132
- if (body.declineReward?.value !== void 0) {
133
- data.declineReward = body.declineReward.value;
49
+ if (body.contents) {
50
+ data.contents = Buffer.from(body.contents).toString("base64");
134
51
  }
135
- if (body.maxAutomaticTokenAssociations?.value !== void 0) {
136
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
137
- }
138
- if (body.autoRenewAccountId) {
139
- data.autoRenewAccountId = new AccountId(
140
- body.autoRenewAccountId.shardNum ?? 0,
141
- body.autoRenewAccountId.realmNum ?? 0,
142
- body.autoRenewAccountId.accountNum ?? 0
143
- ).toString();
52
+ if (body.memo?.value !== void 0) {
53
+ data.memo = body.memo.value;
144
54
  }
145
55
  return data;
146
56
  }
147
- static parseContractDelete(body) {
57
+ static parseFileDelete(body) {
148
58
  if (!body) return void 0;
149
59
  const data = {};
150
- if (body.contractID) {
151
- data.contractIdToDelete = new ContractId(
152
- body.contractID.shardNum ?? 0,
153
- body.contractID.realmNum ?? 0,
154
- body.contractID.contractNum ?? 0
155
- ).toString();
156
- }
157
- if (body.transferAccountID) {
158
- data.transferAccountId = new AccountId(
159
- body.transferAccountID.shardNum ?? 0,
160
- body.transferAccountID.realmNum ?? 0,
161
- body.transferAccountID.accountNum ?? 0
162
- ).toString();
163
- } else if (body.transferContractID) {
164
- data.transferContractId = new ContractId(
165
- body.transferContractID.shardNum ?? 0,
166
- body.transferContractID.realmNum ?? 0,
167
- body.transferContractID.contractNum ?? 0
168
- ).toString();
60
+ if (body.fileID) {
61
+ data.fileId = `${body.fileID.shardNum ?? 0}.${body.fileID.realmNum ?? 0}.${body.fileID.fileNum ?? 0}`;
169
62
  }
170
63
  return data;
171
64
  }
172
65
  }
173
66
  export {
174
- SCSParser
67
+ FileParser
175
68
  };
176
69
  //# sourceMappingURL=standards-sdk.es28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es28.js","sources":["../../src/utils/parsers/scs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Hbar, HbarUnit, Long } from '@hashgraph/sdk';\nimport {\n ContractCallData,\n ContractCreateData,\n ContractUpdateData,\n ContractDeleteData,\n} from '../transaction-parser-types';\nimport { Buffer } from 'buffer';\nimport { parseKey } from './parser-utils';\nimport { AccountId, FileId } from '@hashgraph/sdk';\n\nexport class SCSParser {\n static parseContractCall(\n body: proto.IContractCallTransactionBody\n ): ContractCallData | undefined {\n if (!body) return undefined;\n const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));\n const data: ContractCallData = {\n contractId: new ContractId(\n body.contractID!.shardNum ?? 0,\n body.contractID!.realmNum ?? 0,\n body.contractID!.contractNum ?? 0\n ).toString(),\n gas: Long.fromValue(body.gas ?? 0).toNumber(),\n amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar)),\n };\n if (body.functionParameters) {\n data.functionParameters = Buffer.from(body.functionParameters).toString(\n 'hex'\n );\n if (data.functionParameters.length >= 8) {\n data.functionName = data.functionParameters.substring(0, 8);\n }\n }\n return data;\n }\n\n static parseContractCreate(\n body: proto.IContractCreateTransactionBody\n ): ContractCreateData | undefined {\n if (!body) return undefined;\n const data: ContractCreateData = {};\n if (body.initialBalance) {\n data.initialBalance = Hbar.fromTinybars(\n Long.fromValue(body.initialBalance)\n ).toString(HbarUnit.Hbar);\n }\n if (body.gas) {\n data.gas = Long.fromValue(body.gas).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.constructorParameters) {\n data.constructorParameters = Buffer.from(\n body.constructorParameters\n ).toString('hex');\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds\n ).toString();\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0\n ).toString();\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n }\n if (body.declineReward !== undefined) {\n data.declineReward = body.declineReward;\n }\n if (body.maxAutomaticTokenAssociations !== undefined) {\n data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;\n }\n if (body.fileID) {\n data.initcodeSource = 'fileID';\n data.initcode = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0\n ).toString();\n } else if (body.initcode && body.initcode.length > 0) {\n data.initcodeSource = 'bytes';\n data.initcode = Buffer.from(body.initcode).toString('hex');\n }\n return data;\n }\n\n static parseContractUpdate(\n body: proto.IContractUpdateTransactionBody\n ): ContractUpdateData | undefined {\n if (!body) return undefined;\n const data: ContractUpdateData = {};\n if (body.contractID) {\n data.contractIdToUpdate = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0\n ).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds\n ).toString();\n }\n\n if (body.memo) {\n const memoAsAny = body.memo as any;\n if (memoAsAny && typeof memoAsAny === 'object' && memoAsAny.hasOwnProperty('value')) {\n const memoVal = memoAsAny.value;\n data.memo = (memoVal === null || memoVal === undefined) ? undefined : String(memoVal);\n } else if (typeof memoAsAny === 'string') {\n data.memo = memoAsAny;\n } else {\n data.memo = undefined;\n }\n } else {\n data.memo = undefined;\n }\n\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0\n ).toString();\n data.stakedNodeId = undefined;\n } else if (\n body.stakedNodeId !== null &&\n body.stakedNodeId !== undefined &&\n Long.fromValue(body.stakedNodeId).notEquals(-1)\n ) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n data.stakedAccountId = undefined;\n } else {\n data.stakedNodeId = undefined;\n data.stakedAccountId = undefined;\n }\n if (body.declineReward?.value !== undefined) {\n data.declineReward = body.declineReward.value;\n }\n if (body.maxAutomaticTokenAssociations?.value !== undefined) {\n data.maxAutomaticTokenAssociations =\n body.maxAutomaticTokenAssociations.value;\n }\n if (body.autoRenewAccountId) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccountId.shardNum ?? 0,\n body.autoRenewAccountId.realmNum ?? 0,\n body.autoRenewAccountId.accountNum ?? 0\n ).toString();\n }\n return data;\n }\n\n static parseContractDelete(\n body: proto.IContractDeleteTransactionBody\n ): ContractDeleteData | undefined {\n if (!body) return undefined;\n const data: ContractDeleteData = {};\n if (body.contractID) {\n data.contractIdToDelete = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0\n ).toString();\n }\n if (body.transferAccountID) {\n data.transferAccountId = new AccountId(\n body.transferAccountID.shardNum ?? 0,\n body.transferAccountID.realmNum ?? 0,\n body.transferAccountID.accountNum ?? 0\n ).toString();\n } else if (body.transferContractID) {\n data.transferContractId = new ContractId(\n body.transferContractID.shardNum ?? 0,\n body.transferContractID.realmNum ?? 0,\n body.transferContractID.contractNum ?? 0\n ).toString();\n }\n return data;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es28.js","sources":["../../src/utils/parsers/file-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { Long } from '@hashgraph/sdk';\nimport {\n FileCreateData,\n FileAppendData,\n FileUpdateData,\n FileDeleteData,\n} from '../transaction-parser-types';\nimport { parseKey } from './parser-utils';\nimport { Buffer } from 'buffer';\n\nexport class FileParser {\n static parseFileCreate(\n body: proto.IFileCreateTransactionBody\n ): FileCreateData | undefined {\n if (!body) return undefined;\n const data: FileCreateData = {};\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.keys) {\n data.keys = parseKey({ keyList: body.keys });\n }\n if (body.contents) {\n data.contents = Buffer.from(body.contents).toString('base64');\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n return data;\n }\n\n static parseFileAppend(\n body: proto.IFileAppendTransactionBody\n ): FileAppendData | undefined {\n if (!body) return undefined;\n const data: FileAppendData = {};\n if (body.fileID) {\n data.fileId = `${body.fileID.shardNum ?? 0}.${\n body.fileID.realmNum ?? 0\n }.${body.fileID.fileNum ?? 0}`;\n }\n if (body.contents) {\n data.contents = Buffer.from(body.contents).toString('base64');\n }\n return data;\n }\n\n static parseFileUpdate(\n body: proto.IFileUpdateTransactionBody\n ): FileUpdateData | undefined {\n if (!body) return undefined;\n const data: FileUpdateData = {};\n if (body.fileID) {\n data.fileId = `${body.fileID.shardNum ?? 0}.${\n body.fileID.realmNum ?? 0\n }.${body.fileID.fileNum ?? 0}`;\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.keys) {\n data.keys = parseKey({ keyList: body.keys });\n }\n if (body.contents) {\n data.contents = Buffer.from(body.contents).toString('base64');\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n return data;\n }\n\n static parseFileDelete(\n body: proto.IFileDeleteTransactionBody\n ): FileDeleteData | undefined {\n if (!body) return undefined;\n const data: FileDeleteData = {};\n if (body.fileID) {\n data.fileId = `${body.fileID.shardNum ?? 0}.${\n body.fileID.realmNum ?? 0\n }.${body.fileID.fileNum ?? 0}`;\n }\n return data;\n }\n}\n"],"names":[],"mappings":";;;AAWO,MAAM,WAAW;AAAA,EACtB,OAAO,gBACL,MAC4B;AACxB,QAAA,CAAC,KAAa,QAAA;AAClB,UAAM,OAAuB,CAAC;AAC1B,QAAA,KAAK,gBAAgB,SAAS;AAC3B,WAAA,iBAAiB,GAAG,KAAK;AAAA,QAC5B,KAAK,eAAe;AAAA,MAAA,EACpB,SAAU,CAAA,IAAI,KAAK,eAAe,KAAK;AAAA,IAAA;AAE3C,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,SAAS,EAAE,SAAS,KAAK,MAAM;AAAA,IAAA;AAE7C,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAS,QAAQ;AAAA,IAAA;AAE9D,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,KAAK;AAAA,IAAA;AAEZ,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,gBACL,MAC4B;AACxB,QAAA,CAAC,KAAa,QAAA;AAClB,UAAM,OAAuB,CAAC;AAC9B,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,GAAG,KAAK,OAAO,YAAY,CAAC,IACxC,KAAK,OAAO,YAAY,CAC1B,IAAI,KAAK,OAAO,WAAW,CAAC;AAAA,IAAA;AAE9B,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAS,QAAQ;AAAA,IAAA;AAEvD,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,gBACL,MAC4B;AACxB,QAAA,CAAC,KAAa,QAAA;AAClB,UAAM,OAAuB,CAAC;AAC9B,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,GAAG,KAAK,OAAO,YAAY,CAAC,IACxC,KAAK,OAAO,YAAY,CAC1B,IAAI,KAAK,OAAO,WAAW,CAAC;AAAA,IAAA;AAE1B,QAAA,KAAK,gBAAgB,SAAS;AAC3B,WAAA,iBAAiB,GAAG,KAAK;AAAA,QAC5B,KAAK,eAAe;AAAA,MAAA,EACpB,SAAU,CAAA,IAAI,KAAK,eAAe,KAAK;AAAA,IAAA;AAE3C,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,SAAS,EAAE,SAAS,KAAK,MAAM;AAAA,IAAA;AAE7C,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAS,QAAQ;AAAA,IAAA;AAE1D,QAAA,KAAK,MAAM,UAAU,QAAW;AAC7B,WAAA,OAAO,KAAK,KAAK;AAAA,IAAA;AAEjB,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,gBACL,MAC4B;AACxB,QAAA,CAAC,KAAa,QAAA;AAClB,UAAM,OAAuB,CAAC;AAC9B,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,GAAG,KAAK,OAAO,YAAY,CAAC,IACxC,KAAK,OAAO,YAAY,CAC1B,IAAI,KAAK,OAAO,WAAW,CAAC;AAAA,IAAA;AAEvB,WAAA;AAAA,EAAA;AAEX;"}
@@ -1,14 +1,260 @@
1
- class UtilParser {
2
- static parseUtilPrng(body) {
1
+ import Buffer from "vite-plugin-node-polyfills/shims/buffer";
2
+ import { AccountId, Hbar, Long, HbarUnit, TokenId } from "@hashgraph/sdk";
3
+ import { parseKey } from "./standards-sdk.es33.js";
4
+ class CryptoParser {
5
+ static parseCryptoTransfers(cryptoTransfer, result) {
6
+ if (cryptoTransfer.transfers?.accountAmounts) {
7
+ result.transfers = cryptoTransfer.transfers.accountAmounts.map((aa) => {
8
+ const accountId = new AccountId(
9
+ aa.accountID.shardNum ?? 0,
10
+ aa.accountID.realmNum ?? 0,
11
+ aa.accountID.accountNum ?? 0
12
+ );
13
+ const hbarAmount = Hbar.fromTinybars(Long.fromValue(aa.amount));
14
+ return {
15
+ accountId: accountId.toString(),
16
+ amount: hbarAmount.toString(HbarUnit.Hbar),
17
+ isDecimal: true
18
+ };
19
+ });
20
+ }
21
+ if (cryptoTransfer.tokenTransfers) {
22
+ for (const tokenTransferList of cryptoTransfer.tokenTransfers) {
23
+ const tokenId = new TokenId(
24
+ tokenTransferList.token.shardNum ?? 0,
25
+ tokenTransferList.token.realmNum ?? 0,
26
+ tokenTransferList.token.tokenNum ?? 0
27
+ );
28
+ if (tokenTransferList.transfers) {
29
+ for (const transfer of tokenTransferList.transfers) {
30
+ const accountId = new AccountId(
31
+ transfer.accountID.shardNum ?? 0,
32
+ transfer.accountID.realmNum ?? 0,
33
+ transfer.accountID.accountNum ?? 0
34
+ );
35
+ const tokenAmount = Long.fromValue(transfer.amount).toNumber();
36
+ result.tokenTransfers.push({
37
+ tokenId: tokenId.toString(),
38
+ accountId: accountId.toString(),
39
+ amount: tokenAmount
40
+ });
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
46
+ static parseCryptoDelete(body) {
47
+ if (!body) return void 0;
48
+ const data = {};
49
+ if (body.deleteAccountID) {
50
+ data.deleteAccountId = new AccountId(
51
+ body.deleteAccountID.shardNum ?? 0,
52
+ body.deleteAccountID.realmNum ?? 0,
53
+ body.deleteAccountID.accountNum ?? 0
54
+ ).toString();
55
+ }
56
+ if (body.transferAccountID) {
57
+ data.transferAccountId = new AccountId(
58
+ body.transferAccountID.shardNum ?? 0,
59
+ body.transferAccountID.realmNum ?? 0,
60
+ body.transferAccountID.accountNum ?? 0
61
+ ).toString();
62
+ }
63
+ return data;
64
+ }
65
+ static parseCryptoCreateAccount(body) {
66
+ if (!body) return void 0;
67
+ const data = {};
68
+ if (body.initialBalance) {
69
+ data.initialBalance = Hbar.fromTinybars(
70
+ Long.fromValue(body.initialBalance)
71
+ ).toString(HbarUnit.Hbar);
72
+ }
73
+ if (body.key) {
74
+ data.key = parseKey(body.key);
75
+ }
76
+ if (body.receiverSigRequired !== void 0) {
77
+ data.receiverSigRequired = body.receiverSigRequired;
78
+ }
79
+ if (body.autoRenewPeriod?.seconds) {
80
+ data.autoRenewPeriod = Long.fromValue(
81
+ body.autoRenewPeriod.seconds
82
+ ).toString();
83
+ }
84
+ if (body.memo) {
85
+ data.memo = body.memo;
86
+ }
87
+ if (body.maxAutomaticTokenAssociations !== void 0) {
88
+ data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
89
+ }
90
+ if (body.stakedAccountId) {
91
+ data.stakedAccountId = new AccountId(
92
+ body.stakedAccountId.shardNum ?? 0,
93
+ body.stakedAccountId.realmNum ?? 0,
94
+ body.stakedAccountId.accountNum ?? 0
95
+ ).toString();
96
+ } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
97
+ data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
98
+ }
99
+ if (body.declineReward !== void 0) {
100
+ data.declineReward = body.declineReward;
101
+ }
102
+ if (body.alias && body.alias.length > 0) {
103
+ data.alias = Buffer.from(body.alias).toString("hex");
104
+ }
105
+ return data;
106
+ }
107
+ static parseCryptoUpdateAccount(body) {
108
+ if (!body) return void 0;
109
+ const data = {};
110
+ if (body.accountIDToUpdate) {
111
+ data.accountIdToUpdate = new AccountId(
112
+ body.accountIDToUpdate.shardNum ?? 0,
113
+ body.accountIDToUpdate.realmNum ?? 0,
114
+ body.accountIDToUpdate.accountNum ?? 0
115
+ ).toString();
116
+ }
117
+ if (body.key) {
118
+ data.key = parseKey(body.key);
119
+ }
120
+ if (body.expirationTime?.seconds) {
121
+ data.expirationTime = `${Long.fromValue(
122
+ body.expirationTime.seconds
123
+ ).toString()}.${body.expirationTime.nanos}`;
124
+ }
125
+ if (body.receiverSigRequired !== null && body.receiverSigRequired !== void 0) {
126
+ data.receiverSigRequired = Boolean(body.receiverSigRequired);
127
+ }
128
+ if (body.autoRenewPeriod?.seconds) {
129
+ data.autoRenewPeriod = Long.fromValue(
130
+ body.autoRenewPeriod.seconds
131
+ ).toString();
132
+ }
133
+ if (body.memo?.value !== void 0) {
134
+ data.memo = body.memo.value;
135
+ }
136
+ if (body.maxAutomaticTokenAssociations?.value !== void 0) {
137
+ data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
138
+ }
139
+ if (body.stakedAccountId) {
140
+ data.stakedAccountId = new AccountId(
141
+ body.stakedAccountId.shardNum ?? 0,
142
+ body.stakedAccountId.realmNum ?? 0,
143
+ body.stakedAccountId.accountNum ?? 0
144
+ ).toString();
145
+ data.stakedNodeId = void 0;
146
+ } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
147
+ data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
148
+ data.stakedAccountId = void 0;
149
+ } else {
150
+ data.stakedAccountId = void 0;
151
+ data.stakedNodeId = void 0;
152
+ }
153
+ if (body.declineReward !== null && body.declineReward !== void 0) {
154
+ data.declineReward = Boolean(body.declineReward);
155
+ }
156
+ return data;
157
+ }
158
+ static parseCryptoApproveAllowance(body) {
159
+ if (!body) return void 0;
160
+ const data = {};
161
+ if (body.cryptoAllowances && body.cryptoAllowances.length > 0) {
162
+ data.hbarAllowances = body.cryptoAllowances.map((a) => ({
163
+ ownerAccountId: new AccountId(
164
+ a.owner.shardNum ?? 0,
165
+ a.owner.realmNum ?? 0,
166
+ a.owner.accountNum ?? 0
167
+ ).toString(),
168
+ spenderAccountId: new AccountId(
169
+ a.spender.shardNum ?? 0,
170
+ a.spender.realmNum ?? 0,
171
+ a.spender.accountNum ?? 0
172
+ ).toString(),
173
+ amount: Hbar.fromTinybars(Long.fromValue(a.amount)).toString(
174
+ HbarUnit.Hbar
175
+ )
176
+ }));
177
+ }
178
+ if (body.tokenAllowances && body.tokenAllowances.length > 0) {
179
+ data.tokenAllowances = body.tokenAllowances.map((a) => ({
180
+ tokenId: new TokenId(
181
+ a.tokenId.shardNum ?? 0,
182
+ a.tokenId.realmNum ?? 0,
183
+ a.tokenId.tokenNum ?? 0
184
+ ).toString(),
185
+ ownerAccountId: new AccountId(
186
+ a.owner.shardNum ?? 0,
187
+ a.owner.realmNum ?? 0,
188
+ a.owner.accountNum ?? 0
189
+ ).toString(),
190
+ spenderAccountId: new AccountId(
191
+ a.spender.shardNum ?? 0,
192
+ a.spender.realmNum ?? 0,
193
+ a.spender.accountNum ?? 0
194
+ ).toString(),
195
+ amount: Long.fromValue(a.amount).toString()
196
+ }));
197
+ }
198
+ if (body.nftAllowances && body.nftAllowances.length > 0) {
199
+ data.nftAllowances = body.nftAllowances.map((a) => {
200
+ const allowance = {};
201
+ if (a.tokenId)
202
+ allowance.tokenId = new TokenId(
203
+ a.tokenId.shardNum ?? 0,
204
+ a.tokenId.realmNum ?? 0,
205
+ a.tokenId.tokenNum ?? 0
206
+ ).toString();
207
+ if (a.owner)
208
+ allowance.ownerAccountId = new AccountId(
209
+ a.owner.shardNum ?? 0,
210
+ a.owner.realmNum ?? 0,
211
+ a.owner.accountNum ?? 0
212
+ ).toString();
213
+ if (a.spender)
214
+ allowance.spenderAccountId = new AccountId(
215
+ a.spender.shardNum ?? 0,
216
+ a.spender.realmNum ?? 0,
217
+ a.spender.accountNum ?? 0
218
+ ).toString();
219
+ if (a.serialNumbers && a.serialNumbers.length > 0)
220
+ allowance.serialNumbers = a.serialNumbers.map(
221
+ (sn) => Long.fromValue(sn).toString()
222
+ );
223
+ if (a.approvedForAll?.value !== void 0)
224
+ allowance.approvedForAll = a.approvedForAll.value;
225
+ if (a.delegatingSpender)
226
+ allowance.delegatingSpender = new AccountId(
227
+ a.delegatingSpender.shardNum ?? 0,
228
+ a.delegatingSpender.realmNum ?? 0,
229
+ a.delegatingSpender.accountNum ?? 0
230
+ ).toString();
231
+ return allowance;
232
+ });
233
+ }
234
+ return data;
235
+ }
236
+ static parseCryptoDeleteAllowance(body) {
3
237
  if (!body) return void 0;
4
238
  const data = {};
5
- if (body.range && body.range !== 0) {
6
- data.range = body.range;
239
+ if (body.nftAllowances && body.nftAllowances.length > 0) {
240
+ data.nftAllowancesToRemove = body.nftAllowances.map((a) => ({
241
+ ownerAccountId: new AccountId(
242
+ a.owner.shardNum ?? 0,
243
+ a.owner.realmNum ?? 0,
244
+ a.owner.accountNum ?? 0
245
+ ).toString(),
246
+ tokenId: new TokenId(
247
+ a.tokenId.shardNum ?? 0,
248
+ a.tokenId.realmNum ?? 0,
249
+ a.tokenId.tokenNum ?? 0
250
+ ).toString(),
251
+ serialNumbers: a.serialNumbers ? a.serialNumbers.map((sn) => Long.fromValue(sn).toString()) : []
252
+ }));
7
253
  }
8
254
  return data;
9
255
  }
10
256
  }
11
257
  export {
12
- UtilParser
258
+ CryptoParser
13
259
  };
14
260
  //# sourceMappingURL=standards-sdk.es29.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es29.js","sources":["../../src/utils/parsers/util-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { UtilPrngData } from '../transaction-parser-types';\n\nexport class UtilParser {\n static parseUtilPrng(\n body: proto.IUtilPrngTransactionBody\n ): UtilPrngData | undefined {\n if (!body) return undefined;\n const data: UtilPrngData = {};\n if (body.range && body.range !== 0) {\n data.range = body.range;\n }\n return data;\n }\n}\n"],"names":[],"mappings":"AAGO,MAAM,WAAW;AAAA,EACtB,OAAO,cACL,MAC0B;AACtB,QAAA,CAAC,KAAa,QAAA;AAClB,UAAM,OAAqB,CAAC;AAC5B,QAAI,KAAK,SAAS,KAAK,UAAU,GAAG;AAClC,WAAK,QAAQ,KAAK;AAAA,IAAA;AAEb,WAAA;AAAA,EAAA;AAEX;"}
1
+ {"version":3,"file":"standards-sdk.es29.js","sources":["../../src/utils/parsers/crypto-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { AccountId, TokenId, Hbar, HbarUnit, Long } from '@hashgraph/sdk';\nimport {\n AccountAmount,\n TokenAmount,\n CryptoDeleteData,\n CryptoCreateAccountData,\n CryptoUpdateAccountData,\n CryptoApproveAllowanceData,\n CryptoDeleteAllowanceData,\n NftAllowance,\n} from '../transaction-parser-types';\nimport { parseKey } from './parser-utils';\n\nexport class CryptoParser {\n static parseCryptoTransfers(\n cryptoTransfer: proto.ICryptoTransferTransactionBody,\n result: { transfers: AccountAmount[]; tokenTransfers: TokenAmount[] }\n ): void {\n if (cryptoTransfer.transfers?.accountAmounts) {\n result.transfers = cryptoTransfer.transfers.accountAmounts.map((aa) => {\n const accountId = new AccountId(\n aa.accountID!.shardNum ?? 0,\n aa.accountID!.realmNum ?? 0,\n aa.accountID!.accountNum ?? 0\n );\n const hbarAmount = Hbar.fromTinybars(Long.fromValue(aa.amount!));\n return {\n accountId: accountId.toString(),\n amount: hbarAmount.toString(HbarUnit.Hbar),\n isDecimal: true,\n };\n });\n }\n if (cryptoTransfer.tokenTransfers) {\n for (const tokenTransferList of cryptoTransfer.tokenTransfers) {\n const tokenId = new TokenId(\n tokenTransferList.token!.shardNum ?? 0,\n tokenTransferList.token!.realmNum ?? 0,\n tokenTransferList.token!.tokenNum ?? 0\n );\n if (tokenTransferList.transfers) {\n for (const transfer of tokenTransferList.transfers) {\n const accountId = new AccountId(\n transfer.accountID!.shardNum ?? 0,\n transfer.accountID!.realmNum ?? 0,\n transfer.accountID!.accountNum ?? 0\n );\n const tokenAmount = Long.fromValue(transfer.amount!).toNumber();\n result.tokenTransfers.push({\n tokenId: tokenId.toString(),\n accountId: accountId.toString(),\n amount: tokenAmount,\n });\n }\n }\n }\n }\n }\n\n static parseCryptoDelete(\n body: proto.ICryptoDeleteTransactionBody\n ): CryptoDeleteData | undefined {\n if (!body) return undefined;\n const data: CryptoDeleteData = {};\n if (body.deleteAccountID) {\n data.deleteAccountId = new AccountId(\n body.deleteAccountID.shardNum ?? 0,\n body.deleteAccountID.realmNum ?? 0,\n body.deleteAccountID.accountNum ?? 0\n ).toString();\n }\n if (body.transferAccountID) {\n data.transferAccountId = new AccountId(\n body.transferAccountID.shardNum ?? 0,\n body.transferAccountID.realmNum ?? 0,\n body.transferAccountID.accountNum ?? 0\n ).toString();\n }\n return data;\n }\n\n static parseCryptoCreateAccount(\n body: proto.ICryptoCreateTransactionBody\n ): CryptoCreateAccountData | undefined {\n if (!body) return undefined;\n const data: CryptoCreateAccountData = {};\n if (body.initialBalance) {\n data.initialBalance = Hbar.fromTinybars(\n Long.fromValue(body.initialBalance)\n ).toString(HbarUnit.Hbar);\n }\n if (body.key) {\n data.key = parseKey(body.key);\n }\n if (body.receiverSigRequired !== undefined) {\n data.receiverSigRequired = body.receiverSigRequired;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds\n ).toString();\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.maxAutomaticTokenAssociations !== undefined) {\n data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0\n ).toString();\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n }\n if (body.declineReward !== undefined) {\n data.declineReward = body.declineReward;\n }\n if (body.alias && body.alias.length > 0) {\n data.alias = Buffer.from(body.alias).toString('hex');\n }\n return data;\n }\n\n static parseCryptoUpdateAccount(\n body: proto.ICryptoUpdateTransactionBody\n ): CryptoUpdateAccountData | undefined {\n if (!body) return undefined;\n const data: CryptoUpdateAccountData = {};\n if (body.accountIDToUpdate) {\n data.accountIdToUpdate = new AccountId(\n body.accountIDToUpdate.shardNum ?? 0,\n body.accountIDToUpdate.realmNum ?? 0,\n body.accountIDToUpdate.accountNum ?? 0\n ).toString();\n }\n if (body.key) {\n data.key = parseKey(body.key);\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (\n body.receiverSigRequired !== null &&\n body.receiverSigRequired !== undefined\n ) {\n data.receiverSigRequired = Boolean(body.receiverSigRequired);\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds\n ).toString();\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n if (body.maxAutomaticTokenAssociations?.value !== undefined) {\n data.maxAutomaticTokenAssociations =\n body.maxAutomaticTokenAssociations.value;\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0\n ).toString();\n data.stakedNodeId = undefined;\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n data.stakedAccountId = undefined;\n } else {\n data.stakedAccountId = undefined;\n data.stakedNodeId = undefined;\n }\n if (body.declineReward !== null && body.declineReward !== undefined) {\n data.declineReward = Boolean(body.declineReward);\n }\n return data;\n }\n\n static parseCryptoApproveAllowance(\n body: proto.ICryptoApproveAllowanceTransactionBody\n ): CryptoApproveAllowanceData | undefined {\n if (!body) return undefined;\n const data: CryptoApproveAllowanceData = {};\n if (body.cryptoAllowances && body.cryptoAllowances.length > 0) {\n data.hbarAllowances = body.cryptoAllowances.map((a) => ({\n ownerAccountId: new AccountId(\n a.owner!.shardNum ?? 0,\n a.owner!.realmNum ?? 0,\n a.owner!.accountNum ?? 0\n ).toString(),\n spenderAccountId: new AccountId(\n a.spender!.shardNum ?? 0,\n a.spender!.realmNum ?? 0,\n a.spender!.accountNum ?? 0\n ).toString(),\n amount: Hbar.fromTinybars(Long.fromValue(a.amount!)).toString(\n HbarUnit.Hbar\n ),\n }));\n }\n if (body.tokenAllowances && body.tokenAllowances.length > 0) {\n data.tokenAllowances = body.tokenAllowances.map((a) => ({\n tokenId: new TokenId(\n a.tokenId!.shardNum ?? 0,\n a.tokenId!.realmNum ?? 0,\n a.tokenId!.tokenNum ?? 0\n ).toString(),\n ownerAccountId: new AccountId(\n a.owner!.shardNum ?? 0,\n a.owner!.realmNum ?? 0,\n a.owner!.accountNum ?? 0\n ).toString(),\n spenderAccountId: new AccountId(\n a.spender!.shardNum ?? 0,\n a.spender!.realmNum ?? 0,\n a.spender!.accountNum ?? 0\n ).toString(),\n amount: Long.fromValue(a.amount!).toString(),\n }));\n }\n if (body.nftAllowances && body.nftAllowances.length > 0) {\n data.nftAllowances = body.nftAllowances.map((a) => {\n const allowance: NftAllowance = {};\n if (a.tokenId)\n allowance.tokenId = new TokenId(\n a.tokenId.shardNum ?? 0,\n a.tokenId.realmNum ?? 0,\n a.tokenId.tokenNum ?? 0\n ).toString();\n if (a.owner)\n allowance.ownerAccountId = new AccountId(\n a.owner.shardNum ?? 0,\n a.owner.realmNum ?? 0,\n a.owner.accountNum ?? 0\n ).toString();\n if (a.spender)\n allowance.spenderAccountId = new AccountId(\n a.spender.shardNum ?? 0,\n a.spender.realmNum ?? 0,\n a.spender.accountNum ?? 0\n ).toString();\n if (a.serialNumbers && a.serialNumbers.length > 0)\n allowance.serialNumbers = a.serialNumbers.map((sn) =>\n Long.fromValue(sn).toString()\n );\n if (a.approvedForAll?.value !== undefined)\n allowance.approvedForAll = a.approvedForAll.value;\n if (a.delegatingSpender)\n allowance.delegatingSpender = new AccountId(\n a.delegatingSpender.shardNum ?? 0,\n a.delegatingSpender.realmNum ?? 0,\n a.delegatingSpender.accountNum ?? 0\n ).toString();\n return allowance;\n });\n }\n return data;\n }\n\n static parseCryptoDeleteAllowance(\n body: proto.ICryptoDeleteAllowanceTransactionBody\n ): CryptoDeleteAllowanceData | undefined {\n if (!body) return undefined;\n const data: CryptoDeleteAllowanceData = {};\n if (body.nftAllowances && body.nftAllowances.length > 0) {\n data.nftAllowancesToRemove = body.nftAllowances.map((a) => ({\n ownerAccountId: new AccountId(\n a.owner!.shardNum ?? 0,\n a.owner!.realmNum ?? 0,\n a.owner!.accountNum ?? 0\n ).toString(),\n tokenId: new TokenId(\n a.tokenId!.shardNum ?? 0,\n a.tokenId!.realmNum ?? 0,\n a.tokenId!.tokenNum ?? 0\n ).toString(),\n serialNumbers: a.serialNumbers\n ? a.serialNumbers.map((sn) => Long.fromValue(sn).toString())\n : [],\n }));\n }\n return data;\n }\n}\n"],"names":[],"mappings":"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"}