@beclab/olaresid 0.1.12 → 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 -1329
- 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 +1 -1
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/index.js +11 -24
- 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 +238 -107
- 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 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +153 -143
- package/dist/index.js.map +1 -1
- package/dist/utils/crypto-utils.d.ts +124 -0
- package/dist/utils/crypto-utils.d.ts.map +1 -1
- package/dist/utils/crypto-utils.js +156 -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 +10 -33
- package/src/business/tag-context.ts +35 -7
- package/src/cli.ts +344 -121
- 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 +222 -207
- package/src/utils/crypto-utils.ts +239 -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,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
|
@@ -44,6 +44,7 @@ export {
|
|
|
44
44
|
createRsaKeyPair,
|
|
45
45
|
generateMnemonic,
|
|
46
46
|
getEthereumAddressFromMnemonic,
|
|
47
|
+
getEthereumAddressFromPrivateKey,
|
|
47
48
|
getEVMPrivateKeyFromMnemonic,
|
|
48
49
|
getDIDFromMnemonic,
|
|
49
50
|
generateDIDKeyData,
|
|
@@ -110,7 +111,9 @@ export class DomainContext {
|
|
|
110
111
|
const [metadata, latestDID] = await Promise.all([
|
|
111
112
|
didContract.getMetadata(tokenId),
|
|
112
113
|
// Use catch to handle cases where latestDID is not set
|
|
113
|
-
resolverContract.getLatestDID(this.domainName).catch(() =>
|
|
114
|
+
resolverContract.getLatestDID(this.domainName).catch(() => {
|
|
115
|
+
return null;
|
|
116
|
+
})
|
|
114
117
|
]);
|
|
115
118
|
|
|
116
119
|
// Use latestDID if it has a value, otherwise fallback to metadata.did
|
|
@@ -791,16 +794,8 @@ export class DomainContext {
|
|
|
791
794
|
);
|
|
792
795
|
addresses.push(...tagger2Addresses);
|
|
793
796
|
} catch (error: any) {
|
|
794
|
-
const
|
|
795
|
-
|
|
796
|
-
// Only skip if it's a contract error (tag doesn't exist, etc.)
|
|
797
|
-
// Re-throw network errors
|
|
798
|
-
if (errorInfo.isNetworkError) {
|
|
799
|
-
throw new Error(
|
|
800
|
-
`Network error fetching from RootTagger2: ${errorInfo.message}`
|
|
801
|
-
);
|
|
802
|
-
}
|
|
803
|
-
// Contract errors are silently handled (tag doesn't exist is normal)
|
|
797
|
+
const parsedError = parseContractError(error);
|
|
798
|
+
throw new Error(parsedError.message);
|
|
804
799
|
}
|
|
805
800
|
|
|
806
801
|
// Get addresses from RootResolver (legacy method for backward compatibility)
|
|
@@ -817,16 +812,8 @@ export class DomainContext {
|
|
|
817
812
|
);
|
|
818
813
|
addresses.push(...legacyAddresses);
|
|
819
814
|
} catch (error: any) {
|
|
820
|
-
const
|
|
821
|
-
|
|
822
|
-
// Only skip if it's a contract error
|
|
823
|
-
// Re-throw network errors
|
|
824
|
-
if (errorInfo.isNetworkError) {
|
|
825
|
-
throw new Error(
|
|
826
|
-
`Network error fetching from RootResolver (legacy): ${errorInfo.message}`
|
|
827
|
-
);
|
|
828
|
-
}
|
|
829
|
-
// Contract errors are silently handled
|
|
815
|
+
const parsedError = parseContractError(error);
|
|
816
|
+
throw new Error(parsedError.message);
|
|
830
817
|
}
|
|
831
818
|
|
|
832
819
|
// Remove duplicates and return
|
|
@@ -1121,18 +1108,8 @@ export class DomainContext {
|
|
|
1121
1108
|
return new PublicKey(buffer).toBase58();
|
|
1122
1109
|
});
|
|
1123
1110
|
} catch (error: any) {
|
|
1124
|
-
const
|
|
1125
|
-
|
|
1126
|
-
// Only skip if it's a contract error (tag doesn't exist is normal)
|
|
1127
|
-
// Re-throw network errors
|
|
1128
|
-
if (errorInfo.isNetworkError) {
|
|
1129
|
-
throw new Error(
|
|
1130
|
-
`Network error fetching Solana wallets: ${errorInfo.message}`
|
|
1131
|
-
);
|
|
1132
|
-
}
|
|
1133
|
-
|
|
1134
|
-
// For contract errors, return empty array (tag doesn't exist is normal)
|
|
1135
|
-
return [];
|
|
1111
|
+
const parsedError = parseContractError(error);
|
|
1112
|
+
throw new Error(parsedError.message);
|
|
1136
1113
|
}
|
|
1137
1114
|
}
|
|
1138
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') {
|