@beclab/olaresid 0.1.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.
Files changed (112) hide show
  1. package/LICENSE.md +49 -0
  2. package/README.md +93 -0
  3. package/dist/abi/ABITypeABI.d.ts +88 -0
  4. package/dist/abi/ABITypeABI.d.ts.map +1 -0
  5. package/dist/abi/ABITypeABI.js +382 -0
  6. package/dist/abi/ABITypeABI.js.map +1 -0
  7. package/dist/abi/RegistryABI.d.ts +77 -0
  8. package/dist/abi/RegistryABI.d.ts.map +1 -0
  9. package/dist/abi/RegistryABI.js +462 -0
  10. package/dist/abi/RegistryABI.js.map +1 -0
  11. package/dist/abi/RootResolverABI.d.ts +78 -0
  12. package/dist/abi/RootResolverABI.d.ts.map +1 -0
  13. package/dist/abi/RootResolverABI.js +372 -0
  14. package/dist/abi/RootResolverABI.js.map +1 -0
  15. package/dist/abi/TerminusDIDABI.d.ts +80 -0
  16. package/dist/abi/TerminusDIDABI.d.ts.map +1 -0
  17. package/dist/abi/TerminusDIDABI.js +1877 -0
  18. package/dist/abi/TerminusDIDABI.js.map +1 -0
  19. package/dist/cli.d.ts +3 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +199 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/debug.d.ts +46 -0
  24. package/dist/debug.d.ts.map +1 -0
  25. package/dist/debug.js +129 -0
  26. package/dist/debug.js.map +1 -0
  27. package/dist/domain/index.d.ts +59 -0
  28. package/dist/domain/index.d.ts.map +1 -0
  29. package/dist/domain/index.js +431 -0
  30. package/dist/domain/index.js.map +1 -0
  31. package/dist/index.d.ts +193 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +166 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/tag/address.d.ts +11 -0
  36. package/dist/tag/address.d.ts.map +1 -0
  37. package/dist/tag/address.js +44 -0
  38. package/dist/tag/address.js.map +1 -0
  39. package/dist/tag/array.d.ts +14 -0
  40. package/dist/tag/array.d.ts.map +1 -0
  41. package/dist/tag/array.js +72 -0
  42. package/dist/tag/array.js.map +1 -0
  43. package/dist/tag/bool.d.ts +11 -0
  44. package/dist/tag/bool.d.ts.map +1 -0
  45. package/dist/tag/bool.js +43 -0
  46. package/dist/tag/bool.js.map +1 -0
  47. package/dist/tag/bytes.d.ts +11 -0
  48. package/dist/tag/bytes.d.ts.map +1 -0
  49. package/dist/tag/bytes.js +37 -0
  50. package/dist/tag/bytes.js.map +1 -0
  51. package/dist/tag/flarray.d.ts +15 -0
  52. package/dist/tag/flarray.d.ts.map +1 -0
  53. package/dist/tag/flarray.js +81 -0
  54. package/dist/tag/flarray.js.map +1 -0
  55. package/dist/tag/flbytes.d.ts +11 -0
  56. package/dist/tag/flbytes.d.ts.map +1 -0
  57. package/dist/tag/flbytes.js +47 -0
  58. package/dist/tag/flbytes.js.map +1 -0
  59. package/dist/tag/index.d.ts +32 -0
  60. package/dist/tag/index.d.ts.map +1 -0
  61. package/dist/tag/index.js +121 -0
  62. package/dist/tag/index.js.map +1 -0
  63. package/dist/tag/int.d.ts +12 -0
  64. package/dist/tag/int.d.ts.map +1 -0
  65. package/dist/tag/int.js +49 -0
  66. package/dist/tag/int.js.map +1 -0
  67. package/dist/tag/string.d.ts +11 -0
  68. package/dist/tag/string.d.ts.map +1 -0
  69. package/dist/tag/string.js +37 -0
  70. package/dist/tag/string.js.map +1 -0
  71. package/dist/tag/tag.d.ts +67 -0
  72. package/dist/tag/tag.d.ts.map +1 -0
  73. package/dist/tag/tag.js +157 -0
  74. package/dist/tag/tag.js.map +1 -0
  75. package/dist/tag/tuple.d.ts +17 -0
  76. package/dist/tag/tuple.d.ts.map +1 -0
  77. package/dist/tag/tuple.js +162 -0
  78. package/dist/tag/tuple.js.map +1 -0
  79. package/dist/tag/uint.d.ts +12 -0
  80. package/dist/tag/uint.d.ts.map +1 -0
  81. package/dist/tag/uint.js +49 -0
  82. package/dist/tag/uint.js.map +1 -0
  83. package/dist/test/did.d.ts +2 -0
  84. package/dist/test/did.d.ts.map +1 -0
  85. package/dist/test/did.js +177 -0
  86. package/dist/test/did.js.map +1 -0
  87. package/examples/index.ts +15 -0
  88. package/examples/legacy.ts +33 -0
  89. package/package.json +50 -0
  90. package/project.json +6 -0
  91. package/src/abi/ABITypeABI.ts +379 -0
  92. package/src/abi/RegistryABI.ts +459 -0
  93. package/src/abi/RootResolverABI.ts +369 -0
  94. package/src/abi/TerminusDIDABI.ts +1874 -0
  95. package/src/cli.ts +230 -0
  96. package/src/debug.ts +170 -0
  97. package/src/domain/index.ts +659 -0
  98. package/src/index.ts +302 -0
  99. package/src/tag/address.ts +48 -0
  100. package/src/tag/array.ts +80 -0
  101. package/src/tag/bool.ts +43 -0
  102. package/src/tag/bytes.ts +38 -0
  103. package/src/tag/flarray.ts +99 -0
  104. package/src/tag/flbytes.ts +48 -0
  105. package/src/tag/index.ts +170 -0
  106. package/src/tag/int.ts +51 -0
  107. package/src/tag/string.ts +38 -0
  108. package/src/tag/tag.ts +229 -0
  109. package/src/tag/tuple.ts +193 -0
  110. package/src/tag/uint.ts +51 -0
  111. package/src/test/did.ts +346 -0
  112. package/tsconfig.json +9 -0
