@ckb-ccc/spore 0.1.0-alpha.2

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 (223) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +61 -0
  3. package/dist/advanced.d.ts +5 -0
  4. package/dist/advanced.d.ts.map +1 -0
  5. package/dist/advanced.js +4 -0
  6. package/dist/cluster/index.d.ts +56 -0
  7. package/dist/cluster/index.d.ts.map +1 -0
  8. package/dist/cluster/index.js +96 -0
  9. package/dist/cobuild/index.d.ts +13 -0
  10. package/dist/cobuild/index.d.ts.map +1 -0
  11. package/dist/cobuild/index.js +168 -0
  12. package/dist/codec/base.d.ts +6 -0
  13. package/dist/codec/base.d.ts.map +1 -0
  14. package/dist/codec/base.js +10 -0
  15. package/dist/codec/cluster.d.ts +41 -0
  16. package/dist/codec/cluster.d.ts.map +1 -0
  17. package/dist/codec/cluster.js +73 -0
  18. package/dist/codec/cobuild/buildingPacket.d.ts +465 -0
  19. package/dist/codec/cobuild/buildingPacket.d.ts.map +1 -0
  20. package/dist/codec/cobuild/buildingPacket.js +44 -0
  21. package/dist/codec/cobuild/index.d.ts +4 -0
  22. package/dist/codec/cobuild/index.d.ts.map +1 -0
  23. package/dist/codec/cobuild/index.js +3 -0
  24. package/dist/codec/cobuild/sporeAction.d.ts +314 -0
  25. package/dist/codec/cobuild/sporeAction.d.ts.map +1 -0
  26. package/dist/codec/cobuild/sporeAction.js +104 -0
  27. package/dist/codec/cobuild/witnessLayout.d.ts +43 -0
  28. package/dist/codec/cobuild/witnessLayout.d.ts.map +1 -0
  29. package/dist/codec/cobuild/witnessLayout.js +27 -0
  30. package/dist/codec/index.d.ts +4 -0
  31. package/dist/codec/index.d.ts.map +1 -0
  32. package/dist/codec/index.js +3 -0
  33. package/dist/codec/spore.d.ts +15 -0
  34. package/dist/codec/spore.d.ts.map +1 -0
  35. package/dist/codec/spore.js +24 -0
  36. package/dist/dob/api/decode.d.ts +6 -0
  37. package/dist/dob/api/decode.d.ts.map +1 -0
  38. package/dist/dob/api/decode.js +44 -0
  39. package/dist/dob/api/encode.d.ts +5 -0
  40. package/dist/dob/api/encode.d.ts.map +1 -0
  41. package/dist/dob/api/encode.js +77 -0
  42. package/dist/dob/api/index.d.ts +3 -0
  43. package/dist/dob/api/index.d.ts.map +1 -0
  44. package/dist/dob/api/index.js +2 -0
  45. package/dist/dob/config/index.d.ts +2 -0
  46. package/dist/dob/config/index.d.ts.map +1 -0
  47. package/dist/dob/config/index.js +1 -0
  48. package/dist/dob/config/predefined.d.ts +8 -0
  49. package/dist/dob/config/predefined.d.ts.map +1 -0
  50. package/dist/dob/config/predefined.js +59 -0
  51. package/dist/dob/helper/check.d.ts +5 -0
  52. package/dist/dob/helper/check.d.ts.map +1 -0
  53. package/dist/dob/helper/check.js +75 -0
  54. package/dist/dob/helper/error.d.ts +2 -0
  55. package/dist/dob/helper/error.d.ts.map +1 -0
  56. package/dist/dob/helper/error.js +40 -0
  57. package/dist/dob/helper/index.d.ts +3 -0
  58. package/dist/dob/helper/index.d.ts.map +1 -0
  59. package/dist/dob/helper/index.js +2 -0
  60. package/dist/dob/helper/object.d.ts +59 -0
  61. package/dist/dob/helper/object.d.ts.map +1 -0
  62. package/dist/dob/helper/object.js +1 -0
  63. package/dist/dob/index.d.ts +4 -0
  64. package/dist/dob/index.d.ts.map +1 -0
  65. package/dist/dob/index.js +3 -0
  66. package/dist/helper/index.d.ts +9 -0
  67. package/dist/helper/index.d.ts.map +1 -0
  68. package/dist/helper/index.js +37 -0
  69. package/dist/index.d.ts +5 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +4 -0
  72. package/dist/package.json +3 -0
  73. package/dist/predefined/advanced.d.ts +3 -0
  74. package/dist/predefined/advanced.d.ts.map +1 -0
  75. package/dist/predefined/advanced.js +2 -0
  76. package/dist/predefined/index.d.ts +3 -0
  77. package/dist/predefined/index.d.ts.map +1 -0
  78. package/dist/predefined/index.js +2 -0
  79. package/dist/predefined/mainnet.advanced.d.ts +4 -0
  80. package/dist/predefined/mainnet.advanced.d.ts.map +1 -0
  81. package/dist/predefined/mainnet.advanced.js +61 -0
  82. package/dist/predefined/testnet.advanced.d.ts +4 -0
  83. package/dist/predefined/testnet.advanced.d.ts.map +1 -0
  84. package/dist/predefined/testnet.advanced.js +88 -0
  85. package/dist/predefined/types.d.ts +17 -0
  86. package/dist/predefined/types.d.ts.map +1 -0
  87. package/dist/predefined/types.js +18 -0
  88. package/dist/predefined/utils.d.ts +7 -0
  89. package/dist/predefined/utils.d.ts.map +1 -0
  90. package/dist/predefined/utils.js +26 -0
  91. package/dist/spore/advanced.d.ts +5 -0
  92. package/dist/spore/advanced.d.ts.map +1 -0
  93. package/dist/spore/advanced.js +62 -0
  94. package/dist/spore/index.d.ts +80 -0
  95. package/dist/spore/index.d.ts.map +1 -0
  96. package/dist/spore/index.js +135 -0
  97. package/dist.commonjs/advanced.d.ts +5 -0
  98. package/dist.commonjs/advanced.d.ts.map +1 -0
  99. package/dist.commonjs/advanced.js +20 -0
  100. package/dist.commonjs/cluster/index.d.ts +56 -0
  101. package/dist.commonjs/cluster/index.d.ts.map +1 -0
  102. package/dist.commonjs/cluster/index.js +102 -0
  103. package/dist.commonjs/cobuild/index.d.ts +13 -0
  104. package/dist.commonjs/cobuild/index.d.ts.map +1 -0
  105. package/dist.commonjs/cobuild/index.js +179 -0
  106. package/dist.commonjs/codec/base.d.ts +6 -0
  107. package/dist.commonjs/codec/base.d.ts.map +1 -0
  108. package/dist.commonjs/codec/base.js +13 -0
  109. package/dist.commonjs/codec/cluster.d.ts +41 -0
  110. package/dist.commonjs/codec/cluster.d.ts.map +1 -0
  111. package/dist.commonjs/codec/cluster.js +82 -0
  112. package/dist.commonjs/codec/cobuild/buildingPacket.d.ts +465 -0
  113. package/dist.commonjs/codec/cobuild/buildingPacket.d.ts.map +1 -0
  114. package/dist.commonjs/codec/cobuild/buildingPacket.js +47 -0
  115. package/dist.commonjs/codec/cobuild/index.d.ts +4 -0
  116. package/dist.commonjs/codec/cobuild/index.d.ts.map +1 -0
  117. package/dist.commonjs/codec/cobuild/index.js +19 -0
  118. package/dist.commonjs/codec/cobuild/sporeAction.d.ts +314 -0
  119. package/dist.commonjs/codec/cobuild/sporeAction.d.ts.map +1 -0
  120. package/dist.commonjs/codec/cobuild/sporeAction.js +107 -0
  121. package/dist.commonjs/codec/cobuild/witnessLayout.d.ts +43 -0
  122. package/dist.commonjs/codec/cobuild/witnessLayout.d.ts.map +1 -0
  123. package/dist.commonjs/codec/cobuild/witnessLayout.js +30 -0
  124. package/dist.commonjs/codec/index.d.ts +4 -0
  125. package/dist.commonjs/codec/index.d.ts.map +1 -0
  126. package/dist.commonjs/codec/index.js +19 -0
  127. package/dist.commonjs/codec/spore.d.ts +15 -0
  128. package/dist.commonjs/codec/spore.d.ts.map +1 -0
  129. package/dist.commonjs/codec/spore.js +29 -0
  130. package/dist.commonjs/dob/api/decode.d.ts +6 -0
  131. package/dist.commonjs/dob/api/decode.d.ts.map +1 -0
  132. package/dist.commonjs/dob/api/decode.js +49 -0
  133. package/dist.commonjs/dob/api/encode.d.ts +5 -0
  134. package/dist.commonjs/dob/api/encode.d.ts.map +1 -0
  135. package/dist.commonjs/dob/api/encode.js +82 -0
  136. package/dist.commonjs/dob/api/index.d.ts +3 -0
  137. package/dist.commonjs/dob/api/index.d.ts.map +1 -0
  138. package/dist.commonjs/dob/api/index.js +18 -0
  139. package/dist.commonjs/dob/config/index.d.ts +2 -0
  140. package/dist.commonjs/dob/config/index.d.ts.map +1 -0
  141. package/dist.commonjs/dob/config/index.js +17 -0
  142. package/dist.commonjs/dob/config/predefined.d.ts +8 -0
  143. package/dist.commonjs/dob/config/predefined.d.ts.map +1 -0
  144. package/dist.commonjs/dob/config/predefined.js +63 -0
  145. package/dist.commonjs/dob/helper/check.d.ts +5 -0
  146. package/dist.commonjs/dob/helper/check.d.ts.map +1 -0
  147. package/dist.commonjs/dob/helper/check.js +80 -0
  148. package/dist.commonjs/dob/helper/error.d.ts +2 -0
  149. package/dist.commonjs/dob/helper/error.d.ts.map +1 -0
  150. package/dist.commonjs/dob/helper/error.js +43 -0
  151. package/dist.commonjs/dob/helper/index.d.ts +3 -0
  152. package/dist.commonjs/dob/helper/index.d.ts.map +1 -0
  153. package/dist.commonjs/dob/helper/index.js +18 -0
  154. package/dist.commonjs/dob/helper/object.d.ts +59 -0
  155. package/dist.commonjs/dob/helper/object.d.ts.map +1 -0
  156. package/dist.commonjs/dob/helper/object.js +2 -0
  157. package/dist.commonjs/dob/index.d.ts +4 -0
  158. package/dist.commonjs/dob/index.d.ts.map +1 -0
  159. package/dist.commonjs/dob/index.js +19 -0
  160. package/dist.commonjs/helper/index.d.ts +9 -0
  161. package/dist.commonjs/helper/index.d.ts.map +1 -0
  162. package/dist.commonjs/helper/index.js +42 -0
  163. package/dist.commonjs/index.d.ts +5 -0
  164. package/dist.commonjs/index.d.ts.map +1 -0
  165. package/dist.commonjs/index.js +33 -0
  166. package/dist.commonjs/package.json +3 -0
  167. package/dist.commonjs/predefined/advanced.d.ts +3 -0
  168. package/dist.commonjs/predefined/advanced.d.ts.map +1 -0
  169. package/dist.commonjs/predefined/advanced.js +18 -0
  170. package/dist.commonjs/predefined/index.d.ts +3 -0
  171. package/dist.commonjs/predefined/index.d.ts.map +1 -0
  172. package/dist.commonjs/predefined/index.js +18 -0
  173. package/dist.commonjs/predefined/mainnet.advanced.d.ts +4 -0
  174. package/dist.commonjs/predefined/mainnet.advanced.d.ts.map +1 -0
  175. package/dist.commonjs/predefined/mainnet.advanced.js +64 -0
  176. package/dist.commonjs/predefined/testnet.advanced.d.ts +4 -0
  177. package/dist.commonjs/predefined/testnet.advanced.d.ts.map +1 -0
  178. package/dist.commonjs/predefined/testnet.advanced.js +91 -0
  179. package/dist.commonjs/predefined/types.d.ts +17 -0
  180. package/dist.commonjs/predefined/types.d.ts.map +1 -0
  181. package/dist.commonjs/predefined/types.js +22 -0
  182. package/dist.commonjs/predefined/utils.d.ts +7 -0
  183. package/dist.commonjs/predefined/utils.d.ts.map +1 -0
  184. package/dist.commonjs/predefined/utils.js +32 -0
  185. package/dist.commonjs/spore/advanced.d.ts +5 -0
  186. package/dist.commonjs/spore/advanced.d.ts.map +1 -0
  187. package/dist.commonjs/spore/advanced.js +65 -0
  188. package/dist.commonjs/spore/index.d.ts +80 -0
  189. package/dist.commonjs/spore/index.d.ts.map +1 -0
  190. package/dist.commonjs/spore/index.js +142 -0
  191. package/package.json +52 -0
  192. package/src/advanced.ts +4 -0
  193. package/src/cluster/index.ts +180 -0
  194. package/src/cobuild/index.ts +220 -0
  195. package/src/codec/base.ts +11 -0
  196. package/src/codec/cluster.ts +133 -0
  197. package/src/codec/cobuild/buildingPacket.ts +72 -0
  198. package/src/codec/cobuild/index.ts +3 -0
  199. package/src/codec/cobuild/sporeAction.ts +153 -0
  200. package/src/codec/cobuild/witnessLayout.ts +40 -0
  201. package/src/codec/index.ts +3 -0
  202. package/src/codec/spore.ts +36 -0
  203. package/src/dob/api/decode.ts +61 -0
  204. package/src/dob/api/encode.ts +84 -0
  205. package/src/dob/api/index.ts +2 -0
  206. package/src/dob/config/index.ts +1 -0
  207. package/src/dob/config/predefined.ts +71 -0
  208. package/src/dob/helper/check.ts +107 -0
  209. package/src/dob/helper/error.ts +41 -0
  210. package/src/dob/helper/index.ts +2 -0
  211. package/src/dob/helper/object.ts +66 -0
  212. package/src/dob/index.ts +3 -0
  213. package/src/helper/index.ts +68 -0
  214. package/src/index.ts +4 -0
  215. package/src/predefined/advanced.ts +2 -0
  216. package/src/predefined/index.ts +2 -0
  217. package/src/predefined/mainnet.advanced.ts +76 -0
  218. package/src/predefined/testnet.advanced.ts +107 -0
  219. package/src/predefined/types.ts +37 -0
  220. package/src/predefined/utils.ts +56 -0
  221. package/src/spore/advanced.ts +88 -0
  222. package/src/spore/index.ts +236 -0
  223. package/typedoc.json +6 -0
