@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.
Files changed (181) hide show
  1. package/CLI-TREE.md +107 -0
  2. package/CLI.md +122 -1340
  3. package/README.md +30 -12
  4. package/SDK-TREE.md +151 -0
  5. package/TAG.md +95 -41
  6. package/config.json +6 -4
  7. package/dist/abi/TerminusDIDQueryABI.d.ts +397 -0
  8. package/dist/abi/TerminusDIDQueryABI.d.ts.map +1 -0
  9. package/dist/abi/TerminusDIDQueryABI.js +519 -0
  10. package/dist/abi/TerminusDIDQueryABI.js.map +1 -0
  11. package/dist/business/index.d.ts.map +1 -1
  12. package/dist/business/index.js +9 -23
  13. package/dist/business/index.js.map +1 -1
  14. package/dist/business/tag-context.d.ts +1 -0
  15. package/dist/business/tag-context.d.ts.map +1 -1
  16. package/dist/business/tag-context.js +13 -7
  17. package/dist/business/tag-context.js.map +1 -1
  18. package/dist/cli.js +177 -76
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/index.d.ts +16 -4
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/index.js +28 -14
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/domain/core.d.ts +65 -0
  25. package/dist/domain/core.d.ts.map +1 -0
  26. package/dist/domain/core.js +317 -0
  27. package/dist/domain/core.js.map +1 -0
  28. package/dist/domain/index.d.ts +104 -57
  29. package/dist/domain/index.d.ts.map +1 -1
  30. package/dist/domain/index.js +188 -428
  31. package/dist/domain/index.js.map +1 -1
  32. package/dist/domain/types.d.ts +56 -0
  33. package/dist/domain/types.d.ts.map +1 -0
  34. package/dist/domain/types.js +3 -0
  35. package/dist/domain/types.js.map +1 -0
  36. package/dist/index.d.ts +80 -23
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +152 -143
  39. package/dist/index.js.map +1 -1
  40. package/dist/utils/crypto-utils.d.ts +110 -0
  41. package/dist/utils/crypto-utils.d.ts.map +1 -1
  42. package/dist/utils/crypto-utils.js +127 -8
  43. package/dist/utils/crypto-utils.js.map +1 -1
  44. package/dist/utils/error-parser.d.ts.map +1 -1
  45. package/dist/utils/error-parser.js +2 -1
  46. package/dist/utils/error-parser.js.map +1 -1
  47. package/dist/utils/event-parser.d.ts +161 -0
  48. package/dist/utils/event-parser.d.ts.map +1 -0
  49. package/dist/utils/event-parser.js +140 -0
  50. package/dist/utils/event-parser.js.map +1 -0
  51. package/dist/utils/tag-type-builder.d.ts +43 -0
  52. package/dist/utils/tag-type-builder.d.ts.map +1 -1
  53. package/dist/utils/tag-type-builder.js +122 -0
  54. package/dist/utils/tag-type-builder.js.map +1 -1
  55. package/dist/utils/tag-type-parser.d.ts +70 -0
  56. package/dist/utils/tag-type-parser.d.ts.map +1 -0
  57. package/dist/utils/tag-type-parser.js +190 -0
  58. package/dist/utils/tag-type-parser.js.map +1 -0
  59. package/examples/create-with-rpc-demo.ts +142 -0
  60. package/examples/fetch-all-flat-demo.ts +159 -0
  61. package/examples/fetch-by-indices-demo.ts +235 -0
  62. package/examples/fetch-domain-demo.ts +137 -0
  63. package/examples/fetch-domains-demo.ts +221 -0
  64. package/examples/frontend-demo/index.html +2 -2
  65. package/examples/frontend-demo/package-lock.json +4 -1
  66. package/examples/index.ts +3 -5
  67. package/jest.config.js +25 -0
  68. package/package.json +6 -2
  69. package/src/abi/TerminusDIDQueryABI.ts +516 -0
  70. package/src/business/index.ts +9 -33
  71. package/src/business/tag-context.ts +35 -7
  72. package/src/cli.ts +253 -90
  73. package/src/config/index.ts +34 -19
  74. package/src/domain/core.ts +382 -0
  75. package/src/domain/index.ts +271 -641
  76. package/src/domain/types.ts +59 -0
  77. package/src/index.ts +221 -207
  78. package/src/utils/crypto-utils.ts +205 -2
  79. package/src/utils/error-parser.ts +2 -1
  80. package/src/utils/event-parser.ts +353 -0
  81. package/src/utils/tag-type-builder.ts +138 -0
  82. package/src/utils/tag-type-parser.ts +246 -0
  83. package/tests/unit/crypto-utils.test.ts +338 -0
  84. package/tests/unit/ed25519-jwk.test.ts +201 -0
  85. package/tests/unit/event-parser.test.ts +690 -0
  86. package/tests/unit/generate-mnemonic.test.ts +268 -0
  87. package/tests/unit/olares-id-format.test.ts +321 -0
  88. package/tests/unit/tag-type-parser.test.ts +802 -0
  89. package/tests/unit/tag-types.test.ts +821 -0
  90. package/tsconfig.json +3 -2
  91. package/dist/abi/ABITypeABI.d.ts +0 -88
  92. package/dist/abi/ABITypeABI.d.ts.map +0 -1
  93. package/dist/abi/ABITypeABI.js +0 -382
  94. package/dist/abi/ABITypeABI.js.map +0 -1
  95. package/dist/abi/RegistryABI.d.ts +0 -77
  96. package/dist/abi/RegistryABI.d.ts.map +0 -1
  97. package/dist/abi/RegistryABI.js +0 -462
  98. package/dist/abi/RegistryABI.js.map +0 -1
  99. package/dist/tag/address.d.ts +0 -11
  100. package/dist/tag/address.d.ts.map +0 -1
  101. package/dist/tag/address.js +0 -44
  102. package/dist/tag/address.js.map +0 -1
  103. package/dist/tag/array.d.ts +0 -14
  104. package/dist/tag/array.d.ts.map +0 -1
  105. package/dist/tag/array.js +0 -72
  106. package/dist/tag/array.js.map +0 -1
  107. package/dist/tag/bool.d.ts +0 -11
  108. package/dist/tag/bool.d.ts.map +0 -1
  109. package/dist/tag/bool.js +0 -43
  110. package/dist/tag/bool.js.map +0 -1
  111. package/dist/tag/bytes.d.ts +0 -11
  112. package/dist/tag/bytes.d.ts.map +0 -1
  113. package/dist/tag/bytes.js +0 -37
  114. package/dist/tag/bytes.js.map +0 -1
  115. package/dist/tag/flarray.d.ts +0 -15
  116. package/dist/tag/flarray.d.ts.map +0 -1
  117. package/dist/tag/flarray.js +0 -81
  118. package/dist/tag/flarray.js.map +0 -1
  119. package/dist/tag/flbytes.d.ts +0 -11
  120. package/dist/tag/flbytes.d.ts.map +0 -1
  121. package/dist/tag/flbytes.js +0 -47
  122. package/dist/tag/flbytes.js.map +0 -1
  123. package/dist/tag/index.d.ts +0 -32
  124. package/dist/tag/index.d.ts.map +0 -1
  125. package/dist/tag/index.js +0 -121
  126. package/dist/tag/index.js.map +0 -1
  127. package/dist/tag/int.d.ts +0 -12
  128. package/dist/tag/int.d.ts.map +0 -1
  129. package/dist/tag/int.js +0 -49
  130. package/dist/tag/int.js.map +0 -1
  131. package/dist/tag/string.d.ts +0 -11
  132. package/dist/tag/string.d.ts.map +0 -1
  133. package/dist/tag/string.js +0 -37
  134. package/dist/tag/string.js.map +0 -1
  135. package/dist/tag/tag.d.ts +0 -67
  136. package/dist/tag/tag.d.ts.map +0 -1
  137. package/dist/tag/tag.js +0 -157
  138. package/dist/tag/tag.js.map +0 -1
  139. package/dist/tag/tuple.d.ts +0 -17
  140. package/dist/tag/tuple.d.ts.map +0 -1
  141. package/dist/tag/tuple.js +0 -162
  142. package/dist/tag/tuple.js.map +0 -1
  143. package/dist/tag/uint.d.ts +0 -12
  144. package/dist/tag/uint.d.ts.map +0 -1
  145. package/dist/tag/uint.js +0 -49
  146. package/dist/tag/uint.js.map +0 -1
  147. package/dist/test/did.d.ts +0 -2
  148. package/dist/test/did.d.ts.map +0 -1
  149. package/dist/test/did.js +0 -177
  150. package/dist/test/did.js.map +0 -1
  151. package/dist/utils/tag-abi-codec.d.ts +0 -69
  152. package/dist/utils/tag-abi-codec.d.ts.map +0 -1
  153. package/dist/utils/tag-abi-codec.js +0 -144
  154. package/dist/utils/tag-abi-codec.js.map +0 -1
  155. package/examples/crypto-utilities.ts +0 -140
  156. package/examples/ed25519-jwk.ts +0 -73
  157. package/examples/generate-mnemonic.ts +0 -149
  158. package/examples/legacy.ts +0 -33
  159. package/examples/olares-id-format.ts +0 -197
  160. package/examples/tag-builder.ts +0 -235
  161. package/examples/tag-nested-tuple.ts +0 -190
  162. package/examples/tag-simple.ts +0 -149
  163. package/examples/tag-tagger.ts +0 -217
  164. package/examples/test-nested-tuple-conversion.ts +0 -143
  165. package/examples/test-type-bytes-parser.ts +0 -70
  166. package/src/abi/ABITypeABI.ts +0 -379
  167. package/src/abi/RegistryABI.ts +0 -459
  168. package/src/tag/address.ts +0 -48
  169. package/src/tag/array.ts +0 -80
  170. package/src/tag/bool.ts +0 -43
  171. package/src/tag/bytes.ts +0 -38
  172. package/src/tag/flarray.ts +0 -99
  173. package/src/tag/flbytes.ts +0 -48
  174. package/src/tag/index.ts +0 -170
  175. package/src/tag/int.ts +0 -51
  176. package/src/tag/string.ts +0 -38
  177. package/src/tag/tag.ts +0 -229
  178. package/src/tag/tuple.ts +0 -193
  179. package/src/tag/uint.ts +0 -51
  180. package/src/test/did.ts +0 -346
  181. package/src/utils/tag-abi-codec.ts +0 -158
