@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
package/dist/index.js ADDED
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.debug = exports.DIDConsole = void 0;
7
+ const index_1 = require("./domain/index");
8
+ const index_2 = __importDefault(require("./tag/index"));
9
+ const ethers_1 = require("ethers");
10
+ const TerminusDIDABI_1 = __importDefault(require("./abi/TerminusDIDABI"));
11
+ const RootResolverABI_1 = __importDefault(require("./abi/RootResolverABI"));
12
+ const debug_1 = require("./debug");
13
+ class DIDConsole {
14
+ constructor(rpcNode, contractDid, contractRootResolver, contractAbiType) {
15
+ this.allDomainCache = [];
16
+ this.treesCache = [];
17
+ this.getProvider = () => new ethers_1.ethers.JsonRpcProvider(this.rpcNode);
18
+ this.getContractDID = () => new ethers_1.ethers.Contract(this.contractDid, TerminusDIDABI_1.default.abi, this.getProvider());
19
+ this.getContractDIDByPrivateKey = (privateKey) => {
20
+ const wallet = new ethers_1.ethers.Wallet(privateKey, this.getProvider());
21
+ const contract = new ethers_1.ethers.Contract(this.contractDid, TerminusDIDABI_1.default.abi, wallet);
22
+ return contract;
23
+ };
24
+ this.getSignerContractDIDByProvider = async (provider) => new ethers_1.ethers.Contract(this.contractDid, TerminusDIDABI_1.default.abi, await provider.getSigner());
25
+ this.getContractRootResolver = () => new ethers_1.ethers.Contract(this.contractRootResolver, RootResolverABI_1.default.abi, this.getProvider());
26
+ this.getSignerContractRootResolverByProvider = async (provider) => new ethers_1.ethers.Contract(this.contractRootResolver, RootResolverABI_1.default.abi, await provider.getSigner());
27
+ this.fetchAll = () => new Promise(async (resolve, reject) => {
28
+ debug_1.debug.group('fetchAll');
29
+ const contract = await this.getContractDID();
30
+ const size = await contract.totalSupply();
31
+ debug_1.debug.info('fetchAll--->domain size', size);
32
+ let arr = [];
33
+ for (let index = 0; index < size; index++) {
34
+ const domain = await index_1.PackageDomain.syncByIndex(index, contract);
35
+ debug_1.debug.debug('fetchAll--->synced domain', domain);
36
+ debug_1.debug.info(`fetchAll--->${((index / parseInt(size)) * 100).toFixed(0)}%`);
37
+ arr.push(domain);
38
+ }
39
+ this.allDomainCache = arr;
40
+ this.treesCache = index_1.PackageDomain.buildTree(this.allDomainCache);
41
+ debug_1.debug.groupEnd();
42
+ resolve(this.treesCache);
43
+ });
44
+ this.fetchDomain = (name) => new Promise(async (resolve, reject) => {
45
+ debug_1.debug.group('fetchDomain');
46
+ const hasCache = this.allDomainCache.length > 0;
47
+ debug_1.debug.info('fetchDomain--->hasCache', hasCache);
48
+ if (hasCache) {
49
+ const domain = index_1.PackageDomain.findASubtree(name, this.allDomainCache);
50
+ debug_1.debug.groupEnd();
51
+ resolve(domain);
52
+ }
53
+ else {
54
+ const domain = await index_1.PackageDomain.syncByName(name, await this.getContractDID());
55
+ debug_1.debug.groupEnd();
56
+ resolve(domain);
57
+ }
58
+ });
59
+ this.updateDomain = (name) => new Promise(async (resolve, reject) => {
60
+ const domain = await index_1.PackageDomain.syncByName(name, await this.getContractDID());
61
+ if (domain == undefined) {
62
+ reject('not found domain');
63
+ return;
64
+ }
65
+ const [oldDomain] = this.allDomainCache.filter((d) => d.name == domain.name);
66
+ if (oldDomain != undefined) {
67
+ for (const tagNew of domain.tags) {
68
+ for (const tagOld of oldDomain.tags) {
69
+ if (tagNew.name == tagOld.name) {
70
+ if (tagNew.valueFormated == undefined &&
71
+ tagOld.valueFormated != undefined) {
72
+ tagNew.valueFormated = tagOld.valueFormated;
73
+ }
74
+ if (tagNew.valueSource == undefined &&
75
+ tagOld.valueSource != undefined) {
76
+ tagNew.valueSource = tagOld.valueSource;
77
+ }
78
+ if (tagNew.definition == undefined &&
79
+ tagOld.definition != undefined) {
80
+ tagNew.definition = tagOld.definition;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ this.allDomainCache = this.allDomainCache.filter((d) => d.name != domain.name);
87
+ this.allDomainCache.push(domain);
88
+ this.treesCache = index_1.PackageDomain.buildTree(this.allDomainCache);
89
+ resolve(domain);
90
+ });
91
+ this.updateDomainById = (id) => new Promise(async (resolve, reject) => {
92
+ const domain = await index_1.PackageDomain.syncById(id, await this.getContractDID());
93
+ if (domain == undefined) {
94
+ reject('not found domain');
95
+ return;
96
+ }
97
+ const [oldDomain] = this.allDomainCache.filter((d) => d.name == domain.name);
98
+ for (const tagNew of domain.tags) {
99
+ for (const tagOld of oldDomain.tags) {
100
+ if (tagNew.name == tagOld.name) {
101
+ if (tagNew.valueFormated == undefined &&
102
+ tagOld.valueFormated != undefined) {
103
+ tagNew.valueFormated = tagOld.valueFormated;
104
+ }
105
+ if (tagNew.valueSource == undefined &&
106
+ tagOld.valueSource != undefined) {
107
+ tagNew.valueSource = tagOld.valueSource;
108
+ }
109
+ if (tagNew.definition == undefined &&
110
+ tagOld.definition != undefined) {
111
+ tagNew.definition = tagOld.definition;
112
+ }
113
+ }
114
+ }
115
+ }
116
+ this.allDomainCache = this.allDomainCache.filter((d) => d.name != domain.name);
117
+ this.allDomainCache.push(domain);
118
+ this.treesCache = index_1.PackageDomain.buildTree(this.allDomainCache);
119
+ resolve(domain);
120
+ });
121
+ this.formatData = (doamin) => new Promise((resolve, reject) => {
122
+ resolve(doamin);
123
+ });
124
+ this.formatDatas = (doamins) => new Promise((resolve, reject) => {
125
+ resolve(doamins);
126
+ });
127
+ this.loadData = (data) => new Promise((resolve, reject) => {
128
+ resolve(data);
129
+ });
130
+ this.loadDatas = (datas) => new Promise((resolve, reject) => {
131
+ this.treesCache = datas;
132
+ let arr = [];
133
+ arr.push(...this.treesCache);
134
+ for (const StoreDomain of this.treesCache) {
135
+ arr.push(...index_1.PackageDomain.getAllSubdoamin(StoreDomain));
136
+ }
137
+ this.allDomainCache = arr;
138
+ resolve(datas);
139
+ });
140
+ this.rpcNode = rpcNode;
141
+ this.contractDid = contractDid;
142
+ this.contractRootResolver = contractRootResolver;
143
+ this.contractAbiType = contractAbiType;
144
+ }
145
+ }
146
+ exports.DIDConsole = DIDConsole;
147
+ var OlaresID;
148
+ (function (OlaresID) {
149
+ OlaresID.createConsole = (rpcNode, contractDid, contractRootResolver, contractAbiType) => {
150
+ return new DIDConsole(rpcNode, contractDid, contractRootResolver, contractAbiType);
151
+ };
152
+ OlaresID.createMainnet = () => {
153
+ return OlaresID.createConsole('https://optimism-rpc.publicnode.com', '0x5DA4Fa8E567d86e52Ef8Da860de1be8f54cae97D', '0xE2EABA0979277A90511F8873ae1e8cA26B54E740', '0x9ae3F16bD99294Af1784beB1a0A5C84bf2636365');
154
+ };
155
+ OlaresID.createTestnet = () => {
156
+ return OlaresID.createConsole('https://sepolia.optimism.io', '0xe2D7c3a9013960E04d4E9F5F9B63fff37eEd97A8', '0xeF727cb066Fee98F88Db84555830063b4A24ddfc', '0x7386fCBae6Ad4CCE1499d9153D99bc950B589718');
157
+ };
158
+ OlaresID.Domain = index_1.PackageDomain;
159
+ OlaresID.Tag = index_2.default;
160
+ OlaresID.ABI_DID = TerminusDIDABI_1.default;
161
+ OlaresID.ABI_ROOT_RESOLVER = RootResolverABI_1.default;
162
+ })(OlaresID || (OlaresID = {}));
163
+ var debug_2 = require("./debug");
164
+ Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return debug_2.debug; } });
165
+ exports.default = OlaresID;
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0CAA+C;AAC/C,wDAAiC;AACjC,mCAAgC;AAChC,0EAA2C;AAC3C,4EAAoD;AACpD,mCAAgC;AAMhC,MAAa,UAAU;IAStB,YACC,OAAe,EACf,WAAmB,EACnB,oBAA4B,EAC5B,eAAuB;QAPxB,mBAAc,GAAa,EAAE,CAAC;QAC9B,eAAU,GAAa,EAAE,CAAC;QAc1B,gBAAW,GAAG,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,mBAAc,GAAG,GAAG,EAAE,CACrB,IAAI,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAO,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAExE,+BAA0B,GAAG,CAAC,UAAkB,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,QAAQ,CACnC,IAAI,CAAC,WAAW,EAChB,wBAAO,CAAC,GAAG,EACX,MAAM,CACN,CAAC;YACF,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QAEF,mCAA8B,GAAG,KAAK,EACrC,QAAmC,EAClC,EAAE,CACH,IAAI,eAAM,CAAC,QAAQ,CAClB,IAAI,CAAC,WAAW,EAChB,wBAAO,CAAC,GAAG,EACX,MAAM,QAAQ,CAAC,SAAS,EAAE,CAC1B,CAAC;QAEH,4BAAuB,GAAG,GAAG,EAAE,CAC9B,IAAI,eAAM,CAAC,QAAQ,CAClB,IAAI,CAAC,oBAAoB,EACzB,yBAAe,CAAC,GAAG,EACnB,IAAI,CAAC,WAAW,EAAE,CAClB,CAAC;QAEH,4CAAuC,GAAG,KAAK,EAC9C,QAAmC,EAClC,EAAE,CACH,IAAI,eAAM,CAAC,QAAQ,CAClB,IAAI,CAAC,oBAAoB,EACzB,yBAAe,CAAC,GAAG,EACnB,MAAM,QAAQ,CAAC,SAAS,EAAE,CAC1B,CAAC;QAEH,aAAQ,GAAG,GAAG,EAAE,CACf,IAAI,OAAO,CAAW,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,aAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1C,aAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;YAE5C,IAAI,GAAG,GAAa,EAAE,CAAC;YACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,qBAAa,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChE,aAAK,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;gBACjD,aAAK,CAAC,IAAI,CACT,eAAe,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CACtD,CAAC,CACD,GAAG,CACJ,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,qBAAa,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/D,aAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEJ,gBAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,IAAI,OAAO,CAAqB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,aAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAChD,aAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;YAEhD,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,qBAAa,CAAC,YAAY,CACxC,IAAI,EACJ,IAAI,CAAC,cAAc,CACnB,CAAC;gBAEF,aAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,MAAM,qBAAa,CAAC,UAAU,CAC5C,IAAI,EACJ,MAAM,IAAI,CAAC,cAAc,EAAE,CAC3B,CAAC;gBAEF,aAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC;QAEJ,iBAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,IAAI,OAAO,CAAS,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,MAAM,qBAAa,CAAC,UAAU,CAC5C,IAAI,EACJ,MAAM,IAAI,CAAC,cAAc,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAC5B,CAAC;YAEF,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;4BAChC,IACC,MAAM,CAAC,aAAa,IAAI,SAAS;gCACjC,MAAM,CAAC,aAAa,IAAI,SAAS,EAChC,CAAC;gCACF,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;4BAC7C,CAAC;4BACD,IACC,MAAM,CAAC,WAAW,IAAI,SAAS;gCAC/B,MAAM,CAAC,WAAW,IAAI,SAAS,EAC9B,CAAC;gCACF,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;4BACzC,CAAC;4BACD,IACC,MAAM,CAAC,UAAU,IAAI,SAAS;gCAC9B,MAAM,CAAC,UAAU,IAAI,SAAS,EAC7B,CAAC;gCACF,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;4BACvC,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAC5B,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,UAAU,GAAG,qBAAa,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/D,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEJ,qBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CACjC,IAAI,OAAO,CAAS,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,MAAM,qBAAa,CAAC,QAAQ,CAC1C,EAAE,EACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAC5B,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChC,IACC,MAAM,CAAC,aAAa,IAAI,SAAS;4BACjC,MAAM,CAAC,aAAa,IAAI,SAAS,EAChC,CAAC;4BACF,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;wBAC7C,CAAC;wBACD,IACC,MAAM,CAAC,WAAW,IAAI,SAAS;4BAC/B,MAAM,CAAC,WAAW,IAAI,SAAS,EAC9B,CAAC;4BACF,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wBACzC,CAAC;wBACD,IACC,MAAM,CAAC,UAAU,IAAI,SAAS;4BAC9B,MAAM,CAAC,UAAU,IAAI,SAAS,EAC7B,CAAC;4BACF,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;wBACvC,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAC5B,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,UAAU,GAAG,qBAAa,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/D,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEJ,eAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAC/B,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEJ,gBAAW,GAAG,CAAC,OAAiB,EAAE,EAAE,CACnC,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,OAAO,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEJ,aAAQ,GAAG,CAAC,IAAiB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEJ,cAAS,GAAG,CAAC,KAAoB,EAAE,EAAE,CACpC,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,GAAG,CAAC,IAAI,CAAC,GAAG,qBAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAE1B,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAnOH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;CAgOD;AAnPD,gCAmPC;AAED,IAAU,QAAQ,CA0CjB;AA1CD,WAAU,QAAQ;IACJ,sBAAa,GAAG,CAC5B,OAAe,EACf,WAAmB,EACnB,oBAA4B,EAC5B,eAAuB,EACV,EAAE;QACf,OAAO,IAAI,UAAU,CACpB,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,eAAe,CACf,CAAC;IACH,CAAC,CAAC;IAEW,sBAAa,GAAG,GAAe,EAAE;QAC7C,OAAO,SAAA,aAAa,CACnB,qCAAqC,EACrC,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,CAC5C,CAAC;IACH,CAAC,CAAC;IAEW,sBAAa,GAAG,GAAe,EAAE;QAC7C,OAAO,SAAA,aAAa,CACnB,6BAA6B,EAC7B,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,CAC5C,CAAC;IACH,CAAC,CAAC;IAEY,eAAM,GAAG,qBAAa,CAAC;IAEvB,YAAG,GAAG,eAAM,CAAC;IAId,gBAAO,GAAG,wBAAO,CAAC;IAElB,0BAAiB,GAAG,yBAAe,CAAC;AAClD,CAAC,EA1CS,QAAQ,KAAR,QAAQ,QA0CjB;AAED,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TagBase, ProviderHolder } from './tag';
2
+ export declare class Address extends TagBase {
3
+ name: string;
4
+ formatType(typeBytes: any, index: number): number;
5
+ getAbiTypeString(): string;
6
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
7
+ getParamTypes(): string;
8
+ getParameters(data: any): any;
9
+ }
10
+ export default Address;
11
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/tag/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AASrD,qBAAa,OAAQ,SAAQ,OAAO;IACnC,IAAI,EAAE,MAAM,CAAa;IAEzB,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjD,gBAAgB,IAAI,MAAM;IAI1B,UAAU,GAAI,gBAAgB,cAAc,mBAWxC;IAEJ,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAOvB;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Address = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ function isEthereumAddress(address) {
11
+ const ethereumAddressRegex = /^(0x)?[0-9a-fA-F]{40}$/;
12
+ return ethereumAddressRegex.test(address);
13
+ }
14
+ class Address extends tag_1.TagBase {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.name = 'address';
18
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
19
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abi, providerHolder.getProvider());
20
+ const resp = await c.addressT();
21
+ // console.log('getAbiType', 'Address', resp);
22
+ resolve(resp);
23
+ });
24
+ }
25
+ formatType(typeBytes, index) {
26
+ this.name = 'address';
27
+ return index + 2;
28
+ }
29
+ getAbiTypeString() {
30
+ return 'address';
31
+ }
32
+ getParamTypes() {
33
+ return 'address';
34
+ }
35
+ getParameters(data) {
36
+ if (!isEthereumAddress(data)) {
37
+ throw new Error(`${data} is not ethereum address`);
38
+ }
39
+ return data;
40
+ }
41
+ }
42
+ exports.Address = Address;
43
+ exports.default = Address;
44
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/tag/address.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAqD;AACrD,mCAAgC;AAChC,mEAA2C;AAE3C,SAAS,iBAAiB,CAAC,OAAe;IACzC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;IACtD,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAa,OAAQ,SAAQ,aAAO;IAApC;;QACC,SAAI,GAAW,SAAS,CAAC;QAWzB,eAAU,GAAG,CAAC,cAA8B,EAAE,EAAE,CAC/C,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAC5B,cAAc,CAAC,eAAe,EAC9B,oBAAU,CAAC,GAAG,EACd,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,8CAA8C;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IAaL,CAAC;IAjCA,UAAU,CAAC,SAAc,EAAE,KAAa;QACvC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAeD,aAAa;QACZ,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AApCD,0BAoCC;AAED,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { TagBase, Box, ProviderHolder } from './tag';
2
+ export declare class Array extends Box {
3
+ setBuliderType(type: TagBase): void;
4
+ formatType(typeBytes: any, index: number): number;
5
+ getAbiTypeString(): string;
6
+ setFieldNames(names: string[] | string[][], index: number): number;
7
+ doHydration(d: any): any[];
8
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
9
+ getFieldName(): string[][];
10
+ getParamTypes(): string;
11
+ getParameters(data: any): any[];
12
+ }
13
+ export default Array;
14
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/tag/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG1D,qBAAa,KAAM,SAAQ,GAAG;IAC7B,cAAc,CAAC,IAAI,EAAE,OAAO;IAI5B,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAYjD,gBAAgB,IAAI,MAAM;IAI1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlE,WAAW,CAAC,CAAC,EAAE,GAAG;IASlB,UAAU,GAAI,gBAAgB,cAAc,mBAexC;IAEJ,YAAY,IAAI,MAAM,EAAE,EAAE;IAQ1B,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAQvB;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Array = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ class Array extends tag_1.Box {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
14
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abi, providerHolder.getProvider());
15
+ const arrAbi = await this.boxData.arrayTag.getAbiType(providerHolder);
16
+ const resp = await c.arrayT(arrAbi);
17
+ // console.log('getAbiType', 'array', resp);
18
+ resolve(resp);
19
+ });
20
+ }
21
+ setBuliderType(type) {
22
+ this.boxData.arrayTag = type;
23
+ }
24
+ formatType(typeBytes, index) {
25
+ let { cursor, tag } = this.formatChild(typeBytes, index + 2);
26
+ if (tag == undefined) {
27
+ throw new Error('formatType error in array');
28
+ }
29
+ this.boxData = {
30
+ arrayTag: tag
31
+ };
32
+ return cursor;
33
+ }
34
+ getAbiTypeString() {
35
+ return `${this.boxData.arrayTag.getAbiTypeString()}[]`;
36
+ }
37
+ setFieldNames(names, index) {
38
+ if (this.boxData.arrayTag instanceof tag_1.Box) {
39
+ return this.boxData.arrayTag.setFieldNames(names, index);
40
+ }
41
+ return index;
42
+ }
43
+ doHydration(d) {
44
+ let arr = [];
45
+ for (const item of d) {
46
+ arr.push(this.boxData.arrayTag.doHydration(item));
47
+ }
48
+ return arr;
49
+ }
50
+ getFieldName() {
51
+ if (this.boxData.arrayTag instanceof tag_1.Box) {
52
+ return this.boxData.arrayTag.getFieldName();
53
+ }
54
+ else {
55
+ return [];
56
+ }
57
+ }
58
+ getParamTypes() {
59
+ return `${this.boxData.arrayTag.getAbiTypeString()}[]`;
60
+ }
61
+ getParameters(data) {
62
+ let arr = [];
63
+ for (const item of data) {
64
+ const value = this.boxData.arrayTag.getParameters(item);
65
+ arr.push(value);
66
+ }
67
+ return arr;
68
+ }
69
+ }
70
+ exports.Array = Array;
71
+ exports.default = Array;
72
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/tag/array.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA0D;AAC1D,mCAAgC;AAChC,mEAA2C;AAC3C,MAAa,KAAM,SAAQ,SAAG;IAA9B;;QAqCC,eAAU,GAAG,CAAC,cAA8B,EAAE,EAAE,CAC/C,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAC5B,cAAc,CAAC,eAAe,EAC9B,oBAAU,CAAC,GAAG,EACd,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CACpD,cAAc,CACd,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,4CAA4C;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IAsBL,CAAC;IAzEA,cAAc,CAAC,IAAa;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,SAAc,EAAE,KAAa;QACvC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACd,QAAQ,EAAE,GAAG;SACb,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC;IAED,gBAAgB;QACf,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IACxD,CAAC;IAED,aAAa,CAAC,KAA4B,EAAE,KAAa;QACxD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,YAAY,SAAG,EAAE,CAAC;YAC1C,OAAQ,IAAI,CAAC,OAAO,CAAC,QAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,WAAW,CAAC,CAAM;QACjB,IAAI,GAAG,GAAU,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAmBD,YAAY;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,YAAY,SAAG,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED,aAAa;QACZ,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IACxD,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AA1ED,sBA0EC;AAED,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TagBase, ProviderHolder } from './tag';
2
+ export declare class Bool extends TagBase {
3
+ name: string;
4
+ formatType(typeBytes: any, index: number): number;
5
+ getAbiTypeString(): string;
6
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
7
+ getParamTypes(): string;
8
+ getParameters(data: any): any;
9
+ }
10
+ export default Bool;
11
+ //# sourceMappingURL=bool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bool.d.ts","sourceRoot":"","sources":["../../src/tag/bool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGrD,qBAAa,IAAK,SAAQ,OAAO;IAChC,IAAI,EAAE,MAAM,CAAU;IAEtB,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjD,gBAAgB,IAAI,MAAM;IAI1B,UAAU,GAAI,gBAAgB,cAAc,mBAWxC;IAEJ,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAQvB;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Bool = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ class Bool extends tag_1.TagBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.name = 'bool';
14
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
15
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abi, providerHolder.getProvider());
16
+ const resp = await c.boolT();
17
+ // console.log('getAbiType', 'Bool', resp);
18
+ resolve(resp);
19
+ });
20
+ }
21
+ formatType(typeBytes, index) {
22
+ this.name = 'bool';
23
+ return index + 2;
24
+ }
25
+ getAbiTypeString() {
26
+ return 'bool';
27
+ }
28
+ getParamTypes() {
29
+ return 'bool';
30
+ }
31
+ getParameters(data) {
32
+ // console.log('data', data);
33
+ if (data == true || data == false) {
34
+ return data;
35
+ }
36
+ else {
37
+ throw new Error(`${data} is not a boolean`);
38
+ }
39
+ }
40
+ }
41
+ exports.Bool = Bool;
42
+ exports.default = Bool;
43
+ //# sourceMappingURL=bool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bool.js","sourceRoot":"","sources":["../../src/tag/bool.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAqD;AACrD,mCAAgC;AAChC,mEAA2C;AAC3C,MAAa,IAAK,SAAQ,aAAO;IAAjC;;QACC,SAAI,GAAW,MAAM,CAAC;QAWtB,eAAU,GAAG,CAAC,cAA8B,EAAE,EAAE,CAC/C,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAC5B,cAAc,CAAC,eAAe,EAC9B,oBAAU,CAAC,GAAG,EACd,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7B,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IAcL,CAAC;IAlCA,UAAU,CAAC,SAAc,EAAE,KAAa;QACvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;QACf,OAAO,MAAM,CAAC;IACf,CAAC;IAeD,aAAa;QACZ,OAAO,MAAM,CAAC;IACf,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,6BAA6B;QAC7B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;CACD;AArCD,oBAqCC;AAED,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TagBase, ProviderHolder } from './tag';
2
+ export declare class Bytes extends TagBase {
3
+ name: string;
4
+ formatType(typeBytes: any, index: number): number;
5
+ getAbiTypeString(): string;
6
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
7
+ getParamTypes(): string;
8
+ getParameters(data: any): any;
9
+ }
10
+ export default Bytes;
11
+ //# sourceMappingURL=bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/tag/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGrD,qBAAa,KAAM,SAAQ,OAAO;IACjC,IAAI,EAAE,MAAM,CAAW;IAEvB,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjD,gBAAgB,IAAI,MAAM;IAI1B,UAAU,GAAI,gBAAgB,cAAc,mBAWxC;IAEJ,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAGvB;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Bytes = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ class Bytes extends tag_1.TagBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.name = 'bytes';
14
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
15
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abi, providerHolder.getProvider());
16
+ const resp = await c.bytesT();
17
+ // console.log('getAbiType', 'bytes', resp);
18
+ resolve(resp);
19
+ });
20
+ }
21
+ formatType(typeBytes, index) {
22
+ this.name = 'bytes';
23
+ return index + 2;
24
+ }
25
+ getAbiTypeString() {
26
+ return 'bytes';
27
+ }
28
+ getParamTypes() {
29
+ return 'bytes';
30
+ }
31
+ getParameters(data) {
32
+ return data;
33
+ }
34
+ }
35
+ exports.Bytes = Bytes;
36
+ exports.default = Bytes;
37
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/tag/bytes.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAqD;AACrD,mCAAgC;AAChC,mEAA2C;AAC3C,MAAa,KAAM,SAAQ,aAAO;IAAlC;;QACC,SAAI,GAAW,OAAO,CAAC;QAWvB,eAAU,GAAG,CAAC,cAA8B,EAAE,EAAE,CAC/C,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAC5B,cAAc,CAAC,eAAe,EAC9B,oBAAU,CAAC,GAAG,EACd,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9B,4CAA4C;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IASL,CAAC;IA7BA,UAAU,CAAC,SAAc,EAAE,KAAa;QACvC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;QACf,OAAO,OAAO,CAAC;IAChB,CAAC;IAeD,aAAa;QACZ,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAhCD,sBAgCC;AAED,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { TagBase, Box, ProviderHolder } from './tag';
2
+ export declare class FixedLengthArray extends Box {
3
+ setBuliderType(type: TagBase): void;
4
+ formatType(typeBytes: any, index: number): number;
5
+ getAbiTypeString(): string;
6
+ setFieldNames(names: string[] | string[][], index: number): number;
7
+ doHydration(d: any): any[];
8
+ setSize: (size: number) => void;
9
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
10
+ getFieldName(): string[][];
11
+ getParamTypes(): string;
12
+ getParameters(data: any): any[];
13
+ }
14
+ export default FixedLengthArray;
15
+ //# sourceMappingURL=flarray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flarray.d.ts","sourceRoot":"","sources":["../../src/tag/flarray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,GAAG,EAAa,cAAc,EAAE,MAAM,OAAO,CAAC;AAGrE,qBAAa,gBAAiB,SAAQ,GAAG;IACxC,cAAc,CAAC,IAAI,EAAE,OAAO;IAI5B,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAgBjD,gBAAgB,IAAI,MAAM;IAM1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlE,WAAW,CAAC,CAAC,EAAE,GAAG;IASlB,OAAO,GAAI,MAAM,MAAM,UAErB;IAEF,UAAU,GAAI,gBAAgB,cAAc,mBAexC;IAEJ,YAAY,IAAI,MAAM,EAAE,EAAE;IAQ1B,aAAa,IAAI,MAAM;IAMvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAevB;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FixedLengthArray = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ class FixedLengthArray extends tag_1.Box {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.setSize = (size) => {
14
+ this.boxData.length = size;
15
+ };
16
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
17
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abiHaveCount, providerHolder.getProvider());
18
+ const arrAbi = await this.boxData.arrayTag.getAbiType(providerHolder);
19
+ const resp = await c.arrayT(arrAbi, this.boxData.length);
20
+ // console.log('getAbiType', 'Address', resp);
21
+ resolve(resp);
22
+ });
23
+ }
24
+ setBuliderType(type) {
25
+ this.boxData.arrayTag = type;
26
+ }
27
+ formatType(typeBytes, index) {
28
+ let la = (0, tag_1.read2Byte)(typeBytes, index + 2);
29
+ let length = parseInt(la, 16);
30
+ let { cursor, tag } = this.formatChild(typeBytes, index + 6);
31
+ if (tag == undefined) {
32
+ throw new Error('formatType error in array');
33
+ }
34
+ this.boxData = {
35
+ arrayTag: tag,
36
+ length: length
37
+ };
38
+ return cursor;
39
+ }
40
+ getAbiTypeString() {
41
+ return `${this.boxData.arrayTag.getAbiTypeString()}[${this.boxData.length}]`;
42
+ }
43
+ setFieldNames(names, index) {
44
+ if (this.boxData.arrayTag instanceof tag_1.Box) {
45
+ return this.boxData.arrayTag.setFieldNames(names, index);
46
+ }
47
+ return index;
48
+ }
49
+ doHydration(d) {
50
+ let arr = [];
51
+ for (const item of d) {
52
+ arr.push(this.boxData.arrayTag.doHydration(item));
53
+ }
54
+ return arr;
55
+ }
56
+ getFieldName() {
57
+ if (this.boxData.arrayTag instanceof tag_1.Box) {
58
+ return this.boxData.arrayTag.getFieldName();
59
+ }
60
+ else {
61
+ return [];
62
+ }
63
+ }
64
+ getParamTypes() {
65
+ return `${this.boxData.arrayTag.getAbiTypeString()}[${this.boxData.length}]`;
66
+ }
67
+ getParameters(data) {
68
+ if (data.length != this.boxData.length) {
69
+ throw new Error(`${this.fieldName} muse be length ${this.boxData.length}, but input data is length ${data.length}`);
70
+ }
71
+ const arr = [];
72
+ for (const item of data) {
73
+ const value = this.boxData.arrayTag.getParameters(item);
74
+ arr.push(value);
75
+ }
76
+ return arr;
77
+ }
78
+ }
79
+ exports.FixedLengthArray = FixedLengthArray;
80
+ exports.default = FixedLengthArray;
81
+ //# sourceMappingURL=flarray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flarray.js","sourceRoot":"","sources":["../../src/tag/flarray.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { TagBase, ProviderHolder } from './tag';
2
+ export declare class FixedLengthBytes extends TagBase {
3
+ formatType(typeBytes: any, index: number): number;
4
+ getAbiTypeString(): string;
5
+ setSize: (size: number) => void;
6
+ getAbiType: (providerHolder: ProviderHolder) => Promise<void>;
7
+ getParamTypes(): string;
8
+ getParameters(data: any): any;
9
+ }
10
+ export default FixedLengthBytes;
11
+ //# sourceMappingURL=flbytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flbytes.d.ts","sourceRoot":"","sources":["../../src/tag/flbytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAY,cAAc,EAAE,MAAM,OAAO,CAAC;AAG/D,qBAAa,gBAAiB,SAAQ,OAAO;IAE5C,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAYjD,gBAAgB,IAAI,MAAM;IAI1B,OAAO,GAAI,MAAM,MAAM,UAErB;IAEF,UAAU,GAAI,gBAAgB,cAAc,mBAWxC;IAEJ,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,IAAI,EAAE,GAAG;CAGvB;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FixedLengthBytes = void 0;
7
+ const tag_1 = require("./tag");
8
+ const ethers_1 = require("ethers");
9
+ const ABITypeABI_1 = __importDefault(require("../abi/ABITypeABI"));
10
+ class FixedLengthBytes extends tag_1.TagBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.setSize = (size) => {
14
+ this.boxData.length = size;
15
+ };
16
+ this.getAbiType = (providerHolder) => new Promise(async (resolve, reject) => {
17
+ const c = new ethers_1.ethers.Contract(providerHolder.contractAbiType, ABITypeABI_1.default.abiHaveCount, providerHolder.getProvider());
18
+ const resp = await c.bytesT(this.boxData.length);
19
+ // console.log('getAbiType', 'uint', resp);
20
+ resolve(resp);
21
+ });
22
+ }
23
+ // length: number = 0
24
+ formatType(typeBytes, index) {
25
+ let b = (0, tag_1.readByte)(typeBytes, index + 2);
26
+ let length = parseInt(b, 16);
27
+ if (length < 1 || length > 32) {
28
+ throw new Error(`input is not a valid bytes type`);
29
+ }
30
+ this.boxData = {
31
+ length: length
32
+ };
33
+ return index + 4;
34
+ }
35
+ getAbiTypeString() {
36
+ return `bytes${this.boxData.length}`;
37
+ }
38
+ getParamTypes() {
39
+ return `bytes${this.boxData.length}`;
40
+ }
41
+ getParameters(data) {
42
+ return data;
43
+ }
44
+ }
45
+ exports.FixedLengthBytes = FixedLengthBytes;
46
+ exports.default = FixedLengthBytes;
47
+ //# sourceMappingURL=flbytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flbytes.js","sourceRoot":"","sources":["../../src/tag/flbytes.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+D;AAC/D,mCAAgC;AAChC,mEAA2C;AAC3C,MAAa,gBAAiB,SAAQ,aAAO;IAA7C;;QAkBC,YAAO,GAAG,CAAC,IAAY,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5B,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,cAA8B,EAAE,EAAE,CAC/C,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAC5B,cAAc,CAAC,eAAe,EAC9B,oBAAU,CAAC,YAAY,EACvB,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IASL,CAAC;IAzCA,qBAAqB;IACrB,UAAU,CAAC,SAAc,EAAE,KAAa;QACvC,IAAI,CAAC,GAAG,IAAA,cAAQ,EAAC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG;YACd,MAAM,EAAE,MAAM;SACd,CAAC;QACF,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;QACf,OAAO,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAmBD,aAAa;QACZ,OAAO,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA1CD,4CA0CC;AAED,kBAAe,gBAAgB,CAAC"}