@beclab/olaresid 0.1.13 → 0.2.1
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 +81 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +158 -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 +230 -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/tests/unit/version.test.ts +14 -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,516 @@
|
|
|
1
|
+
export default [
|
|
2
|
+
{
|
|
3
|
+
type: 'constructor',
|
|
4
|
+
inputs: [
|
|
5
|
+
{
|
|
6
|
+
name: '_terminusDID',
|
|
7
|
+
type: 'address',
|
|
8
|
+
internalType: 'address'
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
stateMutability: 'nonpayable'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'function',
|
|
15
|
+
name: 'getAllDomains',
|
|
16
|
+
inputs: [
|
|
17
|
+
{
|
|
18
|
+
name: 'offset',
|
|
19
|
+
type: 'uint256',
|
|
20
|
+
internalType: 'uint256'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'limit',
|
|
24
|
+
type: 'uint256',
|
|
25
|
+
internalType: 'uint256'
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
outputs: [
|
|
29
|
+
{
|
|
30
|
+
name: 'domains',
|
|
31
|
+
type: 'tuple[]',
|
|
32
|
+
internalType: 'struct TerminusDIDQuery.DomainData[]',
|
|
33
|
+
components: [
|
|
34
|
+
{
|
|
35
|
+
name: 'tokenId',
|
|
36
|
+
type: 'uint256',
|
|
37
|
+
internalType: 'uint256'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'domain',
|
|
41
|
+
type: 'string',
|
|
42
|
+
internalType: 'string'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'did',
|
|
46
|
+
type: 'string',
|
|
47
|
+
internalType: 'string'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'notes',
|
|
51
|
+
type: 'string',
|
|
52
|
+
internalType: 'string'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'allowSubdomain',
|
|
56
|
+
type: 'bool',
|
|
57
|
+
internalType: 'bool'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'owner',
|
|
61
|
+
type: 'address',
|
|
62
|
+
internalType: 'address'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'tags',
|
|
66
|
+
type: 'tuple[]',
|
|
67
|
+
internalType: 'struct TerminusDIDQuery.TagData[]',
|
|
68
|
+
components: [
|
|
69
|
+
{
|
|
70
|
+
name: 'from',
|
|
71
|
+
type: 'string',
|
|
72
|
+
internalType: 'string'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'name',
|
|
76
|
+
type: 'string',
|
|
77
|
+
internalType: 'string'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'abiType',
|
|
81
|
+
type: 'bytes',
|
|
82
|
+
internalType: 'bytes'
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'value',
|
|
86
|
+
type: 'bytes',
|
|
87
|
+
internalType: 'bytes'
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'fieldNamesHash',
|
|
91
|
+
type: 'bytes32[]',
|
|
92
|
+
internalType: 'bytes32[]'
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
stateMutability: 'view'
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'function',
|
|
103
|
+
name: 'getDomain',
|
|
104
|
+
inputs: [
|
|
105
|
+
{
|
|
106
|
+
name: 'tokenId',
|
|
107
|
+
type: 'uint256',
|
|
108
|
+
internalType: 'uint256'
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
outputs: [
|
|
112
|
+
{
|
|
113
|
+
name: 'data',
|
|
114
|
+
type: 'tuple',
|
|
115
|
+
internalType: 'struct TerminusDIDQuery.DomainData',
|
|
116
|
+
components: [
|
|
117
|
+
{
|
|
118
|
+
name: 'tokenId',
|
|
119
|
+
type: 'uint256',
|
|
120
|
+
internalType: 'uint256'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'domain',
|
|
124
|
+
type: 'string',
|
|
125
|
+
internalType: 'string'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: 'did',
|
|
129
|
+
type: 'string',
|
|
130
|
+
internalType: 'string'
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'notes',
|
|
134
|
+
type: 'string',
|
|
135
|
+
internalType: 'string'
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: 'allowSubdomain',
|
|
139
|
+
type: 'bool',
|
|
140
|
+
internalType: 'bool'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: 'owner',
|
|
144
|
+
type: 'address',
|
|
145
|
+
internalType: 'address'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'tags',
|
|
149
|
+
type: 'tuple[]',
|
|
150
|
+
internalType: 'struct TerminusDIDQuery.TagData[]',
|
|
151
|
+
components: [
|
|
152
|
+
{
|
|
153
|
+
name: 'from',
|
|
154
|
+
type: 'string',
|
|
155
|
+
internalType: 'string'
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: 'name',
|
|
159
|
+
type: 'string',
|
|
160
|
+
internalType: 'string'
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: 'abiType',
|
|
164
|
+
type: 'bytes',
|
|
165
|
+
internalType: 'bytes'
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: 'value',
|
|
169
|
+
type: 'bytes',
|
|
170
|
+
internalType: 'bytes'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'fieldNamesHash',
|
|
174
|
+
type: 'bytes32[]',
|
|
175
|
+
internalType: 'bytes32[]'
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
stateMutability: 'view'
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'function',
|
|
186
|
+
name: 'getDomainByName',
|
|
187
|
+
inputs: [
|
|
188
|
+
{
|
|
189
|
+
name: 'name',
|
|
190
|
+
type: 'string',
|
|
191
|
+
internalType: 'string'
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
outputs: [
|
|
195
|
+
{
|
|
196
|
+
name: 'data',
|
|
197
|
+
type: 'tuple',
|
|
198
|
+
internalType: 'struct TerminusDIDQuery.DomainData',
|
|
199
|
+
components: [
|
|
200
|
+
{
|
|
201
|
+
name: 'tokenId',
|
|
202
|
+
type: 'uint256',
|
|
203
|
+
internalType: 'uint256'
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: 'domain',
|
|
207
|
+
type: 'string',
|
|
208
|
+
internalType: 'string'
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'did',
|
|
212
|
+
type: 'string',
|
|
213
|
+
internalType: 'string'
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'notes',
|
|
217
|
+
type: 'string',
|
|
218
|
+
internalType: 'string'
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'allowSubdomain',
|
|
222
|
+
type: 'bool',
|
|
223
|
+
internalType: 'bool'
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: 'owner',
|
|
227
|
+
type: 'address',
|
|
228
|
+
internalType: 'address'
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: 'tags',
|
|
232
|
+
type: 'tuple[]',
|
|
233
|
+
internalType: 'struct TerminusDIDQuery.TagData[]',
|
|
234
|
+
components: [
|
|
235
|
+
{
|
|
236
|
+
name: 'from',
|
|
237
|
+
type: 'string',
|
|
238
|
+
internalType: 'string'
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: 'name',
|
|
242
|
+
type: 'string',
|
|
243
|
+
internalType: 'string'
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: 'abiType',
|
|
247
|
+
type: 'bytes',
|
|
248
|
+
internalType: 'bytes'
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: 'value',
|
|
252
|
+
type: 'bytes',
|
|
253
|
+
internalType: 'bytes'
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
name: 'fieldNamesHash',
|
|
257
|
+
type: 'bytes32[]',
|
|
258
|
+
internalType: 'bytes32[]'
|
|
259
|
+
}
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
stateMutability: 'view'
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
type: 'function',
|
|
269
|
+
name: 'getDomains',
|
|
270
|
+
inputs: [
|
|
271
|
+
{
|
|
272
|
+
name: 'tokenIds',
|
|
273
|
+
type: 'uint256[]',
|
|
274
|
+
internalType: 'uint256[]'
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
outputs: [
|
|
278
|
+
{
|
|
279
|
+
name: 'domains',
|
|
280
|
+
type: 'tuple[]',
|
|
281
|
+
internalType: 'struct TerminusDIDQuery.DomainData[]',
|
|
282
|
+
components: [
|
|
283
|
+
{
|
|
284
|
+
name: 'tokenId',
|
|
285
|
+
type: 'uint256',
|
|
286
|
+
internalType: 'uint256'
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: 'domain',
|
|
290
|
+
type: 'string',
|
|
291
|
+
internalType: 'string'
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
name: 'did',
|
|
295
|
+
type: 'string',
|
|
296
|
+
internalType: 'string'
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
name: 'notes',
|
|
300
|
+
type: 'string',
|
|
301
|
+
internalType: 'string'
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
name: 'allowSubdomain',
|
|
305
|
+
type: 'bool',
|
|
306
|
+
internalType: 'bool'
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
name: 'owner',
|
|
310
|
+
type: 'address',
|
|
311
|
+
internalType: 'address'
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
name: 'tags',
|
|
315
|
+
type: 'tuple[]',
|
|
316
|
+
internalType: 'struct TerminusDIDQuery.TagData[]',
|
|
317
|
+
components: [
|
|
318
|
+
{
|
|
319
|
+
name: 'from',
|
|
320
|
+
type: 'string',
|
|
321
|
+
internalType: 'string'
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: 'name',
|
|
325
|
+
type: 'string',
|
|
326
|
+
internalType: 'string'
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
name: 'abiType',
|
|
330
|
+
type: 'bytes',
|
|
331
|
+
internalType: 'bytes'
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: 'value',
|
|
335
|
+
type: 'bytes',
|
|
336
|
+
internalType: 'bytes'
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: 'fieldNamesHash',
|
|
340
|
+
type: 'bytes32[]',
|
|
341
|
+
internalType: 'bytes32[]'
|
|
342
|
+
}
|
|
343
|
+
]
|
|
344
|
+
}
|
|
345
|
+
]
|
|
346
|
+
}
|
|
347
|
+
],
|
|
348
|
+
stateMutability: 'view'
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
type: 'function',
|
|
352
|
+
name: 'getDomainsByIndices',
|
|
353
|
+
inputs: [
|
|
354
|
+
{
|
|
355
|
+
name: 'indices',
|
|
356
|
+
type: 'uint256[]',
|
|
357
|
+
internalType: 'uint256[]'
|
|
358
|
+
}
|
|
359
|
+
],
|
|
360
|
+
outputs: [
|
|
361
|
+
{
|
|
362
|
+
name: 'domains',
|
|
363
|
+
type: 'tuple[]',
|
|
364
|
+
internalType: 'struct TerminusDIDQuery.DomainData[]',
|
|
365
|
+
components: [
|
|
366
|
+
{
|
|
367
|
+
name: 'tokenId',
|
|
368
|
+
type: 'uint256',
|
|
369
|
+
internalType: 'uint256'
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
name: 'domain',
|
|
373
|
+
type: 'string',
|
|
374
|
+
internalType: 'string'
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
name: 'did',
|
|
378
|
+
type: 'string',
|
|
379
|
+
internalType: 'string'
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
name: 'notes',
|
|
383
|
+
type: 'string',
|
|
384
|
+
internalType: 'string'
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
name: 'allowSubdomain',
|
|
388
|
+
type: 'bool',
|
|
389
|
+
internalType: 'bool'
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
name: 'owner',
|
|
393
|
+
type: 'address',
|
|
394
|
+
internalType: 'address'
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
name: 'tags',
|
|
398
|
+
type: 'tuple[]',
|
|
399
|
+
internalType: 'struct TerminusDIDQuery.TagData[]',
|
|
400
|
+
components: [
|
|
401
|
+
{
|
|
402
|
+
name: 'from',
|
|
403
|
+
type: 'string',
|
|
404
|
+
internalType: 'string'
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
name: 'name',
|
|
408
|
+
type: 'string',
|
|
409
|
+
internalType: 'string'
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
name: 'abiType',
|
|
413
|
+
type: 'bytes',
|
|
414
|
+
internalType: 'bytes'
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
name: 'value',
|
|
418
|
+
type: 'bytes',
|
|
419
|
+
internalType: 'bytes'
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
name: 'fieldNamesHash',
|
|
423
|
+
type: 'bytes32[]',
|
|
424
|
+
internalType: 'bytes32[]'
|
|
425
|
+
}
|
|
426
|
+
]
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
],
|
|
431
|
+
stateMutability: 'view'
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
type: 'function',
|
|
435
|
+
name: 'terminusDID',
|
|
436
|
+
inputs: [],
|
|
437
|
+
outputs: [
|
|
438
|
+
{
|
|
439
|
+
name: '',
|
|
440
|
+
type: 'address',
|
|
441
|
+
internalType: 'contract ITerminusDID'
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
stateMutability: 'view'
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
type: 'function',
|
|
448
|
+
name: 'tokenByIndex',
|
|
449
|
+
inputs: [
|
|
450
|
+
{
|
|
451
|
+
name: 'index',
|
|
452
|
+
type: 'uint256',
|
|
453
|
+
internalType: 'uint256'
|
|
454
|
+
}
|
|
455
|
+
],
|
|
456
|
+
outputs: [
|
|
457
|
+
{
|
|
458
|
+
name: '',
|
|
459
|
+
type: 'uint256',
|
|
460
|
+
internalType: 'uint256'
|
|
461
|
+
}
|
|
462
|
+
],
|
|
463
|
+
stateMutability: 'view'
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
type: 'function',
|
|
467
|
+
name: 'totalSupply',
|
|
468
|
+
inputs: [],
|
|
469
|
+
outputs: [
|
|
470
|
+
{
|
|
471
|
+
name: '',
|
|
472
|
+
type: 'uint256',
|
|
473
|
+
internalType: 'uint256'
|
|
474
|
+
}
|
|
475
|
+
],
|
|
476
|
+
stateMutability: 'view'
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
type: 'error',
|
|
480
|
+
name: 'DomainNotExists',
|
|
481
|
+
inputs: [
|
|
482
|
+
{
|
|
483
|
+
name: 'tokenId',
|
|
484
|
+
type: 'uint256',
|
|
485
|
+
internalType: 'uint256'
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
type: 'error',
|
|
491
|
+
name: 'InvalidBatchSize',
|
|
492
|
+
inputs: [
|
|
493
|
+
{
|
|
494
|
+
name: 'size',
|
|
495
|
+
type: 'uint256',
|
|
496
|
+
internalType: 'uint256'
|
|
497
|
+
}
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
type: 'error',
|
|
502
|
+
name: 'InvalidPagination',
|
|
503
|
+
inputs: [
|
|
504
|
+
{
|
|
505
|
+
name: 'offset',
|
|
506
|
+
type: 'uint256',
|
|
507
|
+
internalType: 'uint256'
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
name: 'limit',
|
|
511
|
+
type: 'uint256',
|
|
512
|
+
internalType: 'uint256'
|
|
513
|
+
}
|
|
514
|
+
]
|
|
515
|
+
}
|
|
516
|
+
] as const;
|
package/src/business/index.ts
CHANGED
|
@@ -111,7 +111,9 @@ export class DomainContext {
|
|
|
111
111
|
const [metadata, latestDID] = await Promise.all([
|
|
112
112
|
didContract.getMetadata(tokenId),
|
|
113
113
|
// Use catch to handle cases where latestDID is not set
|
|
114
|
-
resolverContract.getLatestDID(this.domainName).catch(() =>
|
|
114
|
+
resolverContract.getLatestDID(this.domainName).catch(() => {
|
|
115
|
+
return null;
|
|
116
|
+
})
|
|
115
117
|
]);
|
|
116
118
|
|
|
117
119
|
// Use latestDID if it has a value, otherwise fallback to metadata.did
|
|
@@ -792,16 +794,8 @@ export class DomainContext {
|
|
|
792
794
|
);
|
|
793
795
|
addresses.push(...tagger2Addresses);
|
|
794
796
|
} catch (error: any) {
|
|
795
|
-
const
|
|
796
|
-
|
|
797
|
-
// Only skip if it's a contract error (tag doesn't exist, etc.)
|
|
798
|
-
// Re-throw network errors
|
|
799
|
-
if (errorInfo.isNetworkError) {
|
|
800
|
-
throw new Error(
|
|
801
|
-
`Network error fetching from RootTagger2: ${errorInfo.message}`
|
|
802
|
-
);
|
|
803
|
-
}
|
|
804
|
-
// Contract errors are silently handled (tag doesn't exist is normal)
|
|
797
|
+
const parsedError = parseContractError(error);
|
|
798
|
+
throw new Error(parsedError.message);
|
|
805
799
|
}
|
|
806
800
|
|
|
807
801
|
// Get addresses from RootResolver (legacy method for backward compatibility)
|
|
@@ -818,16 +812,8 @@ export class DomainContext {
|
|
|
818
812
|
);
|
|
819
813
|
addresses.push(...legacyAddresses);
|
|
820
814
|
} catch (error: any) {
|
|
821
|
-
const
|
|
822
|
-
|
|
823
|
-
// Only skip if it's a contract error
|
|
824
|
-
// Re-throw network errors
|
|
825
|
-
if (errorInfo.isNetworkError) {
|
|
826
|
-
throw new Error(
|
|
827
|
-
`Network error fetching from RootResolver (legacy): ${errorInfo.message}`
|
|
828
|
-
);
|
|
829
|
-
}
|
|
830
|
-
// Contract errors are silently handled
|
|
815
|
+
const parsedError = parseContractError(error);
|
|
816
|
+
throw new Error(parsedError.message);
|
|
831
817
|
}
|
|
832
818
|
|
|
833
819
|
// Remove duplicates and return
|
|
@@ -1122,18 +1108,8 @@ export class DomainContext {
|
|
|
1122
1108
|
return new PublicKey(buffer).toBase58();
|
|
1123
1109
|
});
|
|
1124
1110
|
} catch (error: any) {
|
|
1125
|
-
const
|
|
1126
|
-
|
|
1127
|
-
// Only skip if it's a contract error (tag doesn't exist is normal)
|
|
1128
|
-
// Re-throw network errors
|
|
1129
|
-
if (errorInfo.isNetworkError) {
|
|
1130
|
-
throw new Error(
|
|
1131
|
-
`Network error fetching Solana wallets: ${errorInfo.message}`
|
|
1132
|
-
);
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
// For contract errors, return empty array (tag doesn't exist is normal)
|
|
1136
|
-
return [];
|
|
1111
|
+
const parsedError = parseContractError(error);
|
|
1112
|
+
throw new Error(parsedError.message);
|
|
1137
1113
|
}
|
|
1138
1114
|
}
|
|
1139
1115
|
|
|
@@ -2,14 +2,16 @@ import { DIDConsole } from '../index';
|
|
|
2
2
|
import { TransactionResult } from './index';
|
|
3
3
|
import { parseContractError } from '../utils/error-parser';
|
|
4
4
|
import { TagTypeBuilder } from '../utils/tag-type-builder';
|
|
5
|
-
import { TagAbiCodec } from '../utils/tag-abi-codec';
|
|
6
5
|
import { normalizeToDomain } from '../utils/olares-id';
|
|
6
|
+
import { AbiCoder } from 'ethers';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Tag Operation Context
|
|
10
10
|
* Provides complete Tag management functionality
|
|
11
11
|
*/
|
|
12
12
|
export class TagContext {
|
|
13
|
+
private abiCoder = new AbiCoder();
|
|
14
|
+
|
|
13
15
|
constructor(private console: DIDConsole, private fromDomain: string) {
|
|
14
16
|
// Support Olares ID format (user@domain.com)
|
|
15
17
|
this.fromDomain = normalizeToDomain(fromDomain);
|
|
@@ -237,9 +239,16 @@ export class TagContext {
|
|
|
237
239
|
tagTypeInfo.abiType
|
|
238
240
|
);
|
|
239
241
|
|
|
240
|
-
// Encode the ENTIRE value using
|
|
242
|
+
// Encode the ENTIRE value using ethers AbiCoder
|
|
241
243
|
// Objects are automatically converted to arrays based on ABI type structure
|
|
242
|
-
const
|
|
244
|
+
const convertedValue = TagTypeBuilder.convertObjectToArray(
|
|
245
|
+
abiType,
|
|
246
|
+
value
|
|
247
|
+
);
|
|
248
|
+
const encodedValue = this.abiCoder.encode(
|
|
249
|
+
[abiType],
|
|
250
|
+
[convertedValue]
|
|
251
|
+
);
|
|
243
252
|
|
|
244
253
|
// Check if tag already exists
|
|
245
254
|
const hasTag = await contract.hasTag(
|
|
@@ -316,7 +325,8 @@ export class TagContext {
|
|
|
316
325
|
const abiType = TagTypeBuilder.parseTypeBytesToAbiString(
|
|
317
326
|
tagTypeInfo.abiType
|
|
318
327
|
);
|
|
319
|
-
|
|
328
|
+
const decoded = this.abiCoder.decode([abiType], encodedValue);
|
|
329
|
+
return decoded[0];
|
|
320
330
|
} catch (error: any) {
|
|
321
331
|
const errorInfo = parseContractError(error);
|
|
322
332
|
if (
|
|
@@ -474,7 +484,14 @@ export class TagContext {
|
|
|
474
484
|
elemPath
|
|
475
485
|
);
|
|
476
486
|
// Encode the SINGLE ELEMENT (not the whole array)
|
|
477
|
-
const
|
|
487
|
+
const convertedValue = TagTypeBuilder.convertObjectToArray(
|
|
488
|
+
elementAbiType,
|
|
489
|
+
value
|
|
490
|
+
);
|
|
491
|
+
const encodedValue = this.abiCoder.encode(
|
|
492
|
+
[elementAbiType],
|
|
493
|
+
[convertedValue]
|
|
494
|
+
);
|
|
478
495
|
|
|
479
496
|
const tx = await contract.pushTagElem(
|
|
480
497
|
this.fromDomain,
|
|
@@ -582,7 +599,14 @@ export class TagContext {
|
|
|
582
599
|
elemPath
|
|
583
600
|
);
|
|
584
601
|
// Encode the element value
|
|
585
|
-
const
|
|
602
|
+
const convertedValue = TagTypeBuilder.convertObjectToArray(
|
|
603
|
+
elementAbiType,
|
|
604
|
+
value
|
|
605
|
+
);
|
|
606
|
+
const encodedValue = this.abiCoder.encode(
|
|
607
|
+
[elementAbiType],
|
|
608
|
+
[convertedValue]
|
|
609
|
+
);
|
|
586
610
|
|
|
587
611
|
const tx = await contract.updateTagElem(
|
|
588
612
|
this.fromDomain,
|
|
@@ -681,7 +705,11 @@ export class TagContext {
|
|
|
681
705
|
elemPath
|
|
682
706
|
);
|
|
683
707
|
// Decode the element
|
|
684
|
-
|
|
708
|
+
const decoded = this.abiCoder.decode(
|
|
709
|
+
[elementAbiType],
|
|
710
|
+
encodedValue
|
|
711
|
+
);
|
|
712
|
+
return decoded[0];
|
|
685
713
|
} catch (error: any) {
|
|
686
714
|
const errorInfo = parseContractError(error);
|
|
687
715
|
if (errorInfo.errorName === 'TagInvalidOp') {
|