package/src/tag/tuple.ts DELETED
@@ -1,193 +0,0 @@
1
- import { Tag, TagBase, Box, read2Byte, ProviderHolder } from './tag';
2
- import { ethers } from 'ethers';
3
- import ABITypeABI from '../abi/ABITypeABI';
4
- export class Tuple extends Box {
5
- constructor(
6
- typeBytes: string | undefined,
7
- index: number | undefined,
8
- builder: boolean
9
- ) {
10
- super(typeBytes, index, builder);
11
- }
12
-
13
- formatType(typeBytes: any, index: number): number {
14
- let lt = read2Byte(typeBytes, index + 2);
15
- let length = parseInt(lt, 16);
16
-
17
- let parsedLen = index + 6;
18
- let tagArr: Tag[] = [];
19
- for (let k = 0; k < length; k++) {
20
- let { cursor, tag } = this.formatChild(typeBytes, parsedLen);
21
- parsedLen = cursor;
22
- if (tag == undefined) {
23
- throw new Error('formatType error in tuple');
24
- }
25
- tagArr.push(tag);
26
- }
27
-
28
- this.boxData = {
29
- tags: tagArr as TagBase[]
30
- };
31
- // this.boxData.tags = tagArr as TagBase[]
32
-
33
- // console.log('this.boxData', this.boxData);
34
- return parsedLen;
35
- }
36
-
37
- getAbiTypeString(): string {
38
- let str = '';
39
- for (const tag of this.boxData.tags) {
40
- // // console.log (tag)
41
- if (tag.fieldName == undefined) {
42
- str = str + ',' + tag.getAbiTypeString();
43
- } else {
44
- str = str + ',' + `${tag.getAbiTypeString()} ${tag.fieldName}`;
45
- }
46
- }
47
-
48
- return `tuple(${str.substring(1)})`;
49
- }
50
-
51
- setFieldNames(names: string[] | string[][], index: number): number {
52
- // console.log('setFieldNames');
53
- // console.log(names);
54
- // console.log(this.boxData.tags);
55
-
56
- let fieldNames = names[index];
57
- index++;
58
-
59
- let indexInBox = 0;
60
- for (const tag of this.boxData.tags) {
61
- tag.fieldName = fieldNames[indexInBox];
62
- indexInBox++;
63
-
64
- // console.log('set FieldNames');
65
- // console.log(tag);
66
- // console.log('indexInBox', indexInBox);
67
-
68
- if (tag instanceof Box) {
69
- // // console.log('in Box')
70
- // // console.log(names [index])
71
- // // console.log(tag)
72
- // // console.log(names)
73
-
74
- // fix build
75
- // if (indexInBox >= names.length) {
76
- // indexInBox = index
77
- // }
78
-
79
- const nextIndex = tag.setFieldNames(names, index);
80
- index = nextIndex;
81
- }
82
- // if (tag instanceof Box) {
83
- // // console.log(tag)
84
- // // console.log(this)
85
- // throw new Error('tuple not support 2 level and more')
86
- // }
87
- }
88
- return index;
89
- }
90
-
91
- doHydration(d: any) {
92
- // console.log('doHydration');
93
- // console.log(d);
94
- // console.log(this);
95
-
96
- let i = 0;
97
- let data: { [key: string]: any } = {};
98
- for (const tag of this.boxData.tags) {
99
- // console.log(tag);
100
- // console.log(d);
101
- // console.log(i);
102
-
103
- data[`${tag.fieldName as string}`] = tag.doHydration(d[i]);
104
- i++;
105
- }
106
- return data;
107
- }
108
-
109
- setField(name: string, type: TagBase) {
110
- type.fieldName = name;
111
-
112
- if (this.boxData.tags == undefined) {
113
- this.boxData.tags = [];
114
- }
115
- this.boxData.tags.push(type);
116
- }
117
-
118
- getAbiType = (providerHolder: ProviderHolder) =>
119
- new Promise<void>(async (resolve, reject) => {
120
- const c = new ethers.Contract(
121
- providerHolder.contractAbiType,
122
- ABITypeABI.abi,
123
- providerHolder.getProvider()
124
- );
125
-
126
- let arr: string = '0x';
127
- for (const tag of this.boxData.tags) {
128
- let r = await tag.getAbiType(providerHolder);
129
- arr += r.substring(2);
130
- }
131
-
132
- // console.log('arr', arr);
133
- const resp = await c.tupleT(arr);
134
- // console.log('getAbiType', 'Tuple', resp);
135
- resolve(resp);
136
- });
137
-
138
- getFieldName(): string[][] {
139
- let arr: string[][] = [];
140
- let names: string[] = [];
141
- for (const tag of this.boxData.tags) {
142
- let tagFieldNames = tag.getFieldNames();
143
- if (tagFieldNames.length > 0) {
144
- arr.push(...tagFieldNames);
145
- // arr = Object.assign(arr, tagFieldNames)
146
- }
147
- names.push(tag.fieldName as string);
148
- }
149
-
150
- let arr2: string[][] = [];
151
- arr2.push(names);
152
- // arr2 = Object.assign(arr2, arr)
153
- arr2.push(...arr);
154
-
155
- // console.log('arr', arr2);
156
-
157
- return arr2;
158
- }
159
-
160
- getParamTypes(): string {
161
- let paramTypes = 'tuple(';
162
-
163
- let i = 0;
164
- for (const t of this.boxData.tags) {
165
- paramTypes += t.getParamTypes();
166
-
167
- i++;
168
- if (i >= this.boxData.tags.length) {
169
- } else {
170
- paramTypes += ',';
171
- }
172
- }
173
- paramTypes += ')';
174
-
175
- return paramTypes;
176
- }
177
-
178
- getParameters(data: any) {
179
- const values = [];
180
- let i = 0;
181
- // console.log('data', data);
182
- // console.log('this.boxData.tags', this.boxData.tags);
183
- for (const t of this.boxData.tags) {
184
- // console.log(t, t.fieldName, data[t.fieldName]);
185
-
186
- values.push(t.getParameters(data[t.fieldName]));
187
- i++;
188
- }
189
- return values;
190
- }
191
- }
192
-
193
- export default Tuple;
package/src/tag/uint.ts DELETED
@@ -1,51 +0,0 @@
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;
package/src/test/did.ts DELETED
@@ -1,346 +0,0 @@
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()