@ottochain/sdk 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 (330) hide show
  1. package/README.md +305 -0
  2. package/dist/apps/contracts/index.d.ts +21 -0
  3. package/dist/apps/contracts/index.js +39 -0
  4. package/dist/apps/contracts/types.d.ts +24 -0
  5. package/dist/apps/contracts/types.js +48 -0
  6. package/dist/apps/identity/index.d.ts +22 -0
  7. package/dist/apps/identity/index.js +40 -0
  8. package/dist/apps/identity/types.d.ts +30 -0
  9. package/dist/apps/identity/types.js +53 -0
  10. package/dist/apps/index.d.ts +29 -0
  11. package/dist/apps/index.js +60 -0
  12. package/dist/apps/markets/index.d.ts +26 -0
  13. package/dist/apps/markets/index.js +46 -0
  14. package/dist/apps/markets/types.d.ts +185 -0
  15. package/dist/apps/markets/types.js +252 -0
  16. package/dist/apps/oracles/index.d.ts +26 -0
  17. package/dist/apps/oracles/index.js +46 -0
  18. package/dist/apps/oracles/types.d.ts +211 -0
  19. package/dist/apps/oracles/types.js +306 -0
  20. package/dist/cjs/apps/contracts/index.js +60 -0
  21. package/dist/cjs/apps/contracts/state-machines/contract.json +420 -0
  22. package/dist/cjs/apps/contracts/state-machines/escrow.json +426 -0
  23. package/dist/cjs/apps/contracts/types.js +48 -0
  24. package/dist/cjs/apps/corporate/index.js +112 -0
  25. package/dist/cjs/apps/corporate/state-machines/corporate-board.json +1064 -0
  26. package/dist/cjs/apps/corporate/state-machines/corporate-bylaws.json +751 -0
  27. package/dist/cjs/apps/corporate/state-machines/corporate-committee.json +957 -0
  28. package/dist/cjs/apps/corporate/state-machines/corporate-compliance.json +1293 -0
  29. package/dist/cjs/apps/corporate/state-machines/corporate-entity.json +861 -0
  30. package/dist/cjs/apps/corporate/state-machines/corporate-officers.json +843 -0
  31. package/dist/cjs/apps/corporate/state-machines/corporate-proxy.json +783 -0
  32. package/dist/cjs/apps/corporate/state-machines/corporate-resolution.json +1174 -0
  33. package/dist/cjs/apps/corporate/state-machines/corporate-securities.json +1215 -0
  34. package/dist/cjs/apps/corporate/state-machines/corporate-shareholders.json +1298 -0
  35. package/dist/cjs/apps/corporate/types.js +44 -0
  36. package/dist/cjs/apps/governance/index.js +203 -0
  37. package/dist/cjs/apps/governance/state-machines/dao-multisig.json +711 -0
  38. package/dist/cjs/apps/governance/state-machines/dao-single.json +258 -0
  39. package/dist/cjs/apps/governance/state-machines/dao-threshold.json +660 -0
  40. package/dist/cjs/apps/governance/state-machines/dao-token.json +680 -0
  41. package/dist/cjs/apps/governance/state-machines/governance-constitution.json +401 -0
  42. package/dist/cjs/apps/governance/state-machines/governance-executive.json +441 -0
  43. package/dist/cjs/apps/governance/state-machines/governance-judiciary.json +626 -0
  44. package/dist/cjs/apps/governance/state-machines/governance-legislature.json +726 -0
  45. package/dist/cjs/apps/governance/state-machines/governance-simple.json +679 -0
  46. package/dist/cjs/apps/governance/types.js +42 -0
  47. package/dist/cjs/apps/identity/constants.js +58 -0
  48. package/dist/cjs/apps/identity/index.js +78 -0
  49. package/dist/cjs/apps/identity/state-machines/agent-identity.json +320 -0
  50. package/dist/cjs/apps/identity/types.js +53 -0
  51. package/dist/cjs/apps/index.js +58 -0
  52. package/dist/cjs/apps/markets/index.js +55 -0
  53. package/dist/cjs/apps/markets/state-machines/market-universal.json +354 -0
  54. package/dist/cjs/apps/markets/types.js +219 -0
  55. package/dist/cjs/apps/oracles/index.js +62 -0
  56. package/dist/cjs/apps/oracles/state-machines/oracle.json +452 -0
  57. package/dist/cjs/apps/oracles/types.js +282 -0
  58. package/dist/cjs/errors.js +293 -0
  59. package/dist/cjs/generated/google/protobuf/struct.js +514 -0
  60. package/dist/cjs/generated/google/protobuf/timestamp.js +92 -0
  61. package/dist/cjs/generated/index.js +150 -0
  62. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +873 -0
  63. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract_pb.js +100 -0
  64. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +4515 -0
  65. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate_pb.js +392 -0
  66. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +3255 -0
  67. package/dist/cjs/generated/ottochain/apps/governance/v1/governance_pb.js +235 -0
  68. package/dist/cjs/generated/ottochain/apps/identity/v1/agent.js +619 -0
  69. package/dist/cjs/generated/ottochain/apps/identity/v1/agent_pb.js +116 -0
  70. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +780 -0
  71. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation_pb.js +79 -0
  72. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1261 -0
  73. package/dist/cjs/generated/ottochain/apps/markets/v1/market_pb.js +151 -0
  74. package/dist/cjs/generated/ottochain/apps/oracles/v1/oracle.js +1223 -0
  75. package/dist/cjs/generated/ottochain/apps/oracles/v1/oracle_pb.js +109 -0
  76. package/dist/cjs/generated/ottochain/v1/common.js +10 -0
  77. package/dist/cjs/generated/ottochain/v1/common_pb.js +37 -0
  78. package/dist/cjs/generated/ottochain/v1/fiber.js +1057 -0
  79. package/dist/cjs/generated/ottochain/v1/fiber_pb.js +86 -0
  80. package/dist/cjs/generated/ottochain/v1/messages.js +740 -0
  81. package/dist/cjs/generated/ottochain/v1/messages_pb.js +44 -0
  82. package/dist/cjs/generated/ottochain/v1/records.js +1253 -0
  83. package/dist/cjs/generated/ottochain/v1/records_pb.js +44 -0
  84. package/dist/cjs/index.js +79 -0
  85. package/dist/cjs/metakit/binary.js +58 -0
  86. package/dist/cjs/metakit/canonicalize.js +40 -0
  87. package/dist/cjs/metakit/codec.js +45 -0
  88. package/dist/cjs/metakit/currency-transaction.js +319 -0
  89. package/dist/cjs/metakit/currency-types.js +13 -0
  90. package/dist/cjs/metakit/hash.js +84 -0
  91. package/dist/cjs/metakit/index.js +74 -0
  92. package/dist/cjs/metakit/network/client.js +78 -0
  93. package/dist/cjs/metakit/network/currency-l1-client.js +101 -0
  94. package/dist/cjs/metakit/network/data-l1-client.js +76 -0
  95. package/dist/cjs/metakit/network/index.js +16 -0
  96. package/dist/cjs/metakit/network/types.js +20 -0
  97. package/dist/cjs/metakit/sign.js +120 -0
  98. package/dist/cjs/metakit/signed-object.js +100 -0
  99. package/dist/cjs/metakit/types.js +14 -0
  100. package/dist/cjs/metakit/verify.js +217 -0
  101. package/dist/cjs/metakit/wallet.js +127 -0
  102. package/dist/cjs/ottochain/index.js +47 -0
  103. package/dist/cjs/ottochain/metagraph-client.js +157 -0
  104. package/dist/cjs/ottochain/snapshot.js +110 -0
  105. package/dist/cjs/ottochain/types.js +11 -0
  106. package/dist/cjs/package.json +1 -0
  107. package/dist/cjs/types.js +25 -0
  108. package/dist/cjs/validation.js +312 -0
  109. package/dist/errors.d.ts +221 -0
  110. package/dist/errors.js +293 -0
  111. package/dist/esm/apps/contracts/index.js +42 -0
  112. package/dist/esm/apps/contracts/state-machines/contract.json +420 -0
  113. package/dist/esm/apps/contracts/state-machines/escrow.json +426 -0
  114. package/dist/esm/apps/contracts/types.js +44 -0
  115. package/dist/esm/apps/corporate/index.js +57 -0
  116. package/dist/esm/apps/corporate/state-machines/corporate-board.json +1064 -0
  117. package/dist/esm/apps/corporate/state-machines/corporate-bylaws.json +751 -0
  118. package/dist/esm/apps/corporate/state-machines/corporate-committee.json +957 -0
  119. package/dist/esm/apps/corporate/state-machines/corporate-compliance.json +1293 -0
  120. package/dist/esm/apps/corporate/state-machines/corporate-entity.json +861 -0
  121. package/dist/esm/apps/corporate/state-machines/corporate-officers.json +843 -0
  122. package/dist/esm/apps/corporate/state-machines/corporate-proxy.json +783 -0
  123. package/dist/esm/apps/corporate/state-machines/corporate-resolution.json +1174 -0
  124. package/dist/esm/apps/corporate/state-machines/corporate-securities.json +1215 -0
  125. package/dist/esm/apps/corporate/state-machines/corporate-shareholders.json +1298 -0
  126. package/dist/esm/apps/corporate/types.js +38 -0
  127. package/dist/esm/apps/governance/index.js +154 -0
  128. package/dist/esm/apps/governance/state-machines/dao-multisig.json +711 -0
  129. package/dist/esm/apps/governance/state-machines/dao-single.json +258 -0
  130. package/dist/esm/apps/governance/state-machines/dao-threshold.json +660 -0
  131. package/dist/esm/apps/governance/state-machines/dao-token.json +680 -0
  132. package/dist/esm/apps/governance/state-machines/governance-constitution.json +401 -0
  133. package/dist/esm/apps/governance/state-machines/governance-executive.json +441 -0
  134. package/dist/esm/apps/governance/state-machines/governance-judiciary.json +626 -0
  135. package/dist/esm/apps/governance/state-machines/governance-legislature.json +726 -0
  136. package/dist/esm/apps/governance/state-machines/governance-simple.json +679 -0
  137. package/dist/esm/apps/governance/types.js +35 -0
  138. package/dist/esm/apps/identity/constants.js +53 -0
  139. package/dist/esm/apps/identity/index.js +50 -0
  140. package/dist/esm/apps/identity/state-machines/agent-identity.json +320 -0
  141. package/dist/esm/apps/identity/types.js +50 -0
  142. package/dist/esm/apps/index.js +32 -0
  143. package/dist/esm/apps/markets/index.js +34 -0
  144. package/dist/esm/apps/markets/state-machines/market-universal.json +354 -0
  145. package/dist/esm/apps/markets/types.js +206 -0
  146. package/dist/esm/apps/oracles/index.js +42 -0
  147. package/dist/esm/apps/oracles/state-machines/oracle.json +452 -0
  148. package/dist/esm/apps/oracles/types.js +267 -0
  149. package/dist/esm/errors.js +283 -0
  150. package/dist/esm/generated/google/protobuf/struct.js +508 -0
  151. package/dist/esm/generated/google/protobuf/timestamp.js +89 -0
  152. package/dist/esm/generated/index.js +26 -0
  153. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +867 -0
  154. package/dist/esm/generated/ottochain/apps/contracts/v1/contract_pb.js +97 -0
  155. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +4493 -0
  156. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate_pb.js +389 -0
  157. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +3240 -0
  158. package/dist/esm/generated/ottochain/apps/governance/v1/governance_pb.js +232 -0
  159. package/dist/esm/generated/ottochain/apps/identity/v1/agent.js +610 -0
  160. package/dist/esm/generated/ottochain/apps/identity/v1/agent_pb.js +113 -0
  161. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +774 -0
  162. package/dist/esm/generated/ottochain/apps/identity/v1/attestation_pb.js +76 -0
  163. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1252 -0
  164. package/dist/esm/generated/ottochain/apps/markets/v1/market_pb.js +148 -0
  165. package/dist/esm/generated/ottochain/apps/oracles/v1/oracle.js +1217 -0
  166. package/dist/esm/generated/ottochain/apps/oracles/v1/oracle_pb.js +106 -0
  167. package/dist/esm/generated/ottochain/v1/common.js +7 -0
  168. package/dist/esm/generated/ottochain/v1/common_pb.js +34 -0
  169. package/dist/esm/generated/ottochain/v1/fiber.js +1051 -0
  170. package/dist/esm/generated/ottochain/v1/fiber_pb.js +83 -0
  171. package/dist/esm/generated/ottochain/v1/messages.js +737 -0
  172. package/dist/esm/generated/ottochain/v1/messages_pb.js +41 -0
  173. package/dist/esm/generated/ottochain/v1/records.js +1250 -0
  174. package/dist/esm/generated/ottochain/v1/records_pb.js +41 -0
  175. package/dist/esm/index.js +33 -0
  176. package/dist/esm/metakit/binary.js +53 -0
  177. package/dist/esm/metakit/canonicalize.js +33 -0
  178. package/dist/esm/metakit/codec.js +38 -0
  179. package/dist/esm/metakit/currency-transaction.js +306 -0
  180. package/dist/esm/metakit/currency-types.js +10 -0
  181. package/dist/esm/metakit/hash.js +77 -0
  182. package/dist/esm/metakit/index.js +30 -0
  183. package/dist/esm/metakit/network/client.js +74 -0
  184. package/dist/esm/metakit/network/currency-l1-client.js +97 -0
  185. package/dist/esm/metakit/network/data-l1-client.js +72 -0
  186. package/dist/esm/metakit/network/index.js +9 -0
  187. package/dist/esm/metakit/network/types.js +16 -0
  188. package/dist/esm/metakit/sign.js +114 -0
  189. package/dist/esm/metakit/signed-object.js +94 -0
  190. package/dist/esm/metakit/types.js +11 -0
  191. package/dist/esm/metakit/verify.js +210 -0
  192. package/dist/esm/metakit/wallet.js +117 -0
  193. package/dist/esm/ottochain/index.js +13 -0
  194. package/dist/esm/ottochain/metagraph-client.js +153 -0
  195. package/dist/esm/ottochain/snapshot.js +100 -0
  196. package/dist/esm/ottochain/types.js +10 -0
  197. package/dist/esm/package.json +1 -0
  198. package/dist/esm/types.js +20 -0
  199. package/dist/esm/validation.js +301 -0
  200. package/dist/generated/index.d.ts +15 -0
  201. package/dist/generated/index.js +34 -0
  202. package/dist/generated/ottochain/apps/contracts/v1/contract_pb.d.ts +274 -0
  203. package/dist/generated/ottochain/apps/contracts/v1/contract_pb.js +100 -0
  204. package/dist/generated/ottochain/apps/identity/v1/agent_pb.d.ts +211 -0
  205. package/dist/generated/ottochain/apps/identity/v1/agent_pb.js +116 -0
  206. package/dist/generated/ottochain/apps/identity/v1/attestation_pb.d.ts +238 -0
  207. package/dist/generated/ottochain/apps/identity/v1/attestation_pb.js +79 -0
  208. package/dist/generated/ottochain/apps/markets/v1/market_pb.d.ts +436 -0
  209. package/dist/generated/ottochain/apps/markets/v1/market_pb.js +151 -0
  210. package/dist/generated/ottochain/apps/oracles/v1/oracle_pb.d.ts +393 -0
  211. package/dist/generated/ottochain/apps/oracles/v1/oracle_pb.js +109 -0
  212. package/dist/generated/ottochain/v1/common_pb.d.ts +86 -0
  213. package/dist/generated/ottochain/v1/common_pb.js +37 -0
  214. package/dist/generated/ottochain/v1/fiber_pb.d.ts +292 -0
  215. package/dist/generated/ottochain/v1/fiber_pb.js +86 -0
  216. package/dist/generated/ottochain/v1/messages_pb.d.ts +190 -0
  217. package/dist/generated/ottochain/v1/messages_pb.js +44 -0
  218. package/dist/generated/ottochain/v1/records_pb.d.ts +221 -0
  219. package/dist/generated/ottochain/v1/records_pb.js +44 -0
  220. package/dist/index.d.ts +21 -0
  221. package/dist/index.js +77 -0
  222. package/dist/metakit/binary.d.ts +38 -0
  223. package/dist/metakit/binary.js +58 -0
  224. package/dist/metakit/canonicalize.d.ts +26 -0
  225. package/dist/metakit/canonicalize.js +40 -0
  226. package/dist/metakit/codec.d.ts +16 -0
  227. package/dist/metakit/codec.js +45 -0
  228. package/dist/metakit/currency-transaction.d.ts +157 -0
  229. package/dist/metakit/currency-transaction.js +319 -0
  230. package/dist/metakit/currency-types.d.ts +55 -0
  231. package/dist/metakit/currency-types.js +13 -0
  232. package/dist/metakit/hash.d.ts +50 -0
  233. package/dist/metakit/hash.js +84 -0
  234. package/dist/metakit/index.d.ts +23 -0
  235. package/dist/metakit/index.js +74 -0
  236. package/dist/metakit/network/client.d.ts +23 -0
  237. package/dist/metakit/network/client.js +78 -0
  238. package/dist/metakit/network/currency-l1-client.d.ts +71 -0
  239. package/dist/metakit/network/currency-l1-client.js +101 -0
  240. package/dist/metakit/network/data-l1-client.d.ts +57 -0
  241. package/dist/metakit/network/data-l1-client.js +76 -0
  242. package/dist/metakit/network/index.d.ts +10 -0
  243. package/dist/metakit/network/index.js +16 -0
  244. package/dist/metakit/network/types.d.ts +74 -0
  245. package/dist/metakit/network/types.js +20 -0
  246. package/dist/metakit/sign.d.ts +65 -0
  247. package/dist/metakit/sign.js +120 -0
  248. package/dist/metakit/signed-object.d.ts +66 -0
  249. package/dist/metakit/signed-object.js +100 -0
  250. package/dist/metakit/types.d.ts +67 -0
  251. package/dist/metakit/types.js +14 -0
  252. package/dist/metakit/verify.d.ts +55 -0
  253. package/dist/metakit/verify.js +217 -0
  254. package/dist/metakit/wallet.d.ts +70 -0
  255. package/dist/metakit/wallet.js +127 -0
  256. package/dist/ottochain/index.d.ts +13 -0
  257. package/dist/ottochain/index.js +45 -0
  258. package/dist/ottochain/metagraph-client.d.ts +111 -0
  259. package/dist/ottochain/metagraph-client.js +157 -0
  260. package/dist/ottochain/snapshot.d.ts +86 -0
  261. package/dist/ottochain/snapshot.js +110 -0
  262. package/dist/ottochain/types.d.ts +278 -0
  263. package/dist/ottochain/types.js +11 -0
  264. package/dist/types/apps/contracts/index.d.ts +30 -0
  265. package/dist/types/apps/contracts/types.d.ts +24 -0
  266. package/dist/types/apps/corporate/index.d.ts +27 -0
  267. package/dist/types/apps/corporate/types.d.ts +9861 -0
  268. package/dist/types/apps/governance/index.d.ts +77 -0
  269. package/dist/types/apps/governance/types.d.ts +344 -0
  270. package/dist/types/apps/identity/constants.d.ts +27 -0
  271. package/dist/types/apps/identity/index.d.ts +39 -0
  272. package/dist/types/apps/identity/types.d.ts +30 -0
  273. package/dist/types/apps/index.d.ts +31 -0
  274. package/dist/types/apps/markets/index.d.ts +26 -0
  275. package/dist/types/apps/markets/types.d.ts +155 -0
  276. package/dist/types/apps/oracles/index.d.ts +34 -0
  277. package/dist/types/apps/oracles/types.d.ts +193 -0
  278. package/dist/types/errors.d.ts +221 -0
  279. package/dist/types/generated/google/protobuf/struct.d.ts +134 -0
  280. package/dist/types/generated/google/protobuf/timestamp.d.ts +134 -0
  281. package/dist/types/generated/index.d.ts +18 -0
  282. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +112 -0
  283. package/dist/types/generated/ottochain/apps/contracts/v1/contract_pb.d.ts +274 -0
  284. package/dist/types/generated/ottochain/apps/corporate/v1/corporate.d.ts +376 -0
  285. package/dist/types/generated/ottochain/apps/corporate/v1/corporate_pb.d.ts +1172 -0
  286. package/dist/types/generated/ottochain/apps/governance/v1/governance.d.ts +296 -0
  287. package/dist/types/generated/ottochain/apps/governance/v1/governance_pb.d.ts +772 -0
  288. package/dist/types/generated/ottochain/apps/identity/v1/agent.d.ts +94 -0
  289. package/dist/types/generated/ottochain/apps/identity/v1/agent_pb.d.ts +211 -0
  290. package/dist/types/generated/ottochain/apps/identity/v1/attestation.d.ts +102 -0
  291. package/dist/types/generated/ottochain/apps/identity/v1/attestation_pb.d.ts +238 -0
  292. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +174 -0
  293. package/dist/types/generated/ottochain/apps/markets/v1/market_pb.d.ts +436 -0
  294. package/dist/types/generated/ottochain/apps/oracles/v1/oracle.d.ts +150 -0
  295. package/dist/types/generated/ottochain/apps/oracles/v1/oracle_pb.d.ts +393 -0
  296. package/dist/types/generated/ottochain/v1/common.d.ts +1 -0
  297. package/dist/types/generated/ottochain/v1/common_pb.d.ts +86 -0
  298. package/dist/types/generated/ottochain/v1/fiber.d.ts +130 -0
  299. package/dist/types/generated/ottochain/v1/fiber_pb.d.ts +292 -0
  300. package/dist/types/generated/ottochain/v1/messages.d.ts +89 -0
  301. package/dist/types/generated/ottochain/v1/messages_pb.d.ts +190 -0
  302. package/dist/types/generated/ottochain/v1/records.d.ts +128 -0
  303. package/dist/types/generated/ottochain/v1/records_pb.d.ts +221 -0
  304. package/dist/types/index.d.ts +22 -0
  305. package/dist/types/metakit/binary.d.ts +38 -0
  306. package/dist/types/metakit/canonicalize.d.ts +26 -0
  307. package/dist/types/metakit/codec.d.ts +16 -0
  308. package/dist/types/metakit/currency-transaction.d.ts +157 -0
  309. package/dist/types/metakit/currency-types.d.ts +55 -0
  310. package/dist/types/metakit/hash.d.ts +50 -0
  311. package/dist/types/metakit/index.d.ts +23 -0
  312. package/dist/types/metakit/network/client.d.ts +23 -0
  313. package/dist/types/metakit/network/currency-l1-client.d.ts +71 -0
  314. package/dist/types/metakit/network/data-l1-client.d.ts +57 -0
  315. package/dist/types/metakit/network/index.d.ts +10 -0
  316. package/dist/types/metakit/network/types.d.ts +74 -0
  317. package/dist/types/metakit/sign.d.ts +65 -0
  318. package/dist/types/metakit/signed-object.d.ts +66 -0
  319. package/dist/types/metakit/types.d.ts +67 -0
  320. package/dist/types/metakit/verify.d.ts +55 -0
  321. package/dist/types/metakit/wallet.d.ts +70 -0
  322. package/dist/types/ottochain/index.d.ts +13 -0
  323. package/dist/types/ottochain/metagraph-client.d.ts +111 -0
  324. package/dist/types/ottochain/snapshot.d.ts +86 -0
  325. package/dist/types/ottochain/types.d.ts +210 -0
  326. package/dist/types/types.d.ts +51 -0
  327. package/dist/types/validation.d.ts +449 -0
  328. package/dist/validation.d.ts +449 -0
  329. package/dist/validation.js +312 -0
  330. package/package.json +136 -0
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Wallet and Key Management Utilities
3
+ *
4
+ * Functions for generating and managing cryptographic keys.
5
+ */
6
+ import { dag4 } from '@stardust-collective/dag4';
7
+ /**
8
+ * Generate a new random key pair
9
+ *
10
+ * @returns KeyPair with private key, public key, and DAG address
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const keyPair = generateKeyPair();
15
+ * console.log(keyPair.address); // DAG address
16
+ * console.log(keyPair.privateKey); // 64 char hex
17
+ * console.log(keyPair.publicKey); // 130 char hex (with 04 prefix)
18
+ * ```
19
+ */
20
+ export function generateKeyPair() {
21
+ const privateKey = dag4.keyStore.generatePrivateKey();
22
+ return keyPairFromPrivateKey(privateKey);
23
+ }
24
+ /**
25
+ * Derive a key pair from an existing private key
26
+ *
27
+ * @param privateKey - Private key in hex format (64 characters)
28
+ * @returns KeyPair with private key, public key, and DAG address
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const keyPair = keyPairFromPrivateKey(existingPrivateKey);
33
+ * ```
34
+ */
35
+ export function keyPairFromPrivateKey(privateKey) {
36
+ // Get uncompressed public key (with 04 prefix)
37
+ const publicKey = dag4.keyStore.getPublicKeyFromPrivate(privateKey, false);
38
+ // Derive DAG address
39
+ const address = dag4.keyStore.getDagAddressFromPublicKey(publicKey);
40
+ return {
41
+ privateKey,
42
+ publicKey: normalizePublicKey(publicKey),
43
+ address,
44
+ };
45
+ }
46
+ /**
47
+ * Get the public key hex from a private key
48
+ *
49
+ * @param privateKey - Private key in hex format
50
+ * @param compressed - If true, returns compressed public key (33 bytes)
51
+ * @returns Public key in hex format
52
+ */
53
+ export function getPublicKeyHex(privateKey, compressed = false) {
54
+ return dag4.keyStore.getPublicKeyFromPrivate(privateKey, compressed);
55
+ }
56
+ /**
57
+ * Get the public key ID (without 04 prefix) from a private key
58
+ *
59
+ * This format is used in SignatureProof.id
60
+ *
61
+ * @param privateKey - Private key in hex format
62
+ * @returns Public key ID (128 characters, no 04 prefix)
63
+ */
64
+ export function getPublicKeyId(privateKey) {
65
+ const publicKey = dag4.keyStore.getPublicKeyFromPrivate(privateKey, false);
66
+ // Remove 04 prefix if present
67
+ if (publicKey.length === 130 && publicKey.startsWith('04')) {
68
+ return publicKey.substring(2);
69
+ }
70
+ return publicKey;
71
+ }
72
+ /**
73
+ * Get DAG address from a public key
74
+ *
75
+ * @param publicKey - Public key in hex format (with or without 04 prefix)
76
+ * @returns DAG address string
77
+ */
78
+ export function getAddress(publicKey) {
79
+ const normalizedKey = normalizePublicKey(publicKey);
80
+ return dag4.keyStore.getDagAddressFromPublicKey(normalizedKey);
81
+ }
82
+ /**
83
+ * Validate that a private key is correctly formatted
84
+ *
85
+ * @param privateKey - Private key to validate
86
+ * @returns true if valid hex string of correct length
87
+ */
88
+ export function isValidPrivateKey(privateKey) {
89
+ if (typeof privateKey !== 'string')
90
+ return false;
91
+ if (privateKey.length !== 64)
92
+ return false;
93
+ return /^[0-9a-fA-F]+$/.test(privateKey);
94
+ }
95
+ /**
96
+ * Validate that a public key is correctly formatted
97
+ *
98
+ * @param publicKey - Public key to validate
99
+ * @returns true if valid hex string of correct length
100
+ */
101
+ export function isValidPublicKey(publicKey) {
102
+ if (typeof publicKey !== 'string')
103
+ return false;
104
+ // With 04 prefix: 130 chars, without: 128 chars
105
+ if (publicKey.length !== 128 && publicKey.length !== 130)
106
+ return false;
107
+ return /^[0-9a-fA-F]+$/.test(publicKey);
108
+ }
109
+ /**
110
+ * Normalize public key to include 04 prefix
111
+ */
112
+ function normalizePublicKey(publicKey) {
113
+ if (publicKey.length === 128) {
114
+ return '04' + publicKey;
115
+ }
116
+ return publicKey;
117
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Ottochain SDK
3
+ *
4
+ * Domain-specific types and clients for the ottochain metagraph.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ // Re-export generated protobuf types (for binary encoding)
9
+ export * as proto from '../generated/index.js';
10
+ export { decodeOnChainState, getSnapshotOnChainState, getLatestOnChainState, getLogsForFiber, getEventReceipts, getScriptInvocations, extractOnChainState, } from './snapshot.js';
11
+ export { MetagraphClient } from './metagraph-client.js';
12
+ // Note: Governance and Corporate types are now in src/apps/
13
+ // Import from '@ottochain/sdk/apps' instead
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Ottochain Metagraph Client
3
+ *
4
+ * Client for interacting with ottochain ML0 custom routes (/v1 prefix)
5
+ * and framework snapshot endpoints.
6
+ *
7
+ * @see modules/l0/src/main/scala/xyz/kd5ujc/metagraph_l0/ML0CustomRoutes.scala
8
+ * @see modules/data_l1/src/main/scala/xyz/kd5ujc/data_l1/DataL1CustomRoutes.scala
9
+ * @packageDocumentation
10
+ */
11
+ import { HttpClient } from '../metakit/network/client.js';
12
+ import { NetworkError } from '../metakit/network/types.js';
13
+ import { extractOnChainState } from './snapshot.js';
14
+ /**
15
+ * Client for ottochain metagraph operations.
16
+ *
17
+ * Provides typed access to all ML0 custom routes (under /data-application/v1/)
18
+ * and framework snapshot endpoints.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const client = new MetagraphClient({
23
+ * ml0Url: 'http://localhost:9200',
24
+ * dl1Url: 'http://localhost:9400',
25
+ * });
26
+ *
27
+ * // Query on-chain state
28
+ * const onChain = await client.getOnChain();
29
+ *
30
+ * // Get all active state machines
31
+ * const machines = await client.getStateMachines('Active');
32
+ *
33
+ * // Get event receipts for a fiber
34
+ * const events = await client.getStateMachineEvents(fiberId);
35
+ * ```
36
+ */
37
+ export class MetagraphClient {
38
+ constructor(config) {
39
+ this.ml0 = new HttpClient(config.ml0Url, config.timeout);
40
+ if (config.dl1Url) {
41
+ this.dl1 = new HttpClient(config.dl1Url, config.timeout);
42
+ }
43
+ }
44
+ // -------------------------------------------------------------------------
45
+ // Custom routes (ML0 /data-application/v1/*)
46
+ // -------------------------------------------------------------------------
47
+ /**
48
+ * Get the current on-chain state (directly from L0 context).
49
+ */
50
+ async getOnChain() {
51
+ return this.ml0.get('/data-application/v1/onchain');
52
+ }
53
+ /**
54
+ * Get the latest checkpoint (ordinal + calculated state).
55
+ */
56
+ async getCheckpoint() {
57
+ return this.ml0.get('/data-application/v1/checkpoint');
58
+ }
59
+ /**
60
+ * Get all state machines, optionally filtered by status.
61
+ */
62
+ async getStateMachines(status) {
63
+ const query = status ? `?status=${status}` : '';
64
+ return this.ml0.get(`/data-application/v1/state-machines${query}`);
65
+ }
66
+ /**
67
+ * Get a single state machine by fiber ID.
68
+ */
69
+ async getStateMachine(fiberId) {
70
+ try {
71
+ return await this.ml0.get(`/data-application/v1/state-machines/${fiberId}`);
72
+ }
73
+ catch (error) {
74
+ if (error instanceof NetworkError && error.statusCode === 404) {
75
+ return null;
76
+ }
77
+ throw error;
78
+ }
79
+ }
80
+ /**
81
+ * Get event receipts for a state machine from the current ordinal's logs.
82
+ */
83
+ async getStateMachineEvents(fiberId) {
84
+ return this.ml0.get(`/data-application/v1/state-machines/${fiberId}/events`);
85
+ }
86
+ /**
87
+ * Get all script oracles, optionally filtered by status.
88
+ */
89
+ async getScripts(status) {
90
+ const query = status ? `?status=${status}` : '';
91
+ return this.ml0.get(`/data-application/v1/oracles${query}`);
92
+ }
93
+ /**
94
+ * Get a single script oracle by fiber ID.
95
+ */
96
+ async getScript(scriptId) {
97
+ try {
98
+ return await this.ml0.get(`/data-application/v1/oracles/${scriptId}`);
99
+ }
100
+ catch (error) {
101
+ if (error instanceof NetworkError && error.statusCode === 404) {
102
+ return null;
103
+ }
104
+ throw error;
105
+ }
106
+ }
107
+ /**
108
+ * Get oracle invocations from the current ordinal's logs.
109
+ */
110
+ async getScriptInvocations(scriptId) {
111
+ return this.ml0.get(`/data-application/v1/oracles/${scriptId}/invocations`);
112
+ }
113
+ // -------------------------------------------------------------------------
114
+ // Framework snapshot endpoints (ML0 /snapshots/*)
115
+ // -------------------------------------------------------------------------
116
+ /**
117
+ * Get the latest snapshot and decode its on-chain state.
118
+ */
119
+ async getLatestSnapshotOnChainState() {
120
+ const snapshot = await this.ml0.get('/snapshots/latest');
121
+ return extractOnChainState(snapshot);
122
+ }
123
+ /**
124
+ * Get a snapshot by ordinal and decode its on-chain state.
125
+ */
126
+ async getSnapshotOnChainState(ordinal) {
127
+ const snapshot = await this.ml0.get(`/snapshots/${ordinal}`);
128
+ return extractOnChainState(snapshot);
129
+ }
130
+ /**
131
+ * Get the latest snapshot ordinal.
132
+ */
133
+ async getLatestOrdinal() {
134
+ const snapshot = await this.ml0.get('/snapshots/latest');
135
+ return snapshot.value.ordinal;
136
+ }
137
+ // -------------------------------------------------------------------------
138
+ // DL1 data submission (framework POST /data)
139
+ // -------------------------------------------------------------------------
140
+ /**
141
+ * Submit a signed data update to the DL1 node.
142
+ * The POST /data endpoint is framework-provided (no /v1 prefix).
143
+ *
144
+ * @param signedData - Signed OttochainMessage
145
+ * @returns Response hash
146
+ */
147
+ async postData(signedData) {
148
+ if (!this.dl1) {
149
+ throw new Error('dl1Url is required for postData');
150
+ }
151
+ return this.dl1.post('/data', signedData);
152
+ }
153
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Snapshot decoder for ottochain on-chain state
3
+ *
4
+ * Fetches currency incremental snapshots from metagraph L0 and decodes the
5
+ * on-chain state from the DataApplicationPart's binary payload.
6
+ *
7
+ * The on-chain state is serialized using JsonBinaryCodec (canonical JSON → UTF-8 bytes).
8
+ *
9
+ * @see modules/models/src/main/scala/xyz/kd5ujc/schema/OnChain.scala
10
+ * @packageDocumentation
11
+ */
12
+ import { HttpClient } from '../metakit/network/client.js';
13
+ /**
14
+ * Decode on-chain state from binary (JsonBinaryCodec format).
15
+ *
16
+ * JsonBinaryCodec serialization is: canonical JSON → UTF-8 bytes.
17
+ * So decoding is simply: UTF-8 bytes → JSON.parse.
18
+ *
19
+ * @param bytes - UTF-8 encoded canonical JSON bytes
20
+ * @returns Decoded OnChain state
21
+ */
22
+ export function decodeOnChainState(bytes) {
23
+ const json = new TextDecoder().decode(bytes);
24
+ return JSON.parse(json);
25
+ }
26
+ /**
27
+ * Fetch and decode the on-chain state from a specific snapshot ordinal.
28
+ *
29
+ * @param ml0BaseUrl - Metagraph L0 node base URL (e.g., 'http://localhost:9200')
30
+ * @param ordinal - Snapshot ordinal number
31
+ * @returns Decoded OnChain state, or null if no data application part
32
+ */
33
+ export async function getSnapshotOnChainState(ml0BaseUrl, ordinal) {
34
+ const client = new HttpClient(ml0BaseUrl);
35
+ const snapshot = await client.get(`/snapshots/${ordinal}`);
36
+ return extractOnChainState(snapshot);
37
+ }
38
+ /**
39
+ * Fetch and decode the on-chain state from the latest snapshot.
40
+ *
41
+ * @param ml0BaseUrl - Metagraph L0 node base URL (e.g., 'http://localhost:9200')
42
+ * @returns Decoded OnChain state, or null if no data application part
43
+ */
44
+ export async function getLatestOnChainState(ml0BaseUrl) {
45
+ const client = new HttpClient(ml0BaseUrl);
46
+ const snapshot = await client.get('/snapshots/latest');
47
+ return extractOnChainState(snapshot);
48
+ }
49
+ /**
50
+ * Extract and decode on-chain state from a snapshot response.
51
+ */
52
+ export function extractOnChainState(snapshot) {
53
+ const dataPart = snapshot.value?.dataApplication;
54
+ if (!dataPart?.onChainState) {
55
+ return null;
56
+ }
57
+ const bytes = new Uint8Array(dataPart.onChainState);
58
+ return decodeOnChainState(bytes);
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Log filtering helpers
62
+ // ---------------------------------------------------------------------------
63
+ /**
64
+ * Get all log entries for a specific fiber from on-chain state.
65
+ *
66
+ * @param onChain - Decoded on-chain state
67
+ * @param fiberId - Fiber UUID to filter by
68
+ * @returns Array of log entries for the fiber, or empty array
69
+ */
70
+ export function getLogsForFiber(onChain, fiberId) {
71
+ return onChain.latestLogs[fiberId] ?? [];
72
+ }
73
+ /**
74
+ * Get EventReceipt log entries for a specific fiber.
75
+ *
76
+ * EventReceipts are distinguished from OracleInvocations by the presence
77
+ * of the `eventName` field.
78
+ *
79
+ * @param onChain - Decoded on-chain state
80
+ * @param fiberId - Fiber UUID to filter by
81
+ * @returns Array of EventReceipt entries
82
+ */
83
+ export function getEventReceipts(onChain, fiberId) {
84
+ return getLogsForFiber(onChain, fiberId)
85
+ .filter((entry) => 'eventName' in entry && 'success' in entry);
86
+ }
87
+ /**
88
+ * Get OracleInvocation log entries for a specific fiber.
89
+ *
90
+ * OracleInvocations are distinguished from EventReceipts by the presence
91
+ * of the `method` field.
92
+ *
93
+ * @param onChain - Decoded on-chain state
94
+ * @param fiberId - Fiber UUID to filter by
95
+ * @returns Array of OracleInvocation entries
96
+ */
97
+ export function getScriptInvocations(onChain, fiberId) {
98
+ return getLogsForFiber(onChain, fiberId)
99
+ .filter((entry) => 'method' in entry && 'result' in entry);
100
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Ottochain-specific type definitions
3
+ *
4
+ * TypeScript interfaces matching the wire format from the Scala metagraph.
5
+ * The JSON Logic engine stores state as plain JSON - no wrapper objects.
6
+ *
7
+ * @see modules/models/src/main/scala/xyz/kd5ujc/schema/
8
+ * @packageDocumentation
9
+ */
10
+ export {};
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * OttoChain Type Aliases
3
+ *
4
+ * Semantic type aliases for common primitive types.
5
+ * These match the wire format used by the metagraph's JSON Logic engine.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Validate a DAG address format.
11
+ */
12
+ export function isValidAddress(value) {
13
+ return /^DAG[0-9a-zA-Z]+$/.test(value);
14
+ }
15
+ /**
16
+ * Validate a UUID format.
17
+ */
18
+ export function isValidFiberId(value) {
19
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);
20
+ }