@@ -0,0 +1,77 @@
1
+ import { checkDecoder, checkPatternDob0, checkPatternDob1, } from "../helper/index.js";
2
+ export function encodeDna(dna) {
3
+ const encoder = new TextEncoder();
4
+ return encoder.encode(JSON.stringify(dna));
5
+ }
6
+ export function encodeClusterDescriptionForDob0(dob0) {
7
+ checkDecoder(dob0.dob.decoder);
8
+ dob0.dob.pattern.forEach((v) => {
9
+ checkPatternDob0(v);
10
+ v.toJSON = function () {
11
+ if (v.traitArgs) {
12
+ return [
13
+ v.traitName,
14
+ v.dobType,
15
+ v.dnaOffset,
16
+ v.dnaLength,
17
+ v.patternType,
18
+ v.traitArgs,
19
+ ];
20
+ }
21
+ else {
22
+ return [
23
+ v.traitName,
24
+ v.dobType,
25
+ v.dnaOffset,
26
+ v.dnaLength,
27
+ v.patternType,
28
+ ];
29
+ }
30
+ };
31
+ });
32
+ return JSON.stringify(dob0);
33
+ }
34
+ export function encodeClusterDescriptionForDob1(dob1) {
35
+ dob1.dob.decoders.forEach((value) => {
36
+ checkDecoder(value.decoder);
37
+ value.pattern.forEach((v) => {
38
+ if ("dnaOffset" in v) {
39
+ checkPatternDob0(v);
40
+ v.toJSON = function () {
41
+ if (v.traitArgs) {
42
+ return [
43
+ v.traitName,
44
+ v.dobType,
45
+ v.dnaOffset,
46
+ v.dnaLength,
47
+ v.patternType,
48
+ v.traitArgs,
49
+ ];
50
+ }
51
+ else {
52
+ return [
53
+ v.traitName,
54
+ v.dobType,
55
+ v.dnaOffset,
56
+ v.dnaLength,
57
+ v.patternType,
58
+ ];
59
+ }
60
+ };
61
+ }
62
+ else {
63
+ checkPatternDob1(v);
64
+ v.toJSON = () => {
65
+ return [
66
+ v.imageName,
67
+ v.svgFields,
68
+ v.traitName,
69
+ v.patternType,
70
+ v.traitArgs,
71
+ ];
72
+ };
73
+ }
74
+ });
75
+ });
76
+ return JSON.stringify(dob1);
77
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./decode.js";
2
+ export * from "./encode.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dob/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./decode.js";
2
+ export * from "./encode.js";
@@ -0,0 +1,2 @@
1
+ export * from "./predefined.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dob/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./predefined.js";
@@ -0,0 +1,8 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { Decoder } from "../helper/index.js";
3
+ export type DobType = "dob0" | "dob1";
4
+ export type DobScriptInfo = Record<DobType, Decoder>;
5
+ export declare const DOB_TESTNET_DECODERS: DobScriptInfo;
6
+ export declare const DOB_MAINNET_DECODERS: DobScriptInfo;
7
+ export declare function getDecoder(client: ccc.Client, dobType: DobType, dobScriptInfo?: DobScriptInfo): Decoder;
8
+ //# sourceMappingURL=predefined.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predefined.d.ts","sourceRoot":"","sources":["../../../src/dob/config/predefined.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACtC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB,EAAE,aAwBjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,aAwBjC,CAAC;AAEH,wBAAgB,UAAU,CACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAQT"}
@@ -0,0 +1,59 @@
1
+ export const DOB_TESTNET_DECODERS = Object.freeze({
2
+ ["dob0"]: {
3
+ type: "code_hash",
4
+ hash: "0x13cac78ad8482202f18f9df4ea707611c35f994375fa03ae79121312dda9925c",
5
+ },
6
+ // another avaliable options:
7
+ // {
8
+ // type: "type_id",
9
+ // hash: "0x784e32cef202b9d4759ea96e80d806f94051e8069fd34d761f452553700138d7",
10
+ // }
11
+ // or
12
+ // {
13
+ // type: "type_script",
14
+ // script: {
15
+ // code_hash:
16
+ // "0x00000000000000000000000000000000000000000000000000545950455f4944",
17
+ // hash_type: "type",
18
+ // args: "0x784e32cef202b9d4759ea96e80d806f94051e8069fd34d761f452553700138d7",
19
+ // }
20
+ // }
21
+ ["dob1"]: {
22
+ type: "code_hash",
23
+ hash: "0xda3525549b72970b4c95f5b5749357f20d1293d335710b674f09c32f7d54b6dc",
24
+ },
25
+ });
26
+ export const DOB_MAINNET_DECODERS = Object.freeze({
27
+ ["dob0"]: {
28
+ type: "code_hash",
29
+ hash: "0x13cac78ad8482202f18f9df4ea707611c35f994375fa03ae79121312dda9925c",
30
+ },
31
+ // another avaliable options:
32
+ // {
33
+ // type: "type_id",
34
+ // hash: "0x8892bea4405a1f077921799bc0f4516e0ebaef7aea0dfc6614a8898fb47d5372",
35
+ // },
36
+ // or
37
+ // {
38
+ // type: "type_script",
39
+ // script: {
40
+ // code_hash:
41
+ // "0x00000000000000000000000000000000000000000000000000545950455f4944",
42
+ // hash_type: "type",
43
+ // args: "0x8892bea4405a1f077921799bc0f4516e0ebaef7aea0dfc6614a8898fb47d5372",
44
+ // }
45
+ // }
46
+ ["dob1"]: {
47
+ type: "code_hash",
48
+ hash: "0xda3525549b72970b4c95f5b5749357f20d1293d335710b674f09c32f7d54b6dc",
49
+ },
50
+ });
51
+ export function getDecoder(client, dobType, dobScriptInfo) {
52
+ if (dobScriptInfo) {
53
+ return dobScriptInfo[dobType];
54
+ }
55
+ if (client.addressPrefix === "ckb") {
56
+ return DOB_MAINNET_DECODERS[dobType];
57
+ }
58
+ return DOB_TESTNET_DECODERS[dobType];
59
+ }
@@ -0,0 +1,5 @@
1
+ import { Decoder, PatternElementDob0, PatternElementDob1 } from "./object.js";
2
+ export declare function checkDecoder(decoder: Decoder): void;
3
+ export declare function checkPatternDob0(value: PatternElementDob0): void;
4
+ export declare function checkPatternDob1(value: PatternElementDob1): void;
5
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/dob/helper/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9E,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAW5C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,QAiCzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,QAwDzD"}
@@ -0,0 +1,75 @@
1
+ export function checkDecoder(decoder) {
2
+ if (decoder.type === "code_hash" || decoder.type === "type_id") {
3
+ if (decoder.hash === undefined) {
4
+ throw new Error("Invalid decoder: 'hash' is required for 'code_hash' and 'type_id'");
5
+ }
6
+ }
7
+ if (decoder.type === "type_script" && decoder.script === undefined) {
8
+ throw new Error("Invalid decoder: 'script' is required for 'type_script'");
9
+ }
10
+ }
11
+ export function checkPatternDob0(value) {
12
+ switch (value.patternType) {
13
+ case "options": {
14
+ if (value.traitArgs === undefined) {
15
+ throw new Error("Invalid pattern: 'traitArgs' is required for 'options'");
16
+ }
17
+ if (value.traitArgs.length === 0) {
18
+ throw new Error("Invalid pattern: 'traitArgs' should not be empty for 'options'");
19
+ }
20
+ break;
21
+ }
22
+ case "range": {
23
+ if (value.traitArgs === undefined) {
24
+ throw new Error("Invalid pattern: 'traitArgs' is required for 'range'");
25
+ }
26
+ if (value.traitArgs.length !== 2 ||
27
+ value.traitArgs.filter((v) => typeof v === "number").length !== 2) {
28
+ throw new Error("Invalid pattern: 'traitArgs' should contain exactly 2 numbers for 'range'");
29
+ }
30
+ break;
31
+ }
32
+ }
33
+ if (value.dnaLength === 0) {
34
+ throw new Error("Invalid pattern: 'dnaLength' should be greater than 0");
35
+ }
36
+ }
37
+ export function checkPatternDob1(value) {
38
+ switch (value.patternType) {
39
+ case "options": {
40
+ if (!Array.isArray(value.traitArgs)) {
41
+ throw new Error("Invalid pattern: 'traitArgs' should be an array for 'options'");
42
+ }
43
+ for (const args of value.traitArgs) {
44
+ if (args.length !== 2) {
45
+ throw new Error("Invalid pattern: 'traitArgs' should contain exactly 2 elements for 'options'");
46
+ }
47
+ if (typeof args[0] !== "string") {
48
+ if (!Array.isArray(args[0])) {
49
+ throw new Error("Invalid pattern: 'traitArgs[0]' should be a string or an array that contains only 2 numbers or the '*' for 'options'");
50
+ }
51
+ if (args[0].length === 1 && args[0][0] !== "*") {
52
+ throw new Error("Invalid pattern: 'traitArgs[0]' should be a string or an array that contains only 2 numbers or the '*' for 'options'");
53
+ }
54
+ if (args[0].length === 2 &&
55
+ (typeof args[0][0] !== "number" || typeof args[0][1] !== "number")) {
56
+ throw new Error("Invalid pattern: 'traitArgs[0]' should be a string or an array that contains only 2 numbers or the '*' for 'options'");
57
+ }
58
+ if (args[0].length === 0 || args[0].length > 2) {
59
+ throw new Error("Invalid pattern: 'traitArgs[0]' should be a string or an array that contains only 2 numbers or the '*' for 'options'");
60
+ }
61
+ }
62
+ if (typeof args[1] !== "string") {
63
+ throw new Error("Invalid pattern: 'traitArgs[1]' should be a string for 'options'");
64
+ }
65
+ }
66
+ break;
67
+ }
68
+ case "raw": {
69
+ if (value.traitName !== "" || typeof value.traitArgs !== "string") {
70
+ throw new Error("Invalid pattern: 'traitName' should be empty and 'traitArgs' should be a string for 'raw'");
71
+ }
72
+ break;
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,2 @@
1
+ export declare function getErrorByCode(code: number): string;
2
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/dob/helper/error.ts"],"names":[],"mappings":"AAkCA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD"}
@@ -0,0 +1,40 @@
1
+ const errors = {
2
+ 1001: "DnaLengthNotMatch",
3
+ 1002: "SporeIdLengthInvalid",
4
+ 1003: "NativeDecoderNotFound",
5
+ 1004: "SporeIdNotFound",
6
+ 1005: "SporeDataUncompatible",
7
+ 1006: "SporeDataContentTypeUncompatible",
8
+ 1007: "DOBVersionUnexpected",
9
+ 1008: "ClusterIdNotSet",
10
+ 1009: "ClusterIdNotFound",
11
+ 1010: "ClusterDataUncompatible",
12
+ 1011: "DecoderIdNotFound",
13
+ 1012: "DecoderOutputInvalid",
14
+ 1013: "HexedDNAParseError",
15
+ 1014: "HexedSporeIdParseError",
16
+ 1015: "DecoderBinaryPathInvalid",
17
+ 1016: "DecoderExecutionError",
18
+ 1017: "DecoderExecutionInternalError",
19
+ 1018: "FetchLiveCellsError",
20
+ 1019: "FetchTransactionError",
21
+ 1020: "NoOutputCellInTransaction",
22
+ 1021: "DOBContentUnexpected",
23
+ 1022: "DOBMetadataUnexpected",
24
+ 1023: "DOBRenderCacheNotFound",
25
+ 1024: "DOBRenderCacheModified",
26
+ 1025: "DecoderBinaryHashInvalid",
27
+ 1026: "DecoderBinaryNotFoundInCell",
28
+ 1027: "JsonRpcRequestError",
29
+ 1028: "SystemTimeError",
30
+ 1029: "DecoderHashNotFound",
31
+ 1030: "DecoderScriptNotFound",
32
+ 1031: "DecoderChainIsEmpty",
33
+ };
34
+ export function getErrorByCode(code) {
35
+ const errorIndex = Object.keys(errors).indexOf(code.toString());
36
+ if (errorIndex < 0) {
37
+ throw new Error(`Error code ${code} not found`);
38
+ }
39
+ return Object.values(errors)[errorIndex];
40
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./check.js";
2
+ export * from "./object.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dob/helper/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./check.js";
2
+ export * from "./object.js";
@@ -0,0 +1,59 @@
1
+ export type DNA = string | {
2
+ dna: string;
3
+ } | string[];
4
+ export interface Decoder {
5
+ type: "code_hash" | "type_id" | "type_script";
6
+ hash?: string;
7
+ script?: {
8
+ code_hash: string;
9
+ hash_type: string;
10
+ args: string;
11
+ };
12
+ }
13
+ export interface PatternElementDob0 {
14
+ traitName: string;
15
+ dobType: string;
16
+ dnaOffset: number;
17
+ dnaLength: number;
18
+ patternType: "options" | "range" | "rawNumber" | "rawString" | "utf8";
19
+ traitArgs?: string[] | number[];
20
+ toJSON?: () => unknown;
21
+ }
22
+ export interface PatternDob0 {
23
+ ver: 0;
24
+ decoder: Decoder;
25
+ pattern: PatternElementDob0[];
26
+ }
27
+ export interface Dob0 {
28
+ description: string;
29
+ dob: PatternDob0;
30
+ }
31
+ export type Dob1PatternArgs = string | number[] | ["*"];
32
+ export interface PatternElementDob1 {
33
+ imageName: string;
34
+ svgFields: "attributes" | "elements";
35
+ traitName: string;
36
+ patternType: "options" | "raw";
37
+ traitArgs: Dob1PatternArgs[][] | string;
38
+ toJSON?: () => unknown;
39
+ }
40
+ export interface PatternDob1 {
41
+ ver: 1;
42
+ decoders: {
43
+ decoder: Decoder;
44
+ pattern: PatternElementDob0[] | PatternElementDob1[];
45
+ }[];
46
+ }
47
+ export interface Dob1 {
48
+ description: string;
49
+ dob: PatternDob1;
50
+ }
51
+ export interface DecodeElement {
52
+ name: string;
53
+ traits: {
54
+ type: string;
55
+ value: number | string;
56
+ }[];
57
+ }
58
+ export type RenderOutput = DecodeElement[];
59
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/dob/helper/object.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,IAAI;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,GAAG,KAAK,CAAC;IAC/B,SAAS,EAAE,eAAe,EAAE,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,CAAC;IACP,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAAC;KACtD,EAAE,CAAC;CACL;AAED,MAAM,WAAW,IAAI;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,EAAE,CAAC;CACL;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from "./api/index.js";
2
+ export * from "./config/index.js";
3
+ export * from "./helper/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dob/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./api/index.js";
2
+ export * from "./config/index.js";
3
+ export * from "./helper/index.js";
@@ -0,0 +1,9 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { SporeScriptInfo, SporeScriptInfoLike } from "../predefined/index.js";
3
+ export declare function findSingletonCellByArgs(client: ccc.Client, args: ccc.HexLike, scripts: (SporeScriptInfoLike | undefined)[]): Promise<{
4
+ cell: ccc.Cell;
5
+ scriptInfo: SporeScriptInfo;
6
+ } | undefined>;
7
+ export declare function searchOneCellBySigner(signer: ccc.Signer): Promise<ccc.Cell | undefined>;
8
+ export declare function injectOneCapacityCell(signer: ccc.Signer, tx: ccc.Transaction): Promise<void>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,IAAI,EAAE,GAAG,CAAC,OAAO,EACjB,OAAO,EAAE,CAAC,mBAAmB,GAAG,SAAS,CAAC,EAAE,GAC3C,OAAO,CACN;IACE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;CAC7B,GACD,SAAS,CACZ,CAqBA;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,GAAG,CAAC,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAY/B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,EAAE,EAAE,GAAG,CAAC,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,37 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { SporeScriptInfo } from "../predefined/index.js";
3
+ export async function findSingletonCellByArgs(client, args, scripts) {
4
+ for (const scriptInfo of scripts) {
5
+ if (!scriptInfo) {
6
+ continue;
7
+ }
8
+ const cell = await client.findSingletonCellByType({
9
+ ...scriptInfo,
10
+ args,
11
+ }, true);
12
+ if (cell) {
13
+ return {
14
+ cell,
15
+ scriptInfo: SporeScriptInfo.from(scriptInfo),
16
+ };
17
+ }
18
+ }
19
+ }
20
+ export async function searchOneCellBySigner(signer) {
21
+ for await (const cell of signer.findCells({
22
+ scriptLenRange: [0, 1],
23
+ outputDataLenRange: [0, 1],
24
+ }, true, undefined, 1)) {
25
+ return cell;
26
+ }
27
+ }
28
+ export async function injectOneCapacityCell(signer, tx) {
29
+ const liveCell = await searchOneCellBySigner(signer);
30
+ if (!liveCell) {
31
+ throw new Error("No live cell found");
32
+ }
33
+ tx.inputs.push(ccc.CellInput.from({
34
+ previousOutput: liveCell.outPoint,
35
+ ...liveCell,
36
+ }));
37
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./cluster/index.js";
2
+ export * as dob from "./dob/index.js";
3
+ export * from "./predefined/index.js";
4
+ export * from "./spore/index.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./cluster/index.js";
2
+ export * as dob from "./dob/index.js";
3
+ export * from "./predefined/index.js";
4
+ export * from "./spore/index.js";
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./mainnet.advanced.js";
2
+ export * from "./testnet.advanced.js";
3
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/predefined/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./mainnet.advanced.js";
2
+ export * from "./testnet.advanced.js";
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./utils.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/predefined/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./types.js";
2
+ export * from "./utils.js";
@@ -0,0 +1,4 @@
1
+ import { SporeScriptInfoLike, SporeVersion } from "./types.js";
2
+ export declare const SCRIPTS_SPORE_MAINNET: Record<SporeVersion, SporeScriptInfoLike | undefined>;
3
+ export declare const SCRIPTS_CLUSTER_MAINNET: Record<SporeVersion, SporeScriptInfoLike | undefined>;
4
+ //# sourceMappingURL=mainnet.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/predefined/mainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,YAAY,EACZ,mBAAmB,GAAG,SAAS,CA6C/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAC1C,YAAY,EACZ,mBAAmB,GAAG,SAAS,CAsB/B,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { SporeVersion } from "./types.js";
2
+ export const SCRIPTS_SPORE_MAINNET = Object.freeze({
3
+ [SporeVersion.DID]: {
4
+ codeHash: "0xcfba73b58b6f30e70caed8a999748781b164ef9a1e218424a6fb55ebf641cb33",
5
+ hashType: "type",
6
+ cellDeps: [
7
+ {
8
+ cellDep: {
9
+ outPoint: {
10
+ txHash: "0x37c80ba8124780920bc8fe06b49e3535b43ca339bb9a97fb462b16d575bfa9a6",
11
+ index: 0,
12
+ },
13
+ depType: "code",
14
+ },
15
+ type: {
16
+ codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
17
+ hashType: "type",
18
+ args: "0x62312cd846659e188b05da11dc3f080b083c27371ea701d6026e11e713e0e3de",
19
+ },
20
+ },
21
+ ],
22
+ cobuild: true,
23
+ },
24
+ [SporeVersion.V2]: {
25
+ codeHash: "0x4a4dce1df3dffff7f8b2cd7dff7303df3b6150c9788cb75dcf6747247132b9f5",
26
+ hashType: "data1",
27
+ cellDeps: [
28
+ {
29
+ cellDep: {
30
+ outPoint: {
31
+ txHash: "0x96b198fb5ddbd1eed57ed667068f1f1e55d07907b4c0dbd38675a69ea1b69824",
32
+ index: 0,
33
+ },
34
+ depType: "code",
35
+ },
36
+ },
37
+ ],
38
+ cobuild: true,
39
+ },
40
+ [SporeVersion.V1]: undefined,
41
+ });
42
+ export const SCRIPTS_CLUSTER_MAINNET = Object.freeze({
43
+ [SporeVersion.V2]: {
44
+ codeHash: "0x7366a61534fa7c7e6225ecc0d828ea3b5366adec2b58206f2ee84995fe030075",
45
+ hashType: "data1",
46
+ cellDeps: [
47
+ {
48
+ cellDep: {
49
+ outPoint: {
50
+ txHash: "0xe464b7fb9311c5e2820e61c99afc615d6b98bdefbe318c34868c010cbd0dc938",
51
+ index: 0,
52
+ },
53
+ depType: "code",
54
+ },
55
+ },
56
+ ],
57
+ cobuild: true,
58
+ },
59
+ [SporeVersion.V1]: undefined,
60
+ [SporeVersion.DID]: undefined,
61
+ });
@@ -0,0 +1,4 @@
1
+ import { SporeScriptInfoLike, SporeVersion } from "./types.js";
2
+ export declare const SCRIPTS_SPORE_TESTNET: Record<SporeVersion, SporeScriptInfoLike | undefined>;
3
+ export declare const SCRIPTS_CLUSTER_TESTNET: Record<SporeVersion, SporeScriptInfoLike | undefined>;
4
+ //# sourceMappingURL=testnet.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testnet.advanced.d.ts","sourceRoot":"","sources":["../../src/predefined/testnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,YAAY,EACZ,mBAAmB,GAAG,SAAS,CA4D/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAC1C,YAAY,EACZ,mBAAmB,GAAG,SAAS,CAsC/B,CAAC"}