@@ -0,0 +1,51 @@
1
+ import { Tag, TagBase, ProviderHolder } from './tag';
2
+ import { ethers } from 'ethers';
3
+ import ABITypeABI from '../abi/ABITypeABI';
4
+ export class Uint extends TagBase {
5
+ formatType(typeBytes: any, index: number): number {
6
+ let bit = parseInt(typeBytes, 16);
7
+ bit = bit * 2 * 2 * 2;
8
+ if (bit < 8 || bit % 8 !== 0 || bit > 256) {
9
+ throw new Error(`input is not a valid int type`);
10
+ }
11
+ this.boxData = {
12
+ length: bit
13
+ };
14
+ return index + 4;
15
+ }
16
+
17
+ getAbiTypeString(): string {
18
+ return `uint${this.boxData.length}`;
19
+ }
20
+
21
+ setSize = (size: number) => {
22
+ this.boxData.size = size;
23
+ };
24
+
25
+ getAbiType = (providerHolder: ProviderHolder) =>
26
+ new Promise<void>(async (resolve, reject) => {
27
+ const c = new ethers.Contract(
28
+ providerHolder.contractAbiType,
29
+ ABITypeABI.abi,
30
+ providerHolder.getProvider()
31
+ );
32
+
33
+ const resp = await c.uintT(this.boxData.size);
34
+ // console.log('getAbiType', 'uint', resp);
35
+ resolve(resp);
36
+ });
37
+
38
+ getParamTypes(): string {
39
+ return `uint${this.boxData.length}`;
40
+ }
41
+
42
+ getParameters(data: any) {
43
+ return data;
44
+ }
45
+
46
+ doHydration(d: any) {
47
+ return (d as BigInt).toString();
48
+ }
49
+ }
50
+
51
+ export default Uint;
@@ -0,0 +1,346 @@
1
+ import { ethers } from 'ethers';
2
+ import DID from '../index';
3
+ import Tuple from '../tag/tuple';
4
+
5
+ const RPC = 'https://sepolia.optimism.io';
6
+ const CONTRACT_DID = '0x4c8c98e652d6a01494971a8faF5d3b68338f9ED4';
7
+ const CONTRACT_ROOT_RESOLVER = '0xaA5bE49799b6A71Eda74d22D01F7A808aFf41b3f';
8
+ const CONTRACT_ABI_TYPE = '0xdc9e8faDe38eE9E2Eb43761f1553CD2360ecAEac';
9
+
10
+ const testDIDFetchAll = async () => {
11
+ const did = DID.createConsole(
12
+ RPC,
13
+ CONTRACT_DID,
14
+ CONTRACT_ROOT_RESOLVER,
15
+ CONTRACT_ABI_TYPE
16
+ );
17
+ const domains = await did.fetchAll();
18
+ console.log('domains', domains);
19
+ console.log('domains', await did.formatDatas(domains));
20
+ };
21
+
22
+ const testFetchDomainNoCache = async () => {
23
+ const did = DID.createConsole(
24
+ RPC,
25
+ CONTRACT_DID,
26
+ CONTRACT_ROOT_RESOLVER,
27
+ CONTRACT_ABI_TYPE
28
+ );
29
+ const domain = await did.fetchDomain('jksdgb.snowinning.com');
30
+ console.log('domain', domain);
31
+ };
32
+
33
+ const testFetchDomain = async () => {
34
+ const did = DID.createConsole(
35
+ RPC,
36
+ CONTRACT_DID,
37
+ CONTRACT_ROOT_RESOLVER,
38
+ CONTRACT_ABI_TYPE
39
+ );
40
+ const domains = await did.fetchAll();
41
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
42
+ console.log('domain', domain);
43
+ };
44
+
45
+ const testUpdateDomain = async () => {
46
+ const did = DID.createConsole(
47
+ RPC,
48
+ CONTRACT_DID,
49
+ CONTRACT_ROOT_RESOLVER,
50
+ CONTRACT_ABI_TYPE
51
+ );
52
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
53
+ const domain2 = await did.updateDomain('wanglulu503.t2.xlu112234.asia');
54
+ const domain3 = await did.updateDomain('t2.xlu112234.asia');
55
+ const domain4 = await did.updateDomain('xlu112234.asia');
56
+ const domain5 = await did.updateDomain('asia');
57
+
58
+ console.dir(did.treesCache, { depth: null });
59
+ };
60
+
61
+ const testFetchAllTagType = async () => {
62
+ const did = DID.createConsole(
63
+ RPC,
64
+ CONTRACT_DID,
65
+ CONTRACT_ROOT_RESOLVER,
66
+ CONTRACT_ABI_TYPE
67
+ );
68
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
69
+ if (domain == undefined) {
70
+ throw new Error('not found');
71
+ }
72
+
73
+ const tags = await DID.Domain.fetchAllTagType(domain, did.getContractDID());
74
+ console.log('tags', tags);
75
+ };
76
+
77
+ const testFetchAllTag = async () => {
78
+ const did = DID.createConsole(
79
+ RPC,
80
+ CONTRACT_DID,
81
+ CONTRACT_ROOT_RESOLVER,
82
+ CONTRACT_ABI_TYPE
83
+ );
84
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
85
+ if (domain == undefined) {
86
+ throw new Error('not found');
87
+ }
88
+
89
+ await DID.Domain.fetchAllTagType(domain, did.getContractDID());
90
+
91
+ const tags = await DID.Domain.fetchAllTagValue(
92
+ domain,
93
+ did.getContractDID()
94
+ );
95
+
96
+ console.dir(tags, { depth: null });
97
+ };
98
+
99
+ const testDefineTag = async () => {
100
+ // tag name: simpleTag
101
+ const tagName = 'simpleTag';
102
+
103
+ // tuple
104
+ const testTuple = new DID.Tag.TagValueTypeTuple(undefined, undefined, true);
105
+
106
+ // uint
107
+ const testUint = new DID.Tag.TagValueTypeUint(undefined, undefined, true);
108
+ testUint.setSize(8);
109
+
110
+ // address
111
+ const testAddress = new DID.Tag.TagValueTypeAddress(
112
+ undefined,
113
+ undefined,
114
+ true
115
+ );
116
+
117
+ // array<address>
118
+ const testArrayAddress = new DID.Tag.TagValueTypeArray(
119
+ undefined,
120
+ undefined,
121
+ true
122
+ );
123
+ testArrayAddress.setBuliderType(testAddress);
124
+
125
+ // bool
126
+ const testBool = new DID.Tag.TagValueTypeBool(undefined, undefined, true);
127
+
128
+ // bytes
129
+ const testBytes = new DID.Tag.TagValueTypeBytes(undefined, undefined, true);
130
+
131
+ // int
132
+ const testInt = new DID.Tag.TagValueTypeInt(undefined, undefined, true);
133
+ testInt.setSize(256);
134
+ // flarray<int>
135
+ const testFlarrayInt = new DID.Tag.TagValueTypeFlarray(
136
+ undefined,
137
+ undefined,
138
+ true
139
+ );
140
+ testFlarrayInt.setBuliderType(testInt);
141
+ testFlarrayInt.setSize(3);
142
+
143
+ // flbytes
144
+ const testFlbytes = new DID.Tag.TagValueTypeFlbytes(
145
+ undefined,
146
+ undefined,
147
+ true
148
+ );
149
+ testFlbytes.setSize(5);
150
+
151
+ // string
152
+ const testString = new DID.Tag.TagValueTypeString(
153
+ undefined,
154
+ undefined,
155
+ true
156
+ );
157
+
158
+ testTuple.setField('testUint', testUint);
159
+ testTuple.setField('testArrayAddress', testArrayAddress);
160
+ testTuple.setField('testBool', testBool);
161
+ testTuple.setField('testBytes', testBytes);
162
+ testTuple.setField('testFlarrayInt', testFlarrayInt);
163
+ testTuple.setField('testFlbytes', testFlbytes);
164
+ testTuple.setField('testString', testString);
165
+
166
+ const did = DID.createConsole(
167
+ RPC,
168
+ CONTRACT_DID,
169
+ CONTRACT_ROOT_RESOLVER,
170
+ CONTRACT_ABI_TYPE
171
+ );
172
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
173
+
174
+ await DID.Domain.defineTag(
175
+ domain,
176
+ tagName,
177
+ testTuple,
178
+ did.getContractDIDByPrivateKey(
179
+ 'b3d2790b58f6dea822ca40c5772005bb05055339e912852ab8d0ab161fd8e2ee'
180
+ ),
181
+ did
182
+ );
183
+ };
184
+
185
+ const testDefineTagBox = async () => {
186
+ const tagName = 'simpleTagBox4'; // tag name: simpleTag
187
+ const testTuple = new DID.Tag.TagValueTypeTuple(undefined, undefined, true); // tuple
188
+ const testTuple2 = new DID.Tag.TagValueTypeTuple(
189
+ undefined,
190
+ undefined,
191
+ true
192
+ );
193
+ const testUint = new DID.Tag.TagValueTypeUint(undefined, undefined, true); // uint
194
+ testUint.setSize(8);
195
+ const testAddress = new DID.Tag.TagValueTypeAddress(
196
+ undefined,
197
+ undefined,
198
+ true
199
+ ); // address
200
+ const testArrayAddress = new DID.Tag.TagValueTypeArray(
201
+ undefined,
202
+ undefined,
203
+ true
204
+ ); // array<address>
205
+ testArrayAddress.setBuliderType(testAddress);
206
+ const testBool = new DID.Tag.TagValueTypeBool(undefined, undefined, true); // bool
207
+ const testBytes = new DID.Tag.TagValueTypeBytes(undefined, undefined, true); // bytes
208
+ const testInt = new DID.Tag.TagValueTypeInt(undefined, undefined, true); // int
209
+ testInt.setSize(256);
210
+ const testFlarrayInt = new DID.Tag.TagValueTypeFlarray(
211
+ undefined,
212
+ undefined,
213
+ true
214
+ ); // flarray<int>
215
+ testFlarrayInt.setBuliderType(testInt);
216
+ testFlarrayInt.setSize(3);
217
+ const testFlbytes = new DID.Tag.TagValueTypeFlbytes(
218
+ undefined,
219
+ undefined,
220
+ true
221
+ ); // flbytes
222
+ testFlbytes.setSize(5);
223
+ const testString = new DID.Tag.TagValueTypeString(
224
+ undefined,
225
+ undefined,
226
+ true
227
+ ); // string
228
+
229
+ testTuple.setField('testUint', testUint);
230
+ testTuple.setField('testArrayAddress', testArrayAddress);
231
+ testTuple.setField('testBool', testBool);
232
+ testTuple.setField('testBytes', testBytes);
233
+ testTuple.setField('testFlarrayInt', testFlarrayInt);
234
+ testTuple.setField('testFlbytes', testFlbytes);
235
+ testTuple.setField('testString', testString);
236
+
237
+ testTuple2.setField('testbox', testTuple);
238
+
239
+ const did = DID.createConsole(
240
+ RPC,
241
+ CONTRACT_DID,
242
+ CONTRACT_ROOT_RESOLVER,
243
+ CONTRACT_ABI_TYPE
244
+ );
245
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
246
+
247
+ await DID.Domain.defineTag(
248
+ domain,
249
+ tagName,
250
+ testTuple2,
251
+ did.getContractDIDByPrivateKey(
252
+ 'b3d2790b58f6dea822ca40c5772005bb05055339e912852ab8d0ab161fd8e2ee'
253
+ ),
254
+ did
255
+ );
256
+ };
257
+
258
+ const testAddTag = async () => {
259
+ const did = DID.createConsole(
260
+ RPC,
261
+ CONTRACT_DID,
262
+ CONTRACT_ROOT_RESOLVER,
263
+ CONTRACT_ABI_TYPE
264
+ );
265
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
266
+ if (domain == undefined) {
267
+ throw new Error('not found');
268
+ }
269
+ console.log(domain);
270
+
271
+ const [tag] = domain.tags.filter((tag) => tag.name == 'simpleTagBox4');
272
+
273
+ const tagType = await DID.Domain.fetchTagStructure(
274
+ tag,
275
+ did.getContractDID()
276
+ );
277
+ console.dir(tagType, { depth: null });
278
+
279
+ const ba1 = ethers.hexlify(Uint8Array.from([1, 2, 3]));
280
+ const ba2 = ethers.hexlify(Uint8Array.from([10, 18, 19]));
281
+
282
+ const newData = {
283
+ testbox: {
284
+ testUint: 1,
285
+ testArrayAddress: [
286
+ '0xF18B2Ea28c722CA87f951F5bF5327b66a7dd72A3',
287
+ '0xecBA1d33b889f66ad426535f970d1E033ba5c79C'
288
+ ],
289
+ testBool: true,
290
+ testBytes: '0x0102030405',
291
+ testFlarrayInt: [2, 3, 4],
292
+ testFlbytes: '0x0a0b0c0d0e',
293
+ testString: 'ok'
294
+ }
295
+ };
296
+
297
+ console.log('newData', newData);
298
+
299
+ const call = await DID.Tag.doEncode(tagType, newData);
300
+ console.log('call', call);
301
+
302
+ //set
303
+ const resp = await DID.Domain.setValue(
304
+ tag,
305
+ call,
306
+ did.getContractDIDByPrivateKey(
307
+ 'b3d2790b58f6dea822ca40c5772005bb05055339e912852ab8d0ab161fd8e2ee'
308
+ )
309
+ );
310
+ };
311
+
312
+ const testSetTagger = async () => {
313
+ const did = DID.createConsole(
314
+ RPC,
315
+ CONTRACT_DID,
316
+ CONTRACT_ROOT_RESOLVER,
317
+ CONTRACT_ABI_TYPE
318
+ );
319
+ const domain = await did.fetchDomain('saitttt2.snowinning.com');
320
+ if (domain == undefined) {
321
+ throw new Error('not found');
322
+ }
323
+
324
+ const [tag] = domain.tags.filter((tag) => tag.name == 'simpleTagBox4');
325
+
326
+ DID.Domain.setTagger(
327
+ tag,
328
+ '0xF18B2Ea28c722CA87f951F5bF5327b66a7dd72A3',
329
+ did.getContractDIDByPrivateKey(
330
+ 'b3d2790b58f6dea822ca40c5772005bb05055339e912852ab8d0ab161fd8e2ee'
331
+ )
332
+ );
333
+ };
334
+
335
+ const testUpdateTag = async () => {};
336
+
337
+ const testRemoveTag = async () => {};
338
+
339
+ const testSaveAndLoad = async () => {};
340
+
341
+ // testAddTag()
342
+ // testSetTagger()
343
+
344
+ // testDefineTagBox()
345
+ // testFetchAllTagType()
346
+ // testFetchAllTag()
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src"
6
+ },
7
+ "include": ["src/**/*"],
8
+ "exclude": ["node_modules", "dist"]
9
+ }