@beclab/olaresid 0.1.13 → 0.2.0
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/CLI-TREE.md +107 -0
- package/CLI.md +122 -1340
- package/README.md +30 -12
- package/SDK-TREE.md +151 -0
- package/TAG.md +95 -41
- package/config.json +6 -4
- package/dist/abi/TerminusDIDQueryABI.d.ts +397 -0
- package/dist/abi/TerminusDIDQueryABI.d.ts.map +1 -0
- package/dist/abi/TerminusDIDQueryABI.js +519 -0
- package/dist/abi/TerminusDIDQueryABI.js.map +1 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/index.js +9 -23
- package/dist/business/index.js.map +1 -1
- package/dist/business/tag-context.d.ts +1 -0
- package/dist/business/tag-context.d.ts.map +1 -1
- package/dist/business/tag-context.js +13 -7
- package/dist/business/tag-context.js.map +1 -1
- package/dist/cli.js +177 -76
- package/dist/cli.js.map +1 -1
- package/dist/config/index.d.ts +16 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +28 -14
- package/dist/config/index.js.map +1 -1
- package/dist/domain/core.d.ts +65 -0
- package/dist/domain/core.d.ts.map +1 -0
- package/dist/domain/core.js +317 -0
- package/dist/domain/core.js.map +1 -0
- package/dist/domain/index.d.ts +104 -57
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +188 -428
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/types.d.ts +56 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +3 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/index.d.ts +80 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +152 -143
- package/dist/index.js.map +1 -1
- package/dist/utils/crypto-utils.d.ts +110 -0
- package/dist/utils/crypto-utils.d.ts.map +1 -1
- package/dist/utils/crypto-utils.js +127 -8
- package/dist/utils/crypto-utils.js.map +1 -1
- package/dist/utils/error-parser.d.ts.map +1 -1
- package/dist/utils/error-parser.js +2 -1
- package/dist/utils/error-parser.js.map +1 -1
- package/dist/utils/event-parser.d.ts +161 -0
- package/dist/utils/event-parser.d.ts.map +1 -0
- package/dist/utils/event-parser.js +140 -0
- package/dist/utils/event-parser.js.map +1 -0
- package/dist/utils/tag-type-builder.d.ts +43 -0
- package/dist/utils/tag-type-builder.d.ts.map +1 -1
- package/dist/utils/tag-type-builder.js +122 -0
- package/dist/utils/tag-type-builder.js.map +1 -1
- package/dist/utils/tag-type-parser.d.ts +70 -0
- package/dist/utils/tag-type-parser.d.ts.map +1 -0
- package/dist/utils/tag-type-parser.js +190 -0
- package/dist/utils/tag-type-parser.js.map +1 -0
- package/examples/create-with-rpc-demo.ts +142 -0
- package/examples/fetch-all-flat-demo.ts +159 -0
- package/examples/fetch-by-indices-demo.ts +235 -0
- package/examples/fetch-domain-demo.ts +137 -0
- package/examples/fetch-domains-demo.ts +221 -0
- package/examples/frontend-demo/index.html +2 -2
- package/examples/frontend-demo/package-lock.json +4 -1
- package/examples/index.ts +3 -5
- package/jest.config.js +25 -0
- package/package.json +6 -2
- package/src/abi/TerminusDIDQueryABI.ts +516 -0
- package/src/business/index.ts +9 -33
- package/src/business/tag-context.ts +35 -7
- package/src/cli.ts +253 -90
- package/src/config/index.ts +34 -19
- package/src/domain/core.ts +382 -0
- package/src/domain/index.ts +271 -641
- package/src/domain/types.ts +59 -0
- package/src/index.ts +221 -207
- package/src/utils/crypto-utils.ts +205 -2
- package/src/utils/error-parser.ts +2 -1
- package/src/utils/event-parser.ts +353 -0
- package/src/utils/tag-type-builder.ts +138 -0
- package/src/utils/tag-type-parser.ts +246 -0
- package/tests/unit/crypto-utils.test.ts +338 -0
- package/tests/unit/ed25519-jwk.test.ts +201 -0
- package/tests/unit/event-parser.test.ts +690 -0
- package/tests/unit/generate-mnemonic.test.ts +268 -0
- package/tests/unit/olares-id-format.test.ts +321 -0
- package/tests/unit/tag-type-parser.test.ts +802 -0
- package/tests/unit/tag-types.test.ts +821 -0
- package/tsconfig.json +3 -2
- package/dist/abi/ABITypeABI.d.ts +0 -88
- package/dist/abi/ABITypeABI.d.ts.map +0 -1
- package/dist/abi/ABITypeABI.js +0 -382
- package/dist/abi/ABITypeABI.js.map +0 -1
- package/dist/abi/RegistryABI.d.ts +0 -77
- package/dist/abi/RegistryABI.d.ts.map +0 -1
- package/dist/abi/RegistryABI.js +0 -462
- package/dist/abi/RegistryABI.js.map +0 -1
- package/dist/tag/address.d.ts +0 -11
- package/dist/tag/address.d.ts.map +0 -1
- package/dist/tag/address.js +0 -44
- package/dist/tag/address.js.map +0 -1
- package/dist/tag/array.d.ts +0 -14
- package/dist/tag/array.d.ts.map +0 -1
- package/dist/tag/array.js +0 -72
- package/dist/tag/array.js.map +0 -1
- package/dist/tag/bool.d.ts +0 -11
- package/dist/tag/bool.d.ts.map +0 -1
- package/dist/tag/bool.js +0 -43
- package/dist/tag/bool.js.map +0 -1
- package/dist/tag/bytes.d.ts +0 -11
- package/dist/tag/bytes.d.ts.map +0 -1
- package/dist/tag/bytes.js +0 -37
- package/dist/tag/bytes.js.map +0 -1
- package/dist/tag/flarray.d.ts +0 -15
- package/dist/tag/flarray.d.ts.map +0 -1
- package/dist/tag/flarray.js +0 -81
- package/dist/tag/flarray.js.map +0 -1
- package/dist/tag/flbytes.d.ts +0 -11
- package/dist/tag/flbytes.d.ts.map +0 -1
- package/dist/tag/flbytes.js +0 -47
- package/dist/tag/flbytes.js.map +0 -1
- package/dist/tag/index.d.ts +0 -32
- package/dist/tag/index.d.ts.map +0 -1
- package/dist/tag/index.js +0 -121
- package/dist/tag/index.js.map +0 -1
- package/dist/tag/int.d.ts +0 -12
- package/dist/tag/int.d.ts.map +0 -1
- package/dist/tag/int.js +0 -49
- package/dist/tag/int.js.map +0 -1
- package/dist/tag/string.d.ts +0 -11
- package/dist/tag/string.d.ts.map +0 -1
- package/dist/tag/string.js +0 -37
- package/dist/tag/string.js.map +0 -1
- package/dist/tag/tag.d.ts +0 -67
- package/dist/tag/tag.d.ts.map +0 -1
- package/dist/tag/tag.js +0 -157
- package/dist/tag/tag.js.map +0 -1
- package/dist/tag/tuple.d.ts +0 -17
- package/dist/tag/tuple.d.ts.map +0 -1
- package/dist/tag/tuple.js +0 -162
- package/dist/tag/tuple.js.map +0 -1
- package/dist/tag/uint.d.ts +0 -12
- package/dist/tag/uint.d.ts.map +0 -1
- package/dist/tag/uint.js +0 -49
- package/dist/tag/uint.js.map +0 -1
- package/dist/test/did.d.ts +0 -2
- package/dist/test/did.d.ts.map +0 -1
- package/dist/test/did.js +0 -177
- package/dist/test/did.js.map +0 -1
- package/dist/utils/tag-abi-codec.d.ts +0 -69
- package/dist/utils/tag-abi-codec.d.ts.map +0 -1
- package/dist/utils/tag-abi-codec.js +0 -144
- package/dist/utils/tag-abi-codec.js.map +0 -1
- package/examples/crypto-utilities.ts +0 -140
- package/examples/ed25519-jwk.ts +0 -73
- package/examples/generate-mnemonic.ts +0 -149
- package/examples/legacy.ts +0 -33
- package/examples/olares-id-format.ts +0 -197
- package/examples/tag-builder.ts +0 -235
- package/examples/tag-nested-tuple.ts +0 -190
- package/examples/tag-simple.ts +0 -149
- package/examples/tag-tagger.ts +0 -217
- package/examples/test-nested-tuple-conversion.ts +0 -143
- package/examples/test-type-bytes-parser.ts +0 -70
- package/src/abi/ABITypeABI.ts +0 -379
- package/src/abi/RegistryABI.ts +0 -459
- package/src/tag/address.ts +0 -48
- package/src/tag/array.ts +0 -80
- package/src/tag/bool.ts +0 -43
- package/src/tag/bytes.ts +0 -38
- package/src/tag/flarray.ts +0 -99
- package/src/tag/flbytes.ts +0 -48
- package/src/tag/index.ts +0 -170
- package/src/tag/int.ts +0 -51
- package/src/tag/string.ts +0 -38
- package/src/tag/tag.ts +0 -229
- package/src/tag/tuple.ts +0 -193
- package/src/tag/uint.ts +0 -51
- package/src/test/did.ts +0 -346
- package/src/utils/tag-abi-codec.ts +0 -158
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isTransferEvent = isTransferEvent;
|
|
7
|
+
exports.isMintEvent = isMintEvent;
|
|
8
|
+
exports.isTagAddedEvent = isTagAddedEvent;
|
|
9
|
+
exports.isTagRemovedEvent = isTagRemovedEvent;
|
|
10
|
+
exports.isTagElemUpdatedEvent = isTagElemUpdatedEvent;
|
|
11
|
+
exports.isTagElemPushedEvent = isTagElemPushedEvent;
|
|
12
|
+
exports.isTagElemPoppedEvent = isTagElemPoppedEvent;
|
|
13
|
+
exports.isNewTagTypeEvent = isNewTagTypeEvent;
|
|
14
|
+
exports.parseEvents = parseEvents;
|
|
15
|
+
const ethers_1 = require("ethers");
|
|
16
|
+
const TerminusDIDABI_1 = __importDefault(require("../abi/TerminusDIDABI"));
|
|
17
|
+
// ============================================================
|
|
18
|
+
// Type Guards
|
|
19
|
+
// ============================================================
|
|
20
|
+
function isTransferEvent(event) {
|
|
21
|
+
return event.eventName === 'Transfer';
|
|
22
|
+
}
|
|
23
|
+
function isMintEvent(event) {
|
|
24
|
+
return (event.eventName === 'Transfer' &&
|
|
25
|
+
event.args.from === '0x0000000000000000000000000000000000000000');
|
|
26
|
+
}
|
|
27
|
+
function isTagAddedEvent(event) {
|
|
28
|
+
return event.eventName === 'TagAdded';
|
|
29
|
+
}
|
|
30
|
+
function isTagRemovedEvent(event) {
|
|
31
|
+
return event.eventName === 'TagRemoved';
|
|
32
|
+
}
|
|
33
|
+
function isTagElemUpdatedEvent(event) {
|
|
34
|
+
return event.eventName === 'TagElemUpdated';
|
|
35
|
+
}
|
|
36
|
+
function isTagElemPushedEvent(event) {
|
|
37
|
+
return event.eventName === 'TagElemPushed';
|
|
38
|
+
}
|
|
39
|
+
function isTagElemPoppedEvent(event) {
|
|
40
|
+
return event.eventName === 'TagElemPopped';
|
|
41
|
+
}
|
|
42
|
+
function isNewTagTypeEvent(event) {
|
|
43
|
+
return event.eventName === 'NewTagType';
|
|
44
|
+
}
|
|
45
|
+
// ============================================================
|
|
46
|
+
// Parser
|
|
47
|
+
// ============================================================
|
|
48
|
+
const _iface = new ethers_1.ethers.Interface(TerminusDIDABI_1.default.abi);
|
|
49
|
+
/**
|
|
50
|
+
* Derive tokenId from a domain name, matching the on-chain formula:
|
|
51
|
+
* uint256(keccak256(bytes(domain)))
|
|
52
|
+
*/
|
|
53
|
+
function domainToTokenId(domain) {
|
|
54
|
+
return BigInt(ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(domain)));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Extract tokenId from event args.
|
|
58
|
+
*
|
|
59
|
+
* ✅ directly in args: Transfer, TransferByParentOwner, TransferBySuperAdmin
|
|
60
|
+
* ✅ derived locally: NewTagType (args.domain), Tag* events (args.to)
|
|
61
|
+
* ❌ not applicable: Approval, ApprovalForAll, Initialized, Upgraded,
|
|
62
|
+
* OwnershipTransferred*, OffchainStringArray
|
|
63
|
+
*/
|
|
64
|
+
function extractTokenId(eventName, args) {
|
|
65
|
+
switch (eventName) {
|
|
66
|
+
case 'Transfer':
|
|
67
|
+
case 'TransferByParentOwner':
|
|
68
|
+
case 'TransferBySuperAdmin':
|
|
69
|
+
return args['tokenId'];
|
|
70
|
+
case 'NewTagType':
|
|
71
|
+
return domainToTokenId(args['domain']);
|
|
72
|
+
case 'TagAdded':
|
|
73
|
+
case 'TagRemoved':
|
|
74
|
+
case 'TagElemUpdated':
|
|
75
|
+
case 'TagElemPushed':
|
|
76
|
+
case 'TagElemPopped':
|
|
77
|
+
return domainToTokenId(args['to']);
|
|
78
|
+
default:
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Parse raw eth_getLogs entries using the TerminusDID contract ABI.
|
|
84
|
+
*
|
|
85
|
+
* Logs that don't match any known event (e.g. from a different contract)
|
|
86
|
+
* are silently skipped.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const logs = await provider.getLogs({ address: CONTRACT_ADDRESS, fromBlock, toBlock });
|
|
91
|
+
* const events = parseEvents(logs);
|
|
92
|
+
* for (const event of events) {
|
|
93
|
+
* if (isTransferEvent(event)) {
|
|
94
|
+
* console.log('Transfer:', event.args.from, '->', event.args.to, event.args.tokenId);
|
|
95
|
+
* }
|
|
96
|
+
* }
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
function parseEvents(logs) {
|
|
100
|
+
const result = [];
|
|
101
|
+
for (const log of logs) {
|
|
102
|
+
try {
|
|
103
|
+
const parsed = _iface.parseLog({
|
|
104
|
+
topics: log.topics,
|
|
105
|
+
data: log.data
|
|
106
|
+
});
|
|
107
|
+
if (!parsed) {
|
|
108
|
+
console.warn('[event-parser] parseLog returned null, matching event cannot be found', {
|
|
109
|
+
tx: log.transactionHash,
|
|
110
|
+
logIndex: log.logIndex
|
|
111
|
+
});
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const args = {};
|
|
115
|
+
parsed.fragment.inputs.forEach((input, idx) => {
|
|
116
|
+
args[input.name] = parsed.args[idx];
|
|
117
|
+
});
|
|
118
|
+
const eventName = parsed.name;
|
|
119
|
+
result.push({
|
|
120
|
+
eventName,
|
|
121
|
+
blockNumber: parseInt(log.blockNumber, 16),
|
|
122
|
+
transactionHash: log.transactionHash,
|
|
123
|
+
logIndex: parseInt(log.logIndex, 16),
|
|
124
|
+
tokenId: extractTokenId(eventName, args),
|
|
125
|
+
args: args,
|
|
126
|
+
raw: log
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
console.error('[event-parser] failed to parse log', {
|
|
131
|
+
tx: log.transactionHash,
|
|
132
|
+
logIndex: log.logIndex,
|
|
133
|
+
err
|
|
134
|
+
});
|
|
135
|
+
throw err;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=event-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../../src/utils/event-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -145,6 +145,49 @@ export declare class TagTypeBuilder {
|
|
|
145
145
|
static addressArray(): TagTypeBuilder;
|
|
146
146
|
static stringArray(): TagTypeBuilder;
|
|
147
147
|
static uint256Array(): TagTypeBuilder;
|
|
148
|
+
/**
|
|
149
|
+
* Convert object to array for tuple encoding
|
|
150
|
+
* Recursively handles nested tuples and tuple arrays
|
|
151
|
+
*
|
|
152
|
+
* @param abiType ABI type string (e.g., "tuple(string,uint8)")
|
|
153
|
+
* @param value Value to convert (object or array)
|
|
154
|
+
* @returns Array representation suitable for ABI encoding
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* // Simple tuple
|
|
158
|
+
* convertObjectToArray(
|
|
159
|
+
* "tuple(string,uint8)",
|
|
160
|
+
* {name: "Alice", age: 30}
|
|
161
|
+
* ) // → ["Alice", 30]
|
|
162
|
+
*
|
|
163
|
+
* // Nested tuple
|
|
164
|
+
* convertObjectToArray(
|
|
165
|
+
* "tuple(string,tuple(uint8,bool))",
|
|
166
|
+
* {name: "Bob", profile: {age: 25, active: true}}
|
|
167
|
+
* ) // → ["Bob", [25, true]]
|
|
168
|
+
*
|
|
169
|
+
* // Tuple array
|
|
170
|
+
* convertObjectToArray(
|
|
171
|
+
* "tuple(uint8,address)[]",
|
|
172
|
+
* [{algorithm: 0, addr: "0x123..."}, {algorithm: 1, addr: "0x456..."}]
|
|
173
|
+
* ) // → [[0, "0x123..."], [1, "0x456..."]]
|
|
174
|
+
*/
|
|
175
|
+
static convertObjectToArray(abiType: string, value: any): any;
|
|
176
|
+
/**
|
|
177
|
+
* Parse tuple field types from ABI type string
|
|
178
|
+
* Handles nested tuples correctly
|
|
179
|
+
*
|
|
180
|
+
* @param abiType Tuple ABI type string
|
|
181
|
+
* @returns Array of field type strings
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* parseTupleFieldTypes("tuple(string,uint8)")
|
|
185
|
+
* // → ["string", "uint8"]
|
|
186
|
+
*
|
|
187
|
+
* parseTupleFieldTypes("tuple(string,tuple(uint8,bool))")
|
|
188
|
+
* // → ["string", "tuple(uint8,bool)"]
|
|
189
|
+
*/
|
|
190
|
+
static parseTupleFieldTypes(abiType: string): string[];
|
|
148
191
|
}
|
|
149
192
|
/**
|
|
150
193
|
* Tuple Type Builder (supports field names and object encoding)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-type-builder.d.ts","sourceRoot":"","sources":["../../src/utils/tag-type-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAc;IAEnC,SAAS,aAAa,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAW;IAKnE;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAsF3D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgDjC;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE,EAAE;IAS3B;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,GAAE,MAAY,GAAG,cAAc;IAS/C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,GAAE,MAAY,GAAG,cAAc;IAS9C;;;;OAIG;IACH,MAAM,CAAC,IAAI,IAAI,cAAc;IAI7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,IAAI,cAAc;IAI/B;;;;OAIG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAIhC;;;;OAIG;IACH,MAAM,CAAC,KAAK,IAAI,cAAc;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAY/C;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc;IAYzD;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAChB,WAAW,EAAE,cAAc,EAC3B,MAAM,EAAE,MAAM,GACZ,cAAc;IAoBjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,gBAAgB;IAyCtE,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,OAAO;IAGd,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,IAAI;IAGX,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,YAAY;IAGnB,MAAM,CAAC,WAAW;IAGlB,MAAM,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"tag-type-builder.d.ts","sourceRoot":"","sources":["../../src/utils/tag-type-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAc;IAEnC,SAAS,aAAa,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAW;IAKnE;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAsF3D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgDjC;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE,EAAE;IAS3B;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,GAAE,MAAY,GAAG,cAAc;IAS/C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,GAAE,MAAY,GAAG,cAAc;IAS9C;;;;OAIG;IACH,MAAM,CAAC,IAAI,IAAI,cAAc;IAI7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,IAAI,cAAc;IAI/B;;;;OAIG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAIhC;;;;OAIG;IACH,MAAM,CAAC,KAAK,IAAI,cAAc;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAY/C;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc;IAYzD;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAChB,WAAW,EAAE,cAAc,EAC3B,MAAM,EAAE,MAAM,GACZ,cAAc;IAoBjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,gBAAgB;IAyCtE,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,OAAO;IAGd,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,IAAI;IAGX,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,KAAK;IAGZ,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,YAAY;IAGnB,MAAM,CAAC,WAAW;IAGlB,MAAM,CAAC,YAAY;IAQnB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IA2D7D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;CAiCtD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IACnD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAiC;gBAGnD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAAE,EAAE,EACtB,aAAa,GAAE,MAAW,EAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAO5C,aAAa,IAAI,MAAM,EAAE,EAAE;CAG3B"}
|
|
@@ -391,6 +391,128 @@ class TagTypeBuilder {
|
|
|
391
391
|
static uint256Array() {
|
|
392
392
|
return this.array(this.uint256());
|
|
393
393
|
}
|
|
394
|
+
// ========================================
|
|
395
|
+
// Object to Array Conversion (for encoding)
|
|
396
|
+
// ========================================
|
|
397
|
+
/**
|
|
398
|
+
* Convert object to array for tuple encoding
|
|
399
|
+
* Recursively handles nested tuples and tuple arrays
|
|
400
|
+
*
|
|
401
|
+
* @param abiType ABI type string (e.g., "tuple(string,uint8)")
|
|
402
|
+
* @param value Value to convert (object or array)
|
|
403
|
+
* @returns Array representation suitable for ABI encoding
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* // Simple tuple
|
|
407
|
+
* convertObjectToArray(
|
|
408
|
+
* "tuple(string,uint8)",
|
|
409
|
+
* {name: "Alice", age: 30}
|
|
410
|
+
* ) // → ["Alice", 30]
|
|
411
|
+
*
|
|
412
|
+
* // Nested tuple
|
|
413
|
+
* convertObjectToArray(
|
|
414
|
+
* "tuple(string,tuple(uint8,bool))",
|
|
415
|
+
* {name: "Bob", profile: {age: 25, active: true}}
|
|
416
|
+
* ) // → ["Bob", [25, true]]
|
|
417
|
+
*
|
|
418
|
+
* // Tuple array
|
|
419
|
+
* convertObjectToArray(
|
|
420
|
+
* "tuple(uint8,address)[]",
|
|
421
|
+
* [{algorithm: 0, addr: "0x123..."}, {algorithm: 1, addr: "0x456..."}]
|
|
422
|
+
* ) // → [[0, "0x123..."], [1, "0x456..."]]
|
|
423
|
+
*/
|
|
424
|
+
static convertObjectToArray(abiType, value) {
|
|
425
|
+
// Handle null and primitives
|
|
426
|
+
if (value === null || typeof value !== 'object') {
|
|
427
|
+
return value;
|
|
428
|
+
}
|
|
429
|
+
// Handle tuple[] type (array of tuples)
|
|
430
|
+
// Check if it ends with [] and starts with tuple
|
|
431
|
+
if (abiType.startsWith('tuple(') && abiType.endsWith('[]')) {
|
|
432
|
+
if (Array.isArray(value)) {
|
|
433
|
+
// Remove [] suffix to get element type: "tuple(uint8,address)[]" → "tuple(uint8,address)"
|
|
434
|
+
const elementType = abiType.slice(0, -2);
|
|
435
|
+
// Recursively convert each element
|
|
436
|
+
return value.map((item) => this.convertObjectToArray(elementType, item));
|
|
437
|
+
}
|
|
438
|
+
// If not an array but type is tuple[], return as-is
|
|
439
|
+
return value;
|
|
440
|
+
}
|
|
441
|
+
// If already an array (but not tuple[]), return as-is
|
|
442
|
+
if (Array.isArray(value)) {
|
|
443
|
+
return value;
|
|
444
|
+
}
|
|
445
|
+
// If not a tuple type, return as-is
|
|
446
|
+
if (!abiType.startsWith('tuple(')) {
|
|
447
|
+
return value;
|
|
448
|
+
}
|
|
449
|
+
// Parse tuple field types
|
|
450
|
+
const fieldTypes = this.parseTupleFieldTypes(abiType);
|
|
451
|
+
const fieldNames = Object.keys(value);
|
|
452
|
+
if (fieldNames.length !== fieldTypes.length) {
|
|
453
|
+
throw new Error(`Tuple field count mismatch: expected ${fieldTypes.length} fields, got ${fieldNames.length}`);
|
|
454
|
+
}
|
|
455
|
+
// Convert object to array, recursively handling nested tuples
|
|
456
|
+
const result = [];
|
|
457
|
+
for (let i = 0; i < fieldNames.length; i++) {
|
|
458
|
+
const fieldName = fieldNames[i];
|
|
459
|
+
const fieldType = fieldTypes[i];
|
|
460
|
+
const fieldValue = value[fieldName];
|
|
461
|
+
// Recursively convert nested tuples (including nested tuple arrays)
|
|
462
|
+
if (fieldType.startsWith('tuple(')) {
|
|
463
|
+
result.push(this.convertObjectToArray(fieldType, fieldValue));
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
result.push(fieldValue);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
return result;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Parse tuple field types from ABI type string
|
|
473
|
+
* Handles nested tuples correctly
|
|
474
|
+
*
|
|
475
|
+
* @param abiType Tuple ABI type string
|
|
476
|
+
* @returns Array of field type strings
|
|
477
|
+
*
|
|
478
|
+
* @example
|
|
479
|
+
* parseTupleFieldTypes("tuple(string,uint8)")
|
|
480
|
+
* // → ["string", "uint8"]
|
|
481
|
+
*
|
|
482
|
+
* parseTupleFieldTypes("tuple(string,tuple(uint8,bool))")
|
|
483
|
+
* // → ["string", "tuple(uint8,bool)"]
|
|
484
|
+
*/
|
|
485
|
+
static parseTupleFieldTypes(abiType) {
|
|
486
|
+
if (!abiType.startsWith('tuple(')) {
|
|
487
|
+
return [];
|
|
488
|
+
}
|
|
489
|
+
const innerTypes = abiType.slice(6, -1); // Remove "tuple(" and ")"
|
|
490
|
+
const fields = [];
|
|
491
|
+
let depth = 0;
|
|
492
|
+
let currentField = '';
|
|
493
|
+
for (let i = 0; i < innerTypes.length; i++) {
|
|
494
|
+
const char = innerTypes[i];
|
|
495
|
+
if (char === '(') {
|
|
496
|
+
depth++;
|
|
497
|
+
currentField += char;
|
|
498
|
+
}
|
|
499
|
+
else if (char === ')') {
|
|
500
|
+
depth--;
|
|
501
|
+
currentField += char;
|
|
502
|
+
}
|
|
503
|
+
else if (char === ',' && depth === 0) {
|
|
504
|
+
fields.push(currentField.trim());
|
|
505
|
+
currentField = '';
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
currentField += char;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
if (currentField) {
|
|
512
|
+
fields.push(currentField.trim());
|
|
513
|
+
}
|
|
514
|
+
return fields;
|
|
515
|
+
}
|
|
394
516
|
}
|
|
395
517
|
exports.TagTypeBuilder = TagTypeBuilder;
|
|
396
518
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-type-builder.js","sourceRoot":"","sources":["../../src/utils/tag-type-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tag-type-builder.js","sourceRoot":"","sources":["../../src/utils/tag-type-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { AbiCoder } from 'ethers';
|
|
2
|
+
import { RawTagData, Tag } from '../domain/types';
|
|
3
|
+
/**
|
|
4
|
+
* Tag Type Parser
|
|
5
|
+
* Parse and decode Tag values with field name support
|
|
6
|
+
*
|
|
7
|
+
* Pair with TagTypeBuilder:
|
|
8
|
+
* - TagTypeBuilder: Encoding (build types, object → array)
|
|
9
|
+
* - TagTypeParser: Decoding (parse types, array → object, parse tags)
|
|
10
|
+
*/
|
|
11
|
+
export declare class TagTypeParser {
|
|
12
|
+
/**
|
|
13
|
+
* Parse a raw tag into a formatted Tag object
|
|
14
|
+
* Handles all types including nested tuples
|
|
15
|
+
*
|
|
16
|
+
* @param rawTag Raw tag data from contract
|
|
17
|
+
* @param fieldNamesMap Map of field name hashes to field names
|
|
18
|
+
* @param abiCoder AbiCoder instance for decoding
|
|
19
|
+
* @returns Formatted Tag object
|
|
20
|
+
*/
|
|
21
|
+
static parseTag(rawTag: RawTagData, fieldNamesMap: Map<string, string[]>, abiCoder: AbiCoder): Tag;
|
|
22
|
+
/**
|
|
23
|
+
* Convert decoded tuple array to object using field names
|
|
24
|
+
* Recursively handles nested tuples
|
|
25
|
+
*
|
|
26
|
+
* @param value Decoded tuple value (array form)
|
|
27
|
+
* @param abiType ABI type string of the tuple
|
|
28
|
+
* @param allFieldNames All field names in pre-order traversal
|
|
29
|
+
* @param context Context to track which field name array we're using
|
|
30
|
+
* @returns Object representation with field names
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // Simple tuple
|
|
34
|
+
* convertTupleToObject(
|
|
35
|
+
* ["Alice", 30],
|
|
36
|
+
* "tuple(string,uint8)",
|
|
37
|
+
* [["name", "age"]],
|
|
38
|
+
* { fieldNameIndex: 0 }
|
|
39
|
+
* ) // → { name: "Alice", age: 30 }
|
|
40
|
+
*
|
|
41
|
+
* // Nested tuple
|
|
42
|
+
* convertTupleToObject(
|
|
43
|
+
* ["Bob", [25, true]],
|
|
44
|
+
* "tuple(string,tuple(uint8,bool))",
|
|
45
|
+
* [["name", "profile"], ["age", "verified"]],
|
|
46
|
+
* { fieldNameIndex: 0 }
|
|
47
|
+
* ) // → { name: "Bob", profile: { age: 25, verified: true } }
|
|
48
|
+
*/
|
|
49
|
+
static convertTupleToObject(value: any, abiType: string, allFieldNames: string[][], context: {
|
|
50
|
+
fieldNameIndex: number;
|
|
51
|
+
}): any;
|
|
52
|
+
/**
|
|
53
|
+
* Recursively convert BigInt values to strings
|
|
54
|
+
* Handles primitives, arrays, and objects
|
|
55
|
+
*
|
|
56
|
+
* @param value Value to convert
|
|
57
|
+
* @returns Value with all BigInts converted to strings
|
|
58
|
+
*/
|
|
59
|
+
static convertBigIntToString(value: any): any;
|
|
60
|
+
/**
|
|
61
|
+
* Get all field names for a tag from the field names map
|
|
62
|
+
* Returns all field name arrays in pre-order (for nested tuples)
|
|
63
|
+
*
|
|
64
|
+
* @param fieldNamesHashes Array of field name hashes
|
|
65
|
+
* @param fieldNamesMap Map of hash to field names
|
|
66
|
+
* @returns Array of field name arrays in pre-order
|
|
67
|
+
*/
|
|
68
|
+
private static getAllFieldNames;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=tag-type-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-type-parser.d.ts","sourceRoot":"","sources":["../../src/utils/tag-type-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACzB;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CACd,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACpC,QAAQ,EAAE,QAAQ,GAChB,GAAG;IAkGN;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,oBAAoB,CAC1B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GACjC,GAAG;IA0CN;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;IAiB7C;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAe/B"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagTypeParser = void 0;
|
|
4
|
+
const tag_type_builder_1 = require("./tag-type-builder");
|
|
5
|
+
/**
|
|
6
|
+
* Tag Type Parser
|
|
7
|
+
* Parse and decode Tag values with field name support
|
|
8
|
+
*
|
|
9
|
+
* Pair with TagTypeBuilder:
|
|
10
|
+
* - TagTypeBuilder: Encoding (build types, object → array)
|
|
11
|
+
* - TagTypeParser: Decoding (parse types, array → object, parse tags)
|
|
12
|
+
*/
|
|
13
|
+
class TagTypeParser {
|
|
14
|
+
/**
|
|
15
|
+
* Parse a raw tag into a formatted Tag object
|
|
16
|
+
* Handles all types including nested tuples
|
|
17
|
+
*
|
|
18
|
+
* @param rawTag Raw tag data from contract
|
|
19
|
+
* @param fieldNamesMap Map of field name hashes to field names
|
|
20
|
+
* @param abiCoder AbiCoder instance for decoding
|
|
21
|
+
* @returns Formatted Tag object
|
|
22
|
+
*/
|
|
23
|
+
static parseTag(rawTag, fieldNamesMap, abiCoder) {
|
|
24
|
+
// Step 1: Parse type bytes to ABI type string
|
|
25
|
+
const abiTypeString = tag_type_builder_1.TagTypeBuilder.parseTypeBytesToAbiString(rawTag.abiType);
|
|
26
|
+
// If the tag has no value (defined but not set), return it with null formatted value
|
|
27
|
+
if (!rawTag.value || rawTag.value === '0x' || rawTag.value === '') {
|
|
28
|
+
return {
|
|
29
|
+
from: rawTag.from,
|
|
30
|
+
name: rawTag.name,
|
|
31
|
+
abiType: abiTypeString,
|
|
32
|
+
value: rawTag.value,
|
|
33
|
+
fieldNamesHash: rawTag.fieldNamesHash,
|
|
34
|
+
valueFormatted: null
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Step 2: Decode value
|
|
38
|
+
const decoded = abiCoder.decode([abiTypeString], rawTag.value);
|
|
39
|
+
let decodedValue = decoded[0];
|
|
40
|
+
// Step 3: Convert to user-friendly format
|
|
41
|
+
let formattedValue = decodedValue;
|
|
42
|
+
// Handle tuple types (including tuple arrays and nested tuples)
|
|
43
|
+
if (abiTypeString.includes('tuple')) {
|
|
44
|
+
// Get all field names in pre-order (for nested tuples)
|
|
45
|
+
const allFieldNames = this.getAllFieldNames(rawTag.fieldNamesHash, fieldNamesMap);
|
|
46
|
+
if (allFieldNames.length > 0) {
|
|
47
|
+
// Use a counter to track which field name array we're using
|
|
48
|
+
const context = { fieldNameIndex: 0 };
|
|
49
|
+
// Check if it's an array of tuples
|
|
50
|
+
if (abiTypeString.startsWith('tuple(') &&
|
|
51
|
+
abiTypeString.endsWith('[]')) {
|
|
52
|
+
// Array of tuples: convert each element
|
|
53
|
+
if (Array.isArray(decodedValue)) {
|
|
54
|
+
formattedValue = decodedValue.map((item) => {
|
|
55
|
+
// Reset field name index for each array element
|
|
56
|
+
const itemContext = { fieldNameIndex: 0 };
|
|
57
|
+
return this.convertTupleToObject(item, abiTypeString.slice(0, -2), allFieldNames, itemContext);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (abiTypeString.startsWith('tuple(')) {
|
|
62
|
+
// Single tuple: convert to object (with nested tuple support)
|
|
63
|
+
formattedValue = this.convertTupleToObject(decodedValue, abiTypeString, allFieldNames, context);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Log warning if field names not found for tuple
|
|
68
|
+
if (rawTag.fieldNamesHash.length > 0 &&
|
|
69
|
+
rawTag.fieldNamesHash[0] !==
|
|
70
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000') {
|
|
71
|
+
console.warn(`⚠️ Field names not found for tag "${rawTag.name}" with hash(es): ${rawTag.fieldNamesHash.join(', ')}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Convert BigInt to string for serialization
|
|
76
|
+
formattedValue = this.convertBigIntToString(formattedValue);
|
|
77
|
+
// Serialize objects/arrays to JSON string for did-support compatibility
|
|
78
|
+
if (formattedValue !== null && typeof formattedValue === 'object') {
|
|
79
|
+
formattedValue = JSON.stringify(formattedValue);
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
from: rawTag.from,
|
|
83
|
+
name: rawTag.name,
|
|
84
|
+
abiType: abiTypeString,
|
|
85
|
+
value: rawTag.value,
|
|
86
|
+
fieldNamesHash: rawTag.fieldNamesHash,
|
|
87
|
+
valueFormatted: formattedValue
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Convert decoded tuple array to object using field names
|
|
92
|
+
* Recursively handles nested tuples
|
|
93
|
+
*
|
|
94
|
+
* @param value Decoded tuple value (array form)
|
|
95
|
+
* @param abiType ABI type string of the tuple
|
|
96
|
+
* @param allFieldNames All field names in pre-order traversal
|
|
97
|
+
* @param context Context to track which field name array we're using
|
|
98
|
+
* @returns Object representation with field names
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* // Simple tuple
|
|
102
|
+
* convertTupleToObject(
|
|
103
|
+
* ["Alice", 30],
|
|
104
|
+
* "tuple(string,uint8)",
|
|
105
|
+
* [["name", "age"]],
|
|
106
|
+
* { fieldNameIndex: 0 }
|
|
107
|
+
* ) // → { name: "Alice", age: 30 }
|
|
108
|
+
*
|
|
109
|
+
* // Nested tuple
|
|
110
|
+
* convertTupleToObject(
|
|
111
|
+
* ["Bob", [25, true]],
|
|
112
|
+
* "tuple(string,tuple(uint8,bool))",
|
|
113
|
+
* [["name", "profile"], ["age", "verified"]],
|
|
114
|
+
* { fieldNameIndex: 0 }
|
|
115
|
+
* ) // → { name: "Bob", profile: { age: 25, verified: true } }
|
|
116
|
+
*/
|
|
117
|
+
static convertTupleToObject(value, abiType, allFieldNames, context) {
|
|
118
|
+
if (!Array.isArray(value) || !abiType.startsWith('tuple(')) {
|
|
119
|
+
return value;
|
|
120
|
+
}
|
|
121
|
+
// Get field names for current tuple level
|
|
122
|
+
if (context.fieldNameIndex >= allFieldNames.length) {
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
const fieldNames = allFieldNames[context.fieldNameIndex];
|
|
126
|
+
context.fieldNameIndex++;
|
|
127
|
+
if (fieldNames.length !== value.length) {
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
// Parse field types to determine which fields are nested tuples
|
|
131
|
+
const fieldTypes = tag_type_builder_1.TagTypeBuilder.parseTupleFieldTypes(abiType);
|
|
132
|
+
const obj = {};
|
|
133
|
+
for (let i = 0; i < fieldNames.length; i++) {
|
|
134
|
+
const fieldName = fieldNames[i];
|
|
135
|
+
const fieldValue = value[i];
|
|
136
|
+
const fieldType = fieldTypes[i];
|
|
137
|
+
// Recursively convert nested tuples
|
|
138
|
+
if (fieldType.startsWith('tuple(')) {
|
|
139
|
+
obj[fieldName] = this.convertTupleToObject(fieldValue, fieldType, allFieldNames, context);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
obj[fieldName] = fieldValue;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return obj;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Recursively convert BigInt values to strings
|
|
149
|
+
* Handles primitives, arrays, and objects
|
|
150
|
+
*
|
|
151
|
+
* @param value Value to convert
|
|
152
|
+
* @returns Value with all BigInts converted to strings
|
|
153
|
+
*/
|
|
154
|
+
static convertBigIntToString(value) {
|
|
155
|
+
if (typeof value === 'bigint') {
|
|
156
|
+
return value.toString();
|
|
157
|
+
}
|
|
158
|
+
if (Array.isArray(value)) {
|
|
159
|
+
return value.map((v) => this.convertBigIntToString(v));
|
|
160
|
+
}
|
|
161
|
+
if (value !== null && typeof value === 'object') {
|
|
162
|
+
const result = {};
|
|
163
|
+
for (const key in value) {
|
|
164
|
+
result[key] = this.convertBigIntToString(value[key]);
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
return value;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all field names for a tag from the field names map
|
|
172
|
+
* Returns all field name arrays in pre-order (for nested tuples)
|
|
173
|
+
*
|
|
174
|
+
* @param fieldNamesHashes Array of field name hashes
|
|
175
|
+
* @param fieldNamesMap Map of hash to field names
|
|
176
|
+
* @returns Array of field name arrays in pre-order
|
|
177
|
+
*/
|
|
178
|
+
static getAllFieldNames(fieldNamesHashes, fieldNamesMap) {
|
|
179
|
+
const allFieldNames = [];
|
|
180
|
+
for (const hash of fieldNamesHashes) {
|
|
181
|
+
const names = fieldNamesMap.get(hash);
|
|
182
|
+
if (names) {
|
|
183
|
+
allFieldNames.push(names);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return allFieldNames;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.TagTypeParser = TagTypeParser;
|
|
190
|
+
//# sourceMappingURL=tag-type-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-type-parser.js","sourceRoot":"","sources":["../../src/utils/tag-type-parser.ts"],"names":[],"mappings":"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"